diff --git a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c index 971d9f8a..df1bd79f 100644 --- a/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c +++ b/build/libraries_sysmenu/boot/ARM7/src/bootAPI.c @@ -25,9 +25,9 @@ #define reg_MI_MC_SWP (*(REGType8v *) ( REG_MC1_ADDR + 1 ) ) #ifdef ISDBG_MB_CHILD_ -#define PRE_CLEAR_NUM_MAX 18 -#else #define PRE_CLEAR_NUM_MAX 14 +#else +#define PRE_CLEAR_NUM_MAX 10 #endif #define COPY_NUM_MAX 12 @@ -88,8 +88,6 @@ BOOL BOOT_WaitStart( void ) HW_PRV_WRAM_END - 0x600 + 0x20, HW_PRV_WRAM_END - (HW_PRV_WRAM_END - 0x600 + 0x20), #endif HW_MAIN_MEM_SHARED, HW_RED_RESERVED - HW_MAIN_MEM_SHARED, - HW_ARENA_INFO_BUF, HW_ROM_HEADER_BUF - HW_ARENA_INFO_BUF, - HW_PXI_SIGNAL_PARAM_ARM9, HW_MAIN_MEM_SYSTEM_END - HW_PXI_SIGNAL_PARAM_ARM9, NULL, // copy forward NULL, @@ -153,12 +151,6 @@ BOOL BOOT_WaitStart( void ) static void BOOTi_ClearREG_RAM( void ) { - int i ; - - for( i = 0; i <= MI_DMA_MAX_NUM; i++ ) { // DMAの停止 - MI_StopDma( (u16)i ); - } - if( SYSMi_GetWork()->isCardBoot ) { #ifdef DEBUG_USED_CARD_SLOT_B_ reg_MI_MC_SWP = 0x80; // カードスロットのスワップ @@ -167,17 +159,10 @@ static void BOOTi_ClearREG_RAM( void ) *(u32 *)HW_RED_RESERVED = SYSMi_GetWork()->nCardID; } - // レジスタのクリア - SVC_CpuClearFast( 0x0000, (void*)(HW_REG_BASE + 0x0b0), (0x13c - 0x0b0) ); - // DMA0SAD 〜 RCNT1 - SVC_CpuClearFast( 0x0000, (void*)(HW_REG_BASE + 0x400), 0x104 ); // SG0CNT_L 〜 SGMCNT - SVC_CpuClearFast( 0x0000, (void*)(HW_REG_BASE + 0x508), 0x14 ); // SGRVCNT 〜 SGRV1CLEN - reg_GX_DISPSTAT = 0; - reg_SPI_SPICNT = 0; - reg_PXI_MAINP_FIFO_CNT = 0x4008; - *(vu32 *)HW_RESET_PARAMETER_BUF = 0; // リセットバッファをクリア + // レジスタクリアは基本的に OS_Boot で行う + // クリアしていないレジスタは、VCOUNT, JOY, PIFCNT, MC-, EXMEMCNT, IME, PAUSE, POWLCDCNT, 他セキュリティ系です。 (void)OS_ResetRequestIrqMask((u16)~0); } diff --git a/build/libraries_sysmenu/boot/ARM9/src/bootAPI.c b/build/libraries_sysmenu/boot/ARM9/src/bootAPI.c index 37500e85..fad653e5 100644 --- a/build/libraries_sysmenu/boot/ARM9/src/bootAPI.c +++ b/build/libraries_sysmenu/boot/ARM9/src/bootAPI.c @@ -142,26 +142,6 @@ static void BOOTi_ClearREG_RAM( void ) (void)OS_SetIrqMask( 0 ); (void)OS_ResetRequestIrqMask( (u16)~0 ); - // メモリクリア - GX_SetBankForLCDC( GX_VRAM_LCDC_ALL ); // VRAM クリア - MI_CpuClearFast( (void*)HW_LCDC_VRAM, HW_LCDC_VRAM_SIZE ); - (void)GX_DisableBankForLCDC(); -// MI_CpuClearFast( (void *)HW_ITCM, HW_ITCM_SIZE ); // ITCM クリア ※ITCMにはSDKのコードが入っているので、BOOT_Coreでクリアする。 -// MI_CpuClearFast( (void *)HW_DTCM, HW_DTCM_SIZE - 0x800 ); // DTCM クリア ※DTCMはスタック&SDK変数入りなので、最後にBOOT_Coreでクリアする。 - MI_CpuClearFast( (void *)HW_OAM, HW_OAM_SIZE ); // OAM クリア - MI_CpuClearFast( (void *)HW_PLTT, HW_PLTT_SIZE ); // パレット クリア - MI_CpuClearFast( (void *)HW_DB_OAM, HW_DB_OAM_SIZE ); // OAM クリア - MI_CpuClearFast( (void *)HW_DB_PLTT,HW_DB_PLTT_SIZE ); // パレット クリア - - // レジスタクリア - MI_CpuClearFast( (void*)( HW_REG_BASE + 0x8 ), 0x12c ); // BG0CNT 〜 KEYCNT - MI_CpuClearFast( (void*)( HW_REG_BASE + 0x280 ), 0x40 ); // DIVCNT 〜 SQRTD3 - MI_CpuClearFast( (void*)( HW_REG_BASE + 0x1000 ), 0x6e ); // DISP1CNT1 〜 DISPBRTCNT1 - CP_SetDiv32_32( 0, 1 ); - reg_PXI_SUBP_FIFO_CNT = 0x4008; - reg_GX_DISPCNT = 0; - reg_GX_DISPSTAT = 0; // ※ reg_GX_VCOUNTはベタクリアできないので、この先頭部分のクリアを分離する。 - - // クリアしていないレジスタは、VCOUNT, PIFCNT, MC-, EXMEMCNT, IME, RBKCNT1, PAUSE, POWLCDCNT, 全3D系。 + // レジスタクリアは基本的に OS_Boot で行う }