diff options
author | Furquan Shaikh <furquan@google.com> | 2016-05-04 23:25:16 -0700 |
---|---|---|
committer | Furquan Shaikh <furquan@google.com> | 2016-05-09 05:01:58 +0200 |
commit | 94b18a1757e66c2e3094bd1116a88db36cbb4f79 (patch) | |
tree | 4c4686dfc4f7d70d7f4f74b7c06e8b40bed6edf0 /Makefile.inc | |
parent | 2e78aa5a78d67d8bd5ef90bb89d01fc82faadc8a (diff) |
xip: Do not pass --xip for early stages if CAR supports code execution
On modern x86 platforms like apollolake, pre-RAM stages verstage and
romstage run within the cache-as-ram region. Thus, we do not need to
pass in the --xip parameter to cbfstool while adding these
stages. Introduce a new Kconfig variable NO_XIP_EARLY_STAGES which is
default false for all x86 platforms. Apollolake selects this option
since it supports code execution with CAR.
Change-Id: I2848046472f40f09ce7fc230c258b0389851b2ea
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/14623
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'Makefile.inc')
-rw-r--r-- | Makefile.inc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Makefile.inc b/Makefile.inc index dc8fa86195..8e6977d214 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -798,13 +798,21 @@ ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32)$(CONFIG_ARCH_ROMSTAGE_X86_64),y) # # Make sure that segment for .car.data is ignored while adding romstage. $(CONFIG_CBFS_PREFIX)/romstage-align := 64 -$(CONFIG_CBFS_PREFIX)/romstage-options := --xip -S .car.data +$(CONFIG_CBFS_PREFIX)/romstage-options := -S ".car.data" + +# If CAR does not support execution of code, romstage on x86 is expected to be +# xip. +ifneq ($(CONFIG_NO_XIP_EARLY_STAGES),y) +$(CONFIG_CBFS_PREFIX)/romstage-options += --xip + # If XIP_ROM_SIZE isn't being used don't overly constrain romstage by passing # -P with a default value. ifneq ($(CONFIG_NO_FIXED_XIP_ROM_SIZE),y) $(CONFIG_CBFS_PREFIX)/romstage-options += -P $(CONFIG_XIP_ROM_SIZE) -endif -endif +endif # CONFIG_NO_FIXED_XIP_ROM_SIZE + +endif # CONFIG_NO_XIP_EARLY_STAGES +endif # CONFIG_ARCH_ROMSTAGE_X86_32 / CONFIG_ARCH_ROMSTAGE_X86_64 cbfs-files-y += $(CONFIG_CBFS_PREFIX)/ramstage $(CONFIG_CBFS_PREFIX)/ramstage-file := $(objcbfs)/ramstage.elf |