diff --git a/src/arch/arm/machine/gic_500.c b/src/arch/arm/machine/gic_500.c
index fc6f0c8f0ac2417b517269b7f66304fa008b275a..d3e212fd41c31f60d5a1b28b09affb25d9350723 100644
--- a/src/arch/arm/machine/gic_500.c
+++ b/src/arch/arm/machine/gic_500.c
@@ -216,7 +216,7 @@ BOOT_CODE static void gicr_locate_interface(void)
 
 }
 
-BOOT_CODE static void cpu_iface_init(void)
+BOOT_CODE static void gicr_init(void)
 {
     int i;
     uint32_t priority;
@@ -245,6 +245,10 @@ BOOT_CODE static void cpu_iface_init(void)
     gic_rdist_sgi_ppi_map[CURRENT_CPU_INDEX()]->icfgrn_rw = 0x0;
 
     gicv3_redist_wait_for_rwp();
+}
+
+BOOT_CODE static void cpu_iface_init(void)
+{
 
     /* Enable system registers */
     gicv3_enable_sre();
@@ -277,6 +281,7 @@ BOOT_CODE void cpu_initLocalIRQController(void)
 
     mpidr_map[CURRENT_CPU_INDEX()] = mpidr;
 
+    gicr_init();
     cpu_iface_init();
 }