arm64: initialize GIC for each CPU

For every CPU that comes online initialize the GIC for
that CPU. This allows the per-cpu register state to
be initialized for every CPU that comes online.

BUG=chrome-os-partner:31945
BRANCH=None
TEST=Built and booted to kernel on ryu.

Change-Id: I467ca38d51ac67ffc19b1b4fc6fafa9394a876c9
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: b2faf33fad80fd7ecb884d3ad40917f5a629a5b2
Original-Change-Id: I58d0ffcfe65cffc6a4dd2678c041219e1e698aaf
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/217513
Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: http://review.coreboot.org/9076
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <edward.ocallaghan@koparo.com>
diff --git a/src/arch/arm64/cpu.c b/src/arch/arm64/cpu.c
index 66c8dde..0f9e874 100644
--- a/src/arch/arm64/cpu.c
+++ b/src/arch/arm64/cpu.c
@@ -23,6 +23,7 @@
 #include <arch/lib_helpers.h>
 #include <cpu/cpu.h>
 #include <console/console.h>
+#include <gic.h>
 #include "cpu-internal.h"
 
 static struct cpu_info cpu_infos[CONFIG_MAX_CPUS];
@@ -90,6 +91,9 @@
 
 	cpu_set_device_operations(dev);
 
+	/* Initialize the GIC. */
+	gic_init();
+
 	if (dev->ops != NULL && dev->ops->init != NULL) {
 		dev->initialized = 1;
 		printk(BIOS_DEBUG, "%s init\n", dev_path(dev));