OS_Bootと重複しているIOレジスタとシステム領域のクリア処理の削除。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@310 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nakasima 2007-12-04 10:39:36 +00:00
parent de6b36359a
commit eb67ac4d0b
2 changed files with 5 additions and 40 deletions

View File

@ -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);
}

View File

@ -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 で行う
}