📄 mmumacro.s
字号:
ENDIF
MEND
;Coprocessor read of Domain Access Control reg.
;
MACRO
RDMMU_DAControl $reg_number
NO_RDMMU_DAControl $reg_number
IF FORCE_TGTCPU = "ARM720"
RDMMU_DAControl_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
RDMMU_DAControl_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
RDMMU_DAControl_110 $reg_number
ENDIF
MEND
;Coprocessor write of Domain Access Control reg.
;
MACRO
WRMMU_DAControl $reg_number
NO_WRMMU_DAControl $reg_number
IF FORCE_TGTCPU = "ARM720"
WRMMU_DAControl_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRMMU_DAControl_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRMMU_DAControl_110 $reg_number
ENDIF
MEND
;Coprocessor read of Fault Status register
;
MACRO
RDMMU_FaultStatus $reg
NO_RDMMU_FaultStatus $reg
IF FORCE_TGTCPU = "SA110"
RDMMU_FaultStatus_110 $reg
ENDIF
IF FORCE_TGTCPU = "SA110"
RDMMU_FaultStatus_110 $reg
ENDIF
IF FORCE_TGTCPU = "SA110"
RDMMU_FaultStatus_110 $reg
ENDIF
MEND
;Coprocessor write of Fault Status register
;
MACRO
WRMMU_FaultStatus $reg
NO_WRMMU_FaultStatus $reg
IF FORCE_TGTCPU = "ARM720"
WRMMU_FaultStatus_720T $reg
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRMMU_FaultStatus_920T $reg
ENDIF
IF FORCE_TGTCPU = "SA110"
WRMMU_FaultStatus_110 $reg
ENDIF
MEND
;Coprocessor read of Fault Address register
;
MACRO
RDMMU_FaultAddress $reg
NO_RDMMU_FaultAddress $reg
IF FORCE_TGTCPU = "ARM720"
RDMMU_FaultAddress_720T $reg
ENDIF
IF FORCE_TGTCPU = "ARM920"
RDMMU_FaultAddress_920T $reg
ENDIF
IF FORCE_TGTCPU = "SA110"
RDMMU_FaultAddress_110 $reg
ENDIF
MEND
;Coprocessor write of Fault Address register
;
MACRO
WRMMU_FaultAddress $reg
NO_WRMMU_FaultAddress $reg
IF FORCE_TGTCPU = "ARM720"
WRMMU_FaultAddress_720T $reg
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRMMU_FaultAddress_920T $reg
ENDIF
IF FORCE_TGTCPU = "SA110"
WRMMU_FaultAddress_110 $reg
ENDIF
MEND
;Flush TLB
;
MACRO
WRMMU_FlushTB $reg_number
NO_WRMMU_FlushTB $reg_number
IF FORCE_TGTCPU = "ARM720"
WRMMU_FlushTB_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRMMU_FlushTB_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRMMU_FlushTB_110 $reg_number
ENDIF
MEND
;Flush Instruction TLB
;
MACRO
WRMMU_FlushITB $reg_number
NO_WRMMU_FlushITB $reg_number
IF FORCE_TGTCPU = "ARM720"
WRMMU_FlushITB_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRMMU_FlushITB_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRMMU_FlushITB_110 $reg_number
ENDIF
MEND
;Flush Data TLB
;
MACRO
WRMMU_FlushDTB $reg_number
NO_WRMMU_FlushDTB $reg_number
IF FORCE_TGTCPU = "ARM720"
WRMMU_FlushDTB_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRMMU_FlushDTB_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRMMU_FlushDTB_110 $reg_number
ENDIF
MEND
;-----------------------------------------------------------
; MPU support macros:
;Coprocessor write of MPU cache bits
;
MACRO
WRMPU_CacheBits $reg_number
NO_WRMPU_CacheBits $reg_number
IF FORCE_TGTCPU = "ARM740"
WRMPU_CacheBits_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRMPU_CacheBits_940T $reg_number
ENDIF
MEND
;Coprocessor write of MPU buffer bits
;
MACRO
WRMPU_BufferBits $reg_number
NO_WRMPU_BufferBits $reg_number
IF FORCE_TGTCPU = "ARM740"
WRMPU_BufferBits_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRMPU_BufferBits_940T $reg_number
ENDIF
MEND
;Coprocessor write of MPU access bits
;
MACRO
WRMPU_AccessBits $reg_number
NO_WRMPU_AccessBits $reg_number
IF FORCE_TGTCPU = "ARM740"
WRMPU_AccessBits_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRMPU_AccessBits_940T $reg_number
ENDIF
MEND
;Coprocessor write of MPU region registors
;
MACRO
WRMPU_Region $region, $reg_number
NO_WRMPU_Region $region, $reg_number
IF FORCE_TGTCPU = "ARM740"
WRMPU_Region_740T $region, $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRMPU_Region_940T $region, $reg_number
ENDIF
MEND
;-----------------------------------------------------------
;Coprocessor cache control
;Flush I & D Caches
;
MACRO
WRCACHE_FlushIDC $reg_number
NO_WRCACHE_FlushIDC $reg_number
IF FORCE_TGTCPU = "ARM720"
WRCACHE_FlushIDC_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRCACHE_FlushIDC_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRCACHE_FlushIDC_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCACHE_FlushIDC_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCACHE_FlushIDC_110 $reg_number
ENDIF
MEND
;Coprocessor cache control
;Flush ICache
;
MACRO
WRCACHE_FlushIC $reg_number
NO_WRCACHE_FlushIC $reg_number
IF FORCE_TGTCPU = "ARM720"
WRCACHE_FlushIC_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRCACHE_FlushIC_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRCACHE_FlushIC_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCACHE_FlushIC_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCACHE_FlushIC_110 $reg_number
ENDIF
MEND
;Coprocessor cache control
;Flush DCache
;
MACRO
WRCACHE_FlushDC $reg_number
NO_WRCACHE_FlushDC $reg_number
IF FORCE_TGTCPU = "ARM720"
WRCACHE_FlushDC_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRCACHE_FlushDC_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRCACHE_FlushDC_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCACHE_FlushDC_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCACHE_FlushDC_110 $reg_number
ENDIF
MEND
;Coprocessor cache control
;Flush DCache entry
;
MACRO
WRCACHE_CacheFlushDentry $reg_number
NO_WRCACHE_CacheFlushDentry $reg_number
IF FORCE_TGTCPU = "ARM720"
WRCACHE_CacheFlushDentry_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRCACHE_CacheFlushDentry_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRCACHE_CacheFlushDentry_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCACHE_CacheFlushDentry_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCACHE_CacheFlushDentry_110 $reg_number
ENDIF
MEND
;Coprocessor cache control
;Clean DCache entry
;
MACRO
WRCACHE_CleanDCentry $reg_number
NO_WRCACHE_CleanDCentry $reg_number
IF FORCE_TGTCPU = "ARM720"
WRCACHE_CleanDCentry_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRCACHE_CleanDCentry_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRCACHE_CleanDCentry_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCACHE_CleanDCentry_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCACHE_CleanDCentry_110 $reg_number
ENDIF
MEND
;Coprocessor cache control
;Clean + Flush DCache entry
;
MACRO
WRCACHE_Clean_FlushDCentry $reg_number
NO_WRCACHE_Clean_FlushDCentry $reg_number
IF FORCE_TGTCPU = "ARM720"
WRCACHE_Clean_FlushDCentry_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRCACHE_Clean_FlushDCentry_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRCACHE_Clean_FlushDCentry_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCACHE_Clean_FlushDCentry_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCACHE_Clean_FlushDCentry_110 $reg_number
ENDIF
MEND
;Drain Write Buffer.
;
MACRO
WRCACHE_DrainWriteBuffer $reg_number
NO_WRCACHE_DrainWriteBuffer $reg_number
IF FORCE_TGTCPU = "ARM720"
WRCACHE_DrainWriteBuffer_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRCACHE_DrainWriteBuffer_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRCACHE_DrainWriteBuffer_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCACHE_DrainWriteBuffer_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCACHE_DrainWriteBuffer_110 $reg_number
ENDIF
MEND
;Clean DCache (only) from address in $reg1 to (excl) addr in $reg2
;
MACRO
WRCACHE_CleanDrange $reg1, $reg2
NO_WRCACHE_CleanDrange $reg1, $reg2
IF FORCE_TGTCPU = "ARM720"
WRCACHE_CleanDrange_720T $reg1, $reg2
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRCACHE_CleanDrange_740T $reg1, $reg2
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRCACHE_CleanDrange_920T $reg1, $reg2
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCACHE_CleanDrange_940T $reg1, $reg2
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCACHE_CleanDrange_110 $reg1, $reg2
ENDIF
MEND
;Clean all DCache
;
MACRO
WRCACHE_CleanDCache $w1, $w2, $w3, $w4, $w5, $w6
NO_WRCACHE_CleanDCache $w1, $w2, $w3, $w4, $w5, $w6
IF FORCE_TGTCPU = "ARM720"
WRCACHE_CleanDCache_720T $w1, $w2, $w3, $w4, $w5, $w6
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRCACHE_CleanDCache_740T $w1, $w2, $w3, $w4, $w5, $w6
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRCACHE_CleanDCache_920T $w1, $w2, $w3, $w4, $w5, $w6
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCACHE_CleanDCache_940T $w1, $w2, $w3, $w4, $w5, $w6
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCACHE_CleanDCache_110 $w1, $w2, $w3, $w4, $w5, $w6
ENDIF
MEND
;------------------------------------------------------------------
;Coprocessor test/clock/idle control
;Enable Clock Switching
;
MACRO
WRCLK_EnableClockSW $reg_number
NO_WRCLK_EnableClockSW $reg_number
IF FORCE_TGTCPU = "ARM920"
WRCLK_EnableClockSW_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCLK_EnableClockSW_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCLK_EnableClockSW_110 $reg_number
ENDIF
MEND
;Coprocessor test/clock/idle control
;Disable Clock Switching
;
MACRO
WRCLK_DisableClockSW $reg_number
NO_WRCLK_DisableClockSW $reg_number
IF FORCE_TGTCPU = "ARM920"
WRCLK_DisableClockSW_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRCLK_DisableClockSW_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCLK_DisableClockSW_110 $reg_number
ENDIF
MEND
;Coprocessor test/clock/idle control
;Disable nMCLK output
;
MACRO
WRCLK_DisablenMCLK $reg_number
NO_WRCLK_DisablenMCLK $reg_number
IF FORCE_TGTCPU = "ARM920"
WRCLK_DisablenMCLK_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRCLK_DisablenMCLK_110 $reg_number
ENDIF
MEND
;Coprocessor test/clock/idle control
;Wait for Interrupt
;
MACRO
WRTEST_WaitInt $reg_number
NO_WRTEST_WaitInt $reg_number
IF FORCE_TGTCPU = "ARM720"
WRTEST_WaitInt_720T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM740"
WRTEST_WaitInt_740T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM920"
WRTEST_WaitInt_920T $reg_number
ENDIF
IF FORCE_TGTCPU = "ARM940"
WRTEST_WaitInt_940T $reg_number
ENDIF
IF FORCE_TGTCPU = "SA110"
WRTEST_WaitInt_110 $reg_number
ENDIF
MEND
;-----------------------------------------------------------
; MPU setup macro and variables
;
MACRO
SET_MPU_REGION $num, $address, $size, $access
NO_SET_MPU_REGION $num, $address, $size, $access
IF FORCE_TGTCPU = "ARM740"
SET_MPU_REGION_740T $num, $address, $size, $access
ENDIF
IF FORCE_TGTCPU = "ARM940"
SET_MPU_REGION_940T $num, $address, $size, $access
ENDIF
MEND
ENDIF
END
; EOF mmumacros.s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -