mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-05 10:28:41 +00:00
plat/arm: relocate the jump_if_cpu_midr macro.
macro jump_if_cpu_midr is used commonly by many arm platform. It has now been relocated to common place to remove duplication of code. Change-Id: Ic0876097dbc085df4f90eadb4b7687dde7c726da Signed-off-by: Deepak Pandey <Deepak.Pandey@arm.com>
This commit is contained in:
parent
424f68dd1d
commit
da3b038fd5
6 changed files with 30 additions and 59 deletions
|
@ -214,5 +214,18 @@
|
||||||
bl errata_print_msg
|
bl errata_print_msg
|
||||||
.endm
|
.endm
|
||||||
#endif
|
#endif
|
||||||
|
/*
|
||||||
|
* Helper macro that reads the part number of the current CPU and jumps
|
||||||
|
* to the given label if it matches the CPU MIDR provided.
|
||||||
|
*
|
||||||
|
* Clobbers: r0-r1
|
||||||
|
*/
|
||||||
|
.macro jump_if_cpu_midr _cpu_midr, _label
|
||||||
|
ldcopr r0, MIDR
|
||||||
|
ubfx r0, r0, #MIDR_PN_SHIFT, #12
|
||||||
|
ldr r1, =((\_cpu_midr >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
|
||||||
|
cmp r0, r1
|
||||||
|
beq \_label
|
||||||
|
.endm
|
||||||
|
|
||||||
#endif /* __CPU_MACROS_S__ */
|
#endif /* __CPU_MACROS_S__ */
|
||||||
|
|
|
@ -272,3 +272,17 @@
|
||||||
cmp \_reg, #1
|
cmp \_reg, #1
|
||||||
beq \_label
|
beq \_label
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Helper macro that reads the part number of the current
|
||||||
|
* CPU and jumps to the given label if it matches the CPU
|
||||||
|
* MIDR provided.
|
||||||
|
*
|
||||||
|
* Clobbers x0.
|
||||||
|
*/
|
||||||
|
.macro jump_if_cpu_midr _cpu_midr, _label
|
||||||
|
mrs x0, midr_el1
|
||||||
|
ubfx x0, x0, MIDR_PN_SHIFT, #12
|
||||||
|
cmp w0, #((\_cpu_midr >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
|
||||||
|
b.eq \_label
|
||||||
|
.endm
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <cortex_a53.h>
|
#include <cortex_a53.h>
|
||||||
#include <cortex_a57.h>
|
#include <cortex_a57.h>
|
||||||
#include <cortex_a72.h>
|
#include <cortex_a72.h>
|
||||||
|
#include <cpu_macros.S>
|
||||||
#include <v2m_def.h>
|
#include <v2m_def.h>
|
||||||
#include "../juno_def.h"
|
#include "../juno_def.h"
|
||||||
|
|
||||||
|
@ -33,21 +34,6 @@
|
||||||
beq \_handler
|
beq \_handler
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
/* --------------------------------------------------------------------
|
|
||||||
* Helper macro that reads the part number of the current CPU and jumps
|
|
||||||
* to the given label if it matches the CPU MIDR provided.
|
|
||||||
*
|
|
||||||
* Clobbers r0.
|
|
||||||
* --------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
.macro jump_if_cpu_midr _cpu_midr, _label
|
|
||||||
ldcopr r0, MIDR
|
|
||||||
ubfx r0, r0, #MIDR_PN_SHIFT, #12
|
|
||||||
ldr r1, =((\_cpu_midr >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
|
|
||||||
cmp r0, r1
|
|
||||||
beq \_label
|
|
||||||
.endm
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------
|
/* --------------------------------------------------------------------
|
||||||
* Platform reset handler for Juno R0.
|
* Platform reset handler for Juno R0.
|
||||||
*
|
*
|
||||||
|
|
|
@ -39,20 +39,6 @@
|
||||||
b.eq \_handler
|
b.eq \_handler
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
/* --------------------------------------------------------------------
|
|
||||||
* Helper macro that reads the part number of the current CPU and jumps
|
|
||||||
* to the given label if it matches the CPU MIDR provided.
|
|
||||||
*
|
|
||||||
* Clobbers x0.
|
|
||||||
* --------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
.macro jump_if_cpu_midr _cpu_midr, _label
|
|
||||||
mrs x0, midr_el1
|
|
||||||
ubfx x0, x0, MIDR_PN_SHIFT, #12
|
|
||||||
cmp w0, #((\_cpu_midr >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
|
|
||||||
b.eq \_label
|
|
||||||
.endm
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------
|
/* --------------------------------------------------------------------
|
||||||
* Platform reset handler for Juno R0.
|
* Platform reset handler for Juno R0.
|
||||||
*
|
*
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <asm_macros.S>
|
#include <asm_macros.S>
|
||||||
#include <platform_def.h>
|
#include <platform_def.h>
|
||||||
#include <cortex_a75.h>
|
#include <cortex_a75.h>
|
||||||
|
#include <cpu_macros.S>
|
||||||
|
|
||||||
.globl plat_arm_calc_core_pos
|
.globl plat_arm_calc_core_pos
|
||||||
.globl plat_reset_handler
|
.globl plat_reset_handler
|
||||||
|
@ -48,21 +49,6 @@ func plat_arm_calc_core_pos
|
||||||
ret
|
ret
|
||||||
endfunc plat_arm_calc_core_pos
|
endfunc plat_arm_calc_core_pos
|
||||||
|
|
||||||
/* ------------------------------------------------------
|
|
||||||
* Helper macro that reads the part number of the current
|
|
||||||
* CPU and jumps to the given label if it matches the CPU
|
|
||||||
* MIDR provided.
|
|
||||||
*
|
|
||||||
* Clobbers x0.
|
|
||||||
* -----------------------------------------------------
|
|
||||||
*/
|
|
||||||
.macro jump_if_cpu_midr _cpu_midr, _label
|
|
||||||
mrs x0, midr_el1
|
|
||||||
ubfx x0, x0, MIDR_PN_SHIFT, #12
|
|
||||||
cmp w0, #((\_cpu_midr >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
|
|
||||||
b.eq \_label
|
|
||||||
.endm
|
|
||||||
|
|
||||||
/* -----------------------------------------------------
|
/* -----------------------------------------------------
|
||||||
* void plat_reset_handler(void);
|
* void plat_reset_handler(void);
|
||||||
*
|
*
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <platform_def.h>
|
#include <platform_def.h>
|
||||||
#include <cortex_a75.h>
|
#include <cortex_a75.h>
|
||||||
#include <cortex_a55.h>
|
#include <cortex_a55.h>
|
||||||
|
#include <cpu_macros.S>
|
||||||
|
|
||||||
.globl plat_arm_calc_core_pos
|
.globl plat_arm_calc_core_pos
|
||||||
.globl plat_reset_handler
|
.globl plat_reset_handler
|
||||||
|
@ -50,21 +51,6 @@ func plat_arm_calc_core_pos
|
||||||
ret
|
ret
|
||||||
endfunc plat_arm_calc_core_pos
|
endfunc plat_arm_calc_core_pos
|
||||||
|
|
||||||
/* ------------------------------------------------------
|
|
||||||
* Helper macro that reads the part number of the current
|
|
||||||
* CPU and jumps to the given label if it matches the CPU
|
|
||||||
* MIDR provided.
|
|
||||||
*
|
|
||||||
* Clobbers x0.
|
|
||||||
* -----------------------------------------------------
|
|
||||||
*/
|
|
||||||
.macro jump_if_cpu_midr _cpu_midr, _label
|
|
||||||
mrs x0, midr_el1
|
|
||||||
ubfx x0, x0, MIDR_PN_SHIFT, #12
|
|
||||||
cmp w0, #((\_cpu_midr >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
|
|
||||||
b.eq \_label
|
|
||||||
.endm
|
|
||||||
|
|
||||||
/* -----------------------------------------------------
|
/* -----------------------------------------------------
|
||||||
* void plat_reset_handler(void);
|
* void plat_reset_handler(void);
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue