aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/common/block/fast_spi/Makefile.inc29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/soc/intel/common/block/fast_spi/Makefile.inc b/src/soc/intel/common/block/fast_spi/Makefile.inc
index 75596de75b..eeaae51d75 100644
--- a/src/soc/intel/common/block/fast_spi/Makefile.inc
+++ b/src/soc/intel/common/block/fast_spi/Makefile.inc
@@ -35,16 +35,25 @@ smm-y += mmap_boot.c
# Check to ensure that no sections in the FMAP cross 16MiB boundary if
# the platform supports split decode windows for BIOS region greater
# than 16MiB.
-$(call add_intermediate, check-fmap-16mib-crossing, $(obj)/fmap_config.h)
- flash_offset=$$(printf "%d" $$(cat $(obj)/fmap_config.h | grep "FMAP_SECTION_FLASH_START" | awk '{print $$NF}')); \
- for x in $$(cat $(obj)/fmap_config.h | grep "FMAP_TERMINAL_SECTIONS" | cut -d\" -f2); do \
- start=$$(printf "%d" $$(cat $(obj)/fmap_config.h | grep "FMAP_SECTION_"$$x"_START" | awk '{print $$NF}')); \
- size=$$(printf "%d" $$(cat $(obj)/fmap_config.h | grep "FMAP_SECTION_"$$x"_SIZE" | awk '{print $$NF}')); \
- start=$$((start-flash_offset)); \
- end=$$((start+size-1)); \
- if [ $$start -lt 16777216 ] && [ $$end -ge 16777216 ]; then echo "ERROR:" $$x "crosses 16MiB boundary"; fail=1; break; fi; \
- done; \
- exit $$fail
+
+$(call add_intermediate, check-fmap-16mib-crossing)
+check-fmap-16mib-crossing: $(obj)/fmap_config.h
+ fmap_get() { awk "/$$1/ { print \$$NF }" < $<; }; \
+ \
+ flash_offset=$$(fmap_get FMAP_SECTION_FLASH_START); \
+ for x in $$(grep "FMAP_TERMINAL_SECTIONS" < $< | cut -d\" -f2); \
+ do \
+ start=$$(fmap_get "FMAP_SECTION_$${x}_START"); \
+ size=$$(fmap_get "FMAP_SECTION_$${x}_SIZE"); \
+ start=$$((start-flash_offset)); \
+ end=$$((start+size-1)); \
+ if [ $$start -lt 16777216 ] && [ $$end -ge 16777216 ]; then \
+ echo "ERROR: $$x crosses 16MiB boundary"; \
+ fail=1; \
+ break; \
+ fi; \
+ done; \
+ exit $$fail
CBFSTOOL_ADD_CMD_OPTIONS += --ext-win-base $(CONFIG_EXT_BIOS_WIN_BASE) --ext-win-size $(CONFIG_EXT_BIOS_WIN_SIZE)