Commit da3b038f authored by Deepak Pandey's avatar Deepak Pandey
Browse files

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: default avatarDeepak Pandey <Deepak.Pandey@arm.com>
parent 424f68dd
...@@ -214,5 +214,18 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 ...@@ -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 @@ ...@@ -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 ...@@ -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);
* *
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment