From eb67ac4d0bfdb7bd348acae02deb8b14cb275d57 Mon Sep 17 00:00:00 2001 From: nakasima Date: Tue, 4 Dec 2007 10:39:36 +0000 Subject: [PATCH] =?UTF-8?q?OS=5FBoot=E3=81=A8=E9=87=8D=E8=A4=87=E3=81=97?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=82=8BIO=E3=83=AC=E3=82=B8=E3=82=B9?= =?UTF-8?q?=E3=82=BF=E3=81=A8=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0=E9=A0=98?= =?UTF-8?q?=E5=9F=9F=E3=81=AE=E3=82=AF=E3=83=AA=E3=82=A2=E5=87=A6=E7=90=86?= =?UTF-8?q?=E3=81=AE=E5=89=8A=E9=99=A4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@310 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../libraries_sysmenu/boot/ARM7/src/bootAPI.c | 23 ++++--------------- .../libraries_sysmenu/boot/ARM9/src/bootAPI.c | 22 +----------------- 2 files changed, 5 insertions(+), 40 deletions(-) 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 で行う }