From 36960019dcdab63fde8311a27eeaf5c6c14467f1 Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Thu, 2 Oct 2014 16:43:19 -0700 Subject: [PATCH] arm64: Add verstage support This stage is not tested on any hardware. BUG=None BRANCH=None TEST=Compiles successfully Change-Id: Ib0b0d18090d83559276f978b57bdf600c7267606 Signed-off-by: Furquan Shaikh Reviewed-on: https://chromium-review.googlesource.com/221323 Tested-by: Furquan Shaikh Reviewed-by: Aaron Durbin Commit-Queue: Furquan Shaikh --- src/arch/arm64/Kconfig | 4 ++++ src/arch/arm64/Makefile.inc | 16 ++++++++++++++++ src/arch/arm64/armv8/Kconfig | 3 +++ src/arch/arm64/armv8/Makefile.inc | 14 ++++++++++++++ src/arch/arm64/armv8/lib/Makefile.inc | 4 ++++ 5 files changed, 41 insertions(+) diff --git a/src/arch/arm64/Kconfig b/src/arch/arm64/Kconfig index 6333e0c68b..efd596954d 100644 --- a/src/arch/arm64/Kconfig +++ b/src/arch/arm64/Kconfig @@ -3,6 +3,10 @@ config ARCH_BOOTBLOCK_ARM64 default n select ARCH_ARM64 +config ARCH_VERSTAGE_ARM64 + bool + default n + config ARCH_ROMSTAGE_ARM64 bool default n diff --git a/src/arch/arm64/Makefile.inc b/src/arch/arm64/Makefile.inc index dbe0c3ea25..5fab8bdb7f 100644 --- a/src/arch/arm64/Makefile.inc +++ b/src/arch/arm64/Makefile.inc @@ -65,6 +65,22 @@ $(objcbfs)/bootblock.debug: $$(bootblock-objs) endif # CONFIG_ARCH_BOOTBLOCK_ARM64 +############################################################################### +# verification stage +############################################################################### + +$(objcbfs)/verstage.debug: $$(verstage-objs) $$(VB2_LIB) + @printf " LINK $(subst $(obj)/,,$(@))\n" + $(call link,verstage,$(filter %.a %.o,$(^)),-o $(@) -L$(obj) -T $(obj)/mainboard/$(MAINBOARDDIR)/memlayout.verstage.ld,--gc-sections) + +verstage-$(CONFIG_EARLY_CONSOLE) += early_console.c +verstage-y += div0.c +verstage-y += eabi_compat.c +verstage-y += ../../lib/memset.c +verstage-y += ../../lib/memcpy.c +verstage-y += ../../lib/memmove.c +verstage-y += stages.c + ################################################################################ # romstage ################################################################################ diff --git a/src/arch/arm64/armv8/Kconfig b/src/arch/arm64/armv8/Kconfig index fc2e6680b1..5840e818ce 100644 --- a/src/arch/arm64/armv8/Kconfig +++ b/src/arch/arm64/armv8/Kconfig @@ -1,6 +1,9 @@ config ARCH_BOOTBLOCK_ARM_V8_64 def_bool n select ARCH_BOOTBLOCK_ARM64 +config ARCH_VERSTAGE_ARM_V8_64 + def_bool n + select ARCH_VERSTAGE_ARM64 config ARCH_ROMSTAGE_ARM_V8_64 def_bool n select ARCH_ROMSTAGE_ARM64 diff --git a/src/arch/arm64/armv8/Makefile.inc b/src/arch/arm64/armv8/Makefile.inc index 007d46cabb..a9adbeb825 100644 --- a/src/arch/arm64/armv8/Makefile.inc +++ b/src/arch/arm64/armv8/Makefile.inc @@ -45,6 +45,20 @@ bootblock-S-ccopts += $(armv8_asm_flags) endif +################################################################################ +## verstage +################################################################################ +ifeq ($(CONFIG_ARCH_VERSTAGE_ARM_V8_64),y) + +verstage-y += cache.c +verstage-y += cpu.S +verstage-y += exception.c + +verstage-c-ccopts += $(armv8_flags) +verstage-S-ccopts += $(armv8_asm_flags) + +endif + ################################################################################ ## romstage ################################################################################ diff --git a/src/arch/arm64/armv8/lib/Makefile.inc b/src/arch/arm64/armv8/lib/Makefile.inc index 737debec84..8a22391eb0 100644 --- a/src/arch/arm64/armv8/lib/Makefile.inc +++ b/src/arch/arm64/armv8/lib/Makefile.inc @@ -34,6 +34,10 @@ ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARM_V8_64),y) bootblock-y += $(lib_access) endif +ifeq ($(CONFIG_ARCH_VERSTAGE_ARM_V8_64),y) +verstage-y += $(lib_access) +endif + ifeq ($(CONFIG_ARCH_ROMSTAGE_ARM_V8_64),y) romstage-y += $(lib_access) endif