int main(void) { xenos_init(VIDEO_MODE_AUTO); console_set_colors(0xD8444E00,0xFF96A300); console_init(); usb_init(); usb_do_poll(); printf("SFCX Init.\n"); flashconfig = sfcx_readreg(SFCX_CONFIG); sfcx_init(); if (sfc.initialized != SFCX_INITIALIZED) { printf(" ! Flashconfig: 0x%08X\n", flashconfig); printf(" ! sfcx initialization failure\n"); printf(" ! nand related features will not be available\n"); waitforexit(); } printf("Xenon_config_init.\n"); xenon_config_init(); prompt(MAIN_MENU); return 0; }
void xenon_config_init(void) { if (xenon_config_initialized) return; sfcx_init(); // depends on sfcx already being initialized if (sfc.initialized != SFCX_INITIALIZED) { //TODO: wassup with this... printf(" ! config: sfcx not initialized\n"); } else { //calc our address (specific for our one structure) int addr = sfc.addr_config + (BLOCK_OFFSET * sfc.block_sz) + sfc.page_sz; int status = sfcx_read_page(pagebuf, addr, 0); //read from nand if (SFCX_SUCCESS(status)){ //TODO: check if we got erased or zeroed nand data memcpy(&secured_settings, &pagebuf[0x0], sizeof secured_settings); xenon_config_initialized=1; } } }
void Hw::SystemInit(int flags){ if(init_flags==0){ xenon_make_it_faster(XENON_SPEED_FULL); if(flags & INIT_SOUND){ } if(flags & INIT_VIDEO){ } if(flags & INIT_USB){ usb_init(); } if(flags & INIT_NETWORK){ network_init(); } sfcx_init(); init_flags = flags; } }
void Hw::SystemInit(int flags){ if(init_flags==0){ xenon_make_it_faster(XENON_SPEED_FULL); if(flags & INIT_SOUND){ } if(flags & INIT_VIDEO){ } if(flags & INIT_USB){ usb_init(); usb_do_poll(); } if(flags & INIT_NETWORK){ network_init(); } if(flags & INIT_ATA){ xenon_ata_init(); } if(flags & INIT_ATAPI){ xenon_atapi_init(); } if(flags & INIT_FILESYSTEM){ mount_all_devices(); findDevices(); } if(flags & INIT_SFCX){ sfcx_init(); } init_flags = flags; } }