From 67c2829b646bb5b859088b36fbc89e971b9c1960 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Mon, 6 Oct 2008 04:42:33 -0400
Subject: [PATCH] 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>
---
 Makefile           | 1 +
 blackfin_config.mk | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/Makefile b/Makefile
index 285f116353..2f875958b4 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 05077c819b..00e3bfc62d 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
-- 
GitLab