static void mpc8641d_io_reset (void *state) { mpc8641d_io_t *io = &mpc8641d_io; /* Just for convience of boot linux */ //io->conf.ccsrbar = 0x000E0000; io->pic_global.frr = 0x6b0102; io->por_conf.porpllsr = 0x40004; io->lb_ctrl.lcrr = 0x80000008; io->i2c_reg.i2csr = 0x81; io->i2c_reg.i2cdfsrr = 0x10; io->pic_ram.ctpr0 = 0x0000000F; io->pic_global.svr = 0xFFFF; io->mpic.ipivpr[0] = io->mpic.ipivpr[1] = io->mpic.ipivpr[2] = io->mpic.ipivpr[3] = 0x80000000; io->uart[0].ier = 0x0; io->uart[0].iir = 0x1; io->uart[0].dlb = 0x1; //gCPU.mpic.iivpr[UART_IRQ] = 0x80800000; /* initialize interrupt controller */ int i = 0; for (; i < 32; i++) { io->pic_ram.iidr[i] = 0x1; io->pic_ram.iivpr[i] = 0x80800000; } mpc8641d_boot_linux(); }
static void mpc8641d_io_reset (void *state) { mpc8641d_io_t *io = &mpc8641d_io; /* Just for convience of boot linux */ //io->conf.ccsrbar = 0x000E0000; io->pic_global.frr = 0x6b0102; io->por_conf.porpllsr = 0x40004; io->lb_ctrl.lcrr = 0x80000008; io->i2c_reg.i2csr = 0x81; io->i2c_reg.i2cdfsrr = 0x10; io->pic_ram.ctpr0 = 0x0000000F; io->pic_global.svr = 0xFFFF; io->mpic.ipivpr[0] = io->mpic.ipivpr[1] = io->mpic.ipivpr[2] = io->mpic.ipivpr[3] = 0x80000000; io->uart[0].ier = 0x0; io->uart[0].iir = 0x1; io->uart[0].dlb = 0x1; //gCPU.mpic.iivpr[UART_IRQ] = 0x80800000; /* initialize interrupt controller */ int i = 0; for (; i < 32; i++) { io->pic_ram.iidr[i] = 0x1; io->pic_ram.iivpr[i] = 0x80800000; } /* Match os to select boot setting */ skyeye_config_t *config = get_current_config(); if (!strcmp(config->os->os_name, "linux")) { sky_pref_t* pref = get_skyeye_pref(); if(pref->user_mode_sim) mpc8641d_boot_application(); else mpc8641d_boot_linux(); } else if (!strcmp(config->os->os_name, "vxworks")) { mpc8641d_boot_vxworks(); } }