mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 10:04:26 +00:00
Merge changes I256959d7,I721376bf into integration
* changes: fix(cpus): remove plat_can_cmo check for aarch32 fix(cpus): update doc and check for plat_can_cmo
This commit is contained in:
commit
e1d24114a6
3 changed files with 3 additions and 24 deletions
|
@ -1502,8 +1502,8 @@ When CONDITIONAL_CMO flag is enabled:
|
|||
- This function indicates whether cache management operations should be
|
||||
performed. It returns 0 if CMOs should be skipped and non-zero
|
||||
otherwise.
|
||||
- The function must not clobber x2 and x3. It's also not safe to rely on stack.
|
||||
Otherwise obey AAPCS.
|
||||
- The function must not clobber x1, x2 and x3. It's also not safe to rely on
|
||||
stack. Otherwise obey AAPCS.
|
||||
|
||||
Modifications specific to a Boot Loader stage
|
||||
---------------------------------------------
|
||||
|
|
|
@ -37,27 +37,12 @@ exit_loop_\op:
|
|||
bx lr
|
||||
.endm
|
||||
|
||||
.macro check_plat_can_cmo
|
||||
#if CONDITIONAL_CMO
|
||||
mov r3, lr
|
||||
mov r2, r0
|
||||
bl plat_can_cmo
|
||||
mov lr, r3
|
||||
cmp r0, #0
|
||||
bne 1f
|
||||
bx lr
|
||||
1:
|
||||
mov r0, r2
|
||||
#endif
|
||||
.endm
|
||||
|
||||
/* ------------------------------------------
|
||||
* Clean+Invalidate from base address till
|
||||
* size. 'r0' = addr, 'r1' = size
|
||||
* ------------------------------------------
|
||||
*/
|
||||
func flush_dcache_range
|
||||
check_plat_can_cmo
|
||||
do_dcache_maintenance_by_mva cimvac, DCCIMVAC
|
||||
endfunc flush_dcache_range
|
||||
|
||||
|
@ -67,7 +52,6 @@ endfunc flush_dcache_range
|
|||
* ------------------------------------------
|
||||
*/
|
||||
func clean_dcache_range
|
||||
check_plat_can_cmo
|
||||
do_dcache_maintenance_by_mva cmvac, DCCMVAC
|
||||
endfunc clean_dcache_range
|
||||
|
||||
|
@ -77,7 +61,6 @@ endfunc clean_dcache_range
|
|||
* ------------------------------------------
|
||||
*/
|
||||
func inv_dcache_range
|
||||
check_plat_can_cmo
|
||||
do_dcache_maintenance_by_mva imvac, DCIMVAC
|
||||
endfunc inv_dcache_range
|
||||
|
||||
|
@ -185,7 +168,6 @@ endfunc do_dcsw_op
|
|||
* ---------------------------------------------------------------
|
||||
*/
|
||||
func dcsw_op_louis
|
||||
check_plat_can_cmo
|
||||
dcsw_op #LOUIS_SHIFT, #CLIDR_FIELD_WIDTH, #LEVEL_SHIFT
|
||||
endfunc dcsw_op_louis
|
||||
|
||||
|
@ -198,7 +180,6 @@ endfunc dcsw_op_louis
|
|||
* ---------------------------------------------------------------
|
||||
*/
|
||||
func dcsw_op_all
|
||||
check_plat_can_cmo
|
||||
dcsw_op #LOC_SHIFT, #CLIDR_FIELD_WIDTH, #LEVEL_SHIFT
|
||||
endfunc dcsw_op_all
|
||||
|
||||
|
@ -224,7 +205,6 @@ endfunc dcsw_op_all
|
|||
* ---------------------------------------------------------------
|
||||
*/
|
||||
func dcsw_op_level1
|
||||
check_plat_can_cmo
|
||||
dcsw_op_level #(1 << LEVEL_SHIFT)
|
||||
endfunc dcsw_op_level1
|
||||
|
||||
|
@ -237,7 +217,6 @@ endfunc dcsw_op_level1
|
|||
* ---------------------------------------------------------------
|
||||
*/
|
||||
func dcsw_op_level2
|
||||
check_plat_can_cmo
|
||||
dcsw_op_level #(2 << LEVEL_SHIFT)
|
||||
endfunc dcsw_op_level2
|
||||
|
||||
|
@ -250,6 +229,5 @@ endfunc dcsw_op_level2
|
|||
* ---------------------------------------------------------------
|
||||
*/
|
||||
func dcsw_op_level3
|
||||
check_plat_can_cmo
|
||||
dcsw_op_level #(3 << LEVEL_SHIFT)
|
||||
endfunc dcsw_op_level3
|
||||
|
|
|
@ -217,6 +217,7 @@ dcsw_loop_table:
|
|||
|
||||
|
||||
func dcsw_op_louis
|
||||
check_plat_can_cmo
|
||||
dcsw_op #LOUIS_SHIFT, #CLIDR_FIELD_WIDTH, #LEVEL_SHIFT
|
||||
endfunc dcsw_op_louis
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue