summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2008-10-06 04:42:33 -0400
committerMike Frysinger <vapier@gentoo.org>2009-06-14 20:01:03 -0400
commit67c2829b646bb5b859088b36fbc89e971b9c1960 (patch)
treef99e779e584e5fb02aadd9012992f31a19b84e1a
parent31f30c9eb60d9ab0bd702e31f66345f99b34bdc6 (diff)
downloadu-boot-imx-67c2829b646bb5b859088b36fbc89e971b9c1960.zip
u-boot-imx-67c2829b646bb5b859088b36fbc89e971b9c1960.tar.gz
u-boot-imx-67c2829b646bb5b859088b36fbc89e971b9c1960.tar.bz2
Blackfin: support embedding the environment into loader files (LDRs)
For the most part, the Blackfin processor boots files in the LDR format rather than binary/ELF files. So we want to export the environment as a raw blob to the LDR utility so it can embed it at the right location. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--Makefile1
-rw-r--r--blackfin_config.mk7
2 files changed, 8 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 285f116..2f87595 100644
--- a/Makefile
+++ b/Makefile
@@ -323,6 +323,7 @@ $(obj)u-boot.bin: $(obj)u-boot
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
$(obj)u-boot.ldr: $(obj)u-boot
+ $(obj)tools/envcrc --binary > $(obj)env-ldr.o
$(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS)
$(obj)u-boot.ldr.hex: $(obj)u-boot.ldr
diff --git a/blackfin_config.mk b/blackfin_config.mk
index 05077c8..00e3bfc 100644
--- a/blackfin_config.mk
+++ b/blackfin_config.mk
@@ -23,6 +23,8 @@
CONFIG_BFIN_CPU := $(strip $(subst ",,$(CONFIG_BFIN_CPU)))
CONFIG_BFIN_BOOT_MODE := $(strip $(subst ",,$(CONFIG_BFIN_BOOT_MODE)))
+CONFIG_ENV_OFFSET := $(strip $(subst ",,$(CONFIG_ENV_OFFSET)))
+CONFIG_ENV_SIZE := $(strip $(subst ",,$(CONFIG_ENV_SIZE)))
PLATFORM_RELFLAGS += -ffixed-P5 -fomit-frame-pointer -mno-fdpic
PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN
@@ -43,6 +45,11 @@ LDR_FLAGS += --bmode $(subst BFIN_BOOT_,,$(CONFIG_BFIN_BOOT_MODE))
LDR_FLAGS += --use-vmas
ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_BYPASS)
LDR_FLAGS += --initcode $(obj)cpu/$(CPU)/initcode.o
+ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_UART)
+ifneq ($(ENV_IS_EMBEDDED_CUSTOM),ENV_IS_EMBEDDED_CUSTOM)
+LDR_FLAGS += --punchit $$(($(CONFIG_ENV_OFFSET))):$$(($(CONFIG_ENV_SIZE))):$(obj)env-ldr.o
+endif
+endif
endif
ifneq (,$(findstring s,$(MAKEFLAGS)))
LDR_FLAGS += --quiet