diff --git a/trunk/bootrom/build/bootrom/teg-dev/ARM11/crt0_secure.c b/trunk/bootrom/build/bootrom/teg-dev/ARM11/crt0_secure.c index 836bf8d..038c7df 100644 --- a/trunk/bootrom/build/bootrom/teg-dev/ARM11/crt0_secure.c +++ b/trunk/bootrom/build/bootrom/teg-dev/ARM11/crt0_secure.c @@ -18,11 +18,6 @@ #include -#define STUPi_HW_DTCM |Image$$DTCM$$Base| - -void stupInitMMUTable( void ); - - /*---------------------------------------------------------------------------* Name: i_stupStartHandler diff --git a/trunk/bootrom/build/libraries/init/ARM11/crt0_app.c b/trunk/bootrom/build/libraries/init/ARM11/crt0_app.c index 68b36d8..b756d75 100644 --- a/trunk/bootrom/build/libraries/init/ARM11/crt0_app.c +++ b/trunk/bootrom/build/libraries/init/ARM11/crt0_app.c @@ -61,6 +61,8 @@ asm void _start( void ) bl stupDisableCP15 //---- initialize MMU + ldr r0, =HW_BROM_MMU_T1 + ldr r1, =HW_BROM_MMU_T2 bl stupInitMMU //---- enable cp15 diff --git a/trunk/bootrom/build/libraries/init/ARM11/crt0_mmu.c b/trunk/bootrom/build/libraries/init/ARM11/crt0_mmu.c index 89ad063..4c25296 100644 --- a/trunk/bootrom/build/libraries/init/ARM11/crt0_mmu.c +++ b/trunk/bootrom/build/libraries/init/ARM11/crt0_mmu.c @@ -17,7 +17,7 @@ #include #include -void stupInitMMUTable( void ); +void stupInitMMUTable( u32* t1Base, u32* t2Base ); /*---------------------------------------------------------------------------* Name: stupDisableCP15 @@ -138,33 +138,31 @@ asm void stupEnableCP15( void ) Returns: None *---------------------------------------------------------------------------*/ -asm void stupInitMMU( void ) +asm void stupInitMMU( u32* t1Base, u32* t2Base ) { stmfd sp!, {r4, lr} // stack requires 8byte alignment // Invalidate ITLB DTLB - mov r0, #0 - mcr p15, 0, r0, c8, c5, 0 - mcr p15, 0, r0, c8, c6, 0 - - ldr r0, =HW_BROM_MMU_T1 + mov r3, #0 + mcr p15, 0, r3, c8, c5, 0 + mcr p15, 0, r3, c8, c6, 0 mov r2, #HW_C2_V5_T1_BOUNBARY_16KB // MMU L1 Table Base - ldr r1, =HW_C2_0_T1_BASE_MASK_MIN - mov r1, r1, ASR r2 - and r1 ,r1, r0 - orr r1, r1, #(HW_C2_WALK_L2C_CA_NC << HW_C2_WALK_L2C_CA_SFT) \ + ldr r3, =HW_C2_0_T1_BASE_MASK_MIN + mov r3, r3, ASR r2 + and r3 ,r3, r0 + orr r3, r3, #(HW_C2_WALK_L2C_CA_NC << HW_C2_WALK_L2C_CA_SFT) \ | HW_C2_WALK_ON_SHARED_MEM - mcr p15, 0, r1, c2, c0, 0 + mcr p15, 0, r3, c2, c0, 0 - ldr r1, =HW_C2_1_T1_BASE_MASK - and r1 ,r1, r0 - orr r1, r1, #(HW_C2_WALK_L2C_CA_NC << HW_C2_WALK_L2C_CA_SFT) \ + ldr r3, =HW_C2_1_T1_BASE_MASK + and r3 ,r3, r0 + orr r3, r3, #(HW_C2_WALK_L2C_CA_NC << HW_C2_WALK_L2C_CA_SFT) \ | HW_C2_WALK_ON_SHARED_MEM - mcr p15, 0, r1, c2, c0, 1 + mcr p15, 0, r3, c2, c0, 1 // MMU L1 Table Boundary @@ -172,9 +170,9 @@ asm void stupInitMMU( void ) // Domain Access Permission #if 1 // miya - ldr r1, =0x00000001 + ldr r3, =0x00000001 #else - ldr r1, = HW_C3_DOMAIN_PACK( \ + ldr r3, = HW_C3_DOMAIN_PACK( \ HW_C3_DM_AP_CLIENT, \ HW_C3_DM_AP_CLIENT, \ HW_C3_DM_AP_CLIENT, \ @@ -195,13 +193,13 @@ asm void stupInitMMU( void ) #endif - mcr p15, 0, r1, c3, c0, 0 + mcr p15, 0, r3, c3, c0, 0 // VFP Access Permission - ldr r1, =HW_C1_VFP_AP_PACK( \ + ldr r3, =HW_C1_VFP_AP_PACK( \ HW_C1_AP_PRIV, HW_C1_AP_PRIV ) - mcr p15, 0, r1, c1, c0, 2 + mcr p15, 0, r3, c1, c0, 2 // Initialize MMU Table @@ -220,11 +218,8 @@ asm void stupInitMMU( void ) Returns: None *---------------------------------------------------------------------------*/ -void stupInitMMUTable( void ) +void stupInitMMUTable( u32* t1Base, u32* t2Base ) { - u32* t1Base = (u32* )HW_BROM_MMU_T1; - u32* t2Base = (u32* )HW_BROM_MMU_T2; - u32* table; u32 paddr = (u32 )NULL; diff --git a/trunk/bootrom/build/libraries/init/ARM11/crt0_secure.c b/trunk/bootrom/build/libraries/init/ARM11/crt0_secure.c index eaecd31..1c35447 100644 --- a/trunk/bootrom/build/libraries/init/ARM11/crt0_secure.c +++ b/trunk/bootrom/build/libraries/init/ARM11/crt0_secure.c @@ -65,6 +65,8 @@ asm void i_stupStartHandler( void ) bl stupDisableCP15 //---- initialize MMU + ldr r0, =HW_BROM_MMU_T1 + ldr r1, =HW_BROM_MMU_T2 bl stupInitMMU //---- enable cp15 diff --git a/trunk/bootrom/build/libraries/os/common/os_exception.c b/trunk/bootrom/build/libraries/os/common/os_exception.c index 3419551..8cc4e15 100644 --- a/trunk/bootrom/build/libraries/os/common/os_exception.c +++ b/trunk/bootrom/build/libraries/os/common/os_exception.c @@ -56,7 +56,7 @@ void osInitException( void ) Returns: None *---------------------------------------------------------------------------*/ -ASM void i_osUndefInstHandler( void ) +asm void i_osUndefInstHandler( void ) { // change into system mode msr cpsr_fsxc, #HW_PSR_SYS_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE @@ -128,7 +128,7 @@ i_osUndefCPHandlerTable DCD i_osUndefInstTerminate // CP 15 } -ASM void i_osUndefInstHandlerVFP( void ) +asm void i_osUndefInstHandlerVFP( void ) { // VFP enable fmrx r12, fpexc @@ -152,7 +152,7 @@ LSYM(1) bx lr } -ASM void i_osUndefInstTerminate( void ) +asm void i_osUndefInstTerminate( void ) { LSYM(1) b BSYM(1) diff --git a/trunk/bootrom/build/libraries/os/common/os_interrupt.c b/trunk/bootrom/build/libraries/os/common/os_interrupt.c index 8a8021d..9aafa52 100644 --- a/trunk/bootrom/build/libraries/os/common/os_interrupt.c +++ b/trunk/bootrom/build/libraries/os/common/os_interrupt.c @@ -248,7 +248,7 @@ OSIntrMode osRestoreInterrupts_IrqAndFiq( OSIntrMode state ) Returns: last state of HW_PSR_IRQ_DISABLE *---------------------------------------------------------------------------*/ -ASM OSIntrMode osEnableIrq( void ) +asm OSIntrMode osEnableIrq( void ) { mrs r0, cpsr @@ -271,7 +271,7 @@ ASM OSIntrMode osEnableIrq( void ) Returns: last state of HW_PSR_IRQ_DISABLE *---------------------------------------------------------------------------*/ -ASM OSIntrMode osDisableIrq( void ) +asm OSIntrMode osDisableIrq( void ) { mrs r0, cpsr @@ -295,7 +295,7 @@ ASM OSIntrMode osDisableIrq( void ) Returns: last state of HW_PSR_IRQ_DISABLE *---------------------------------------------------------------------------*/ -ASM OSIntrMode osRestoreIrq( OSIntrMode state ) +asm OSIntrMode osRestoreIrq( OSIntrMode state ) { mrs r1, cpsr bic r2, r1, #HW_PSR_IRQ_DISABLE @@ -315,7 +315,7 @@ ASM OSIntrMode osRestoreIrq( OSIntrMode state ) Returns: last state of HW_PSR_FIQ_DISABLE *---------------------------------------------------------------------------*/ -ASM OSIntrMode osEnableFiq( void ) +asm OSIntrMode osEnableFiq( void ) { mrs r0, cpsr @@ -339,7 +339,7 @@ ASM OSIntrMode osEnableFiq( void ) Returns: last state of HW_PSR_FIQ_DISABLE *---------------------------------------------------------------------------*/ -ASM OSIntrMode osDisableFiq( void ) +asm OSIntrMode osDisableFiq( void ) { mrs r0, cpsr @@ -363,7 +363,7 @@ ASM OSIntrMode osDisableFiq( void ) Returns: last state of HW_PSR_FIQ_DISABLE *---------------------------------------------------------------------------*/ -ASM OSIntrMode osRestoreFiq( OSIntrMode state ) +asm OSIntrMode osRestoreFiq( OSIntrMode state ) { mrs r1, cpsr bic r2, r1, #HW_PSR_FIQ_DISABLE @@ -383,7 +383,7 @@ ASM OSIntrMode osRestoreFiq( OSIntrMode state ) Returns: last state of HW_PSR_IRQ_DISABLE & HW_PSR_FIQ_DISABLE *---------------------------------------------------------------------------*/ -ASM OSIntrMode osEnableIrqAndFiq( void ) +asm OSIntrMode osEnableIrqAndFiq( void ) { mrs r0, cpsr @@ -407,7 +407,7 @@ ASM OSIntrMode osEnableIrqAndFiq( void ) Returns: last state of HW_PSR_IRQ_DISABLE & HW_PSR_FIQ_DISABLE *---------------------------------------------------------------------------*/ -ASM OSIntrMode osDisableIrqAndFiq( void ) +asm OSIntrMode osDisableIrqAndFiq( void ) { mrs r0, cpsr @@ -431,7 +431,7 @@ ASM OSIntrMode osDisableIrqAndFiq( void ) Returns: last state of HW_PSR_IRQ_DISABLE & HW_PSR_FIQ_DISABLE *---------------------------------------------------------------------------*/ -ASM OSIntrMode osRestoreIrqAndFiq( OSIntrMode state ) +asm OSIntrMode osRestoreIrqAndFiq( OSIntrMode state ) { mrs r1, cpsr bic r2, r1, #HW_PSR_IRQ_FIQ_DISABLE diff --git a/trunk/bootrom/build/libraries/os/common/os_system.c b/trunk/bootrom/build/libraries/os/common/os_system.c index 88a32e7..50393cd 100644 --- a/trunk/bootrom/build/libraries/os/common/os_system.c +++ b/trunk/bootrom/build/libraries/os/common/os_system.c @@ -32,7 +32,7 @@ Returns: CPU processor mode (field 0x10-0x1f) *---------------------------------------------------------------------------*/ #include -ASM OSProcMode osGetProcMode( void ) +asm OSProcMode osGetProcMode( void ) { mrs r0, cpsr and r0, r0, #HW_PSR_CPU_MODE_MASK @@ -54,7 +54,7 @@ ASM OSProcMode osGetProcMode( void ) Returns: None *---------------------------------------------------------------------------*/ #include -ASM void i_osWaitCpuCycles( OSCpuCycle cycle ) +asm void i_osWaitCpuCycles( OSCpuCycle cycle ) { sub r0, r0, #(6-2) // subtract call-return overhead and add the margin of 2 cycles LSYM(1) @@ -96,7 +96,7 @@ void osTerminate(void) Returns: None *---------------------------------------------------------------------------*/ -ASM void osHalt( void ) +asm void osHalt( void ) { #ifdef SDK_ARM11 wfi @@ -118,8 +118,7 @@ ASM void osHalt( void ) Returns: None *---------------------------------------------------------------------------*/ - -ASM void osHaltUntilEvent( void ) +asm void osHaltUntilEvent( void ) { wfe bx lr diff --git a/trunk/bootrom/build/libraries/os/common/os_timer.c b/trunk/bootrom/build/libraries/os/common/os_timer.c index fe26202..fb50eb2 100644 --- a/trunk/bootrom/build/libraries/os/common/os_timer.c +++ b/trunk/bootrom/build/libraries/os/common/os_timer.c @@ -315,7 +315,7 @@ void osStopTimer64( void ) Returns: count *---------------------------------------------------------------------------*/ -ASM u32 osGetPerfMonitor( OSMoniter mon ) +asm u32 osGetPerfMonitor( OSMoniter mon ) { cmp r0, #__cpp(OS_MONITOR_1) beq FSYM(1) @@ -342,7 +342,7 @@ LSYM(3) Returns: previous count *---------------------------------------------------------------------------*/ -ASM u32 osSetPerfMonitor( OSMoniter mon, u32 count ) +asm u32 osSetPerfMonitor( OSMoniter mon, u32 count ) { cmp r0, #__cpp(OS_MONITOR_1) beq FSYM(1)