From c176f573592e048b37435b0c712b9eb87152f5a5 Mon Sep 17 00:00:00 2001
From: Igor Opaniuk <igor.opaniuk@linaro.org>
Date: Mon, 19 Dec 2016 22:47:09 +0200
Subject: [PATCH] Create uboot.env from uboot.txt

Add support for generation of uboot.env image from txt file

Fixes: https://github.com/OP-TEE/build/issues/85
Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org>
Tested-by: Igor Opaniuk <igor.opaniuk@linaro.org> (RPi3)
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
---
 rpi3.mk                     |  24 +++++++++++++++++++-----
 rpi3/firmware/uboot.env     | Bin 16384 -> 0 bytes
 rpi3/firmware/uboot.env.txt |  28 ++++++++++++++++++++++++++++
 3 files changed, 47 insertions(+), 5 deletions(-)
 delete mode 100644 rpi3/firmware/uboot.env
 create mode 100644 rpi3/firmware/uboot.env.txt

diff --git a/rpi3.mk b/rpi3.mk
index 328878d..8f965c4 100644
--- a/rpi3.mk
+++ b/rpi3.mk
@@ -43,7 +43,8 @@ U-BOOT_JTAG_BIN		?= $(U-BOOT_PATH)/u-boot-jtag.bin
 RPI3_FIRMWARE_PATH	?= $(BUILD_PATH)/rpi3/firmware
 RPI3_HEAD_BIN		?= $(ROOT)/out/head.bin
 RPI3_BOOT_CONFIG	?= $(RPI3_FIRMWARE_PATH)/config.txt
-RPI3_UBOOT_ENV		?= $(RPI3_FIRMWARE_PATH)/uboot.env
+RPI3_UBOOT_ENV		?= $(ROOT)/out/uboot.env
+RPI3_UBOOT_ENV_TXT	?= $(RPI3_FIRMWARE_PATH)/uboot.env.txt
 RPI3_STOCK_FW_PATH	?= $(ROOT)/rpi3_firmware
 
 OPTEE_OS_PAGER		?= $(OPTEE_OS_PATH)/out/arm/core/tee-pager.bin
@@ -55,10 +56,10 @@ MODULE_OUTPUT		?= $(ROOT)/module_output
 ################################################################################
 # Targets
 ################################################################################
-all: rpi3-firmware arm-tf optee-os optee-client xtest u-boot \
+all: rpi3-firmware arm-tf optee-os optee-client xtest u-boot u-boot-jtag-bin\
 	linux update_rootfs
-all-clean: arm-tf-clean busybox-clean u-boot-clean optee-os-clean \
-	optee-client-clean rpi3-firmware-clean head-bin-clean
+all-clean: arm-tf-clean busybox-clean u-boot-clean u-boot-jtag-bin-clean \
+	optee-os-clean optee-client-clean rpi3-firmware-clean head-bin-clean
 
 -include toolchain.mk
 
@@ -100,11 +101,17 @@ U-BOOT_EXPORTS ?= CROSS_COMPILE=$(LEGACY_AARCH64_CROSS_COMPILE) ARCH=arm64
 u-boot: $(RPI3_HEAD_BIN)
 	$(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) rpi_3_defconfig
 	$(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) all
-	cd $(U-BOOT_PATH) && cat $(RPI3_HEAD_BIN) $(U-BOOT_BIN) > $(U-BOOT_JTAG_BIN)
+	$(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) tools
 
 u-boot-clean:
 	$(U-BOOT_EXPORTS) $(MAKE) -C $(U-BOOT_PATH) clean
 
+u-boot-jtag-bin: $(RPI3_UBOOT_ENV) u-boot
+	cd $(U-BOOT_PATH) && cat $(RPI3_HEAD_BIN) $(U-BOOT_BIN) > $(U-BOOT_JTAG_BIN)
+
+u-boot-jtag-bin-clean:
+	rm -f $(U-BOOT_JTAG_BIN)
+
 $(RPI3_HEAD_BIN): $(RPI3_FIRMWARE_PATH)/head.S
 	mkdir -p $(ROOT)/out/
 	$(AARCH64_CROSS_COMPILE)as $< -o $(ROOT)/out/head.o
@@ -113,6 +120,13 @@ $(RPI3_HEAD_BIN): $(RPI3_FIRMWARE_PATH)/head.S
 head-bin-clean:
 	rm -f $(RPI3_HEAD_BIN) $(ROOT)/out/head.o
 
+$(RPI3_UBOOT_ENV): $(RPI3_UBOOT_ENV_TXT) u-boot
+	mkdir -p $(ROOT)/out
+	$(U-BOOT_PATH)/tools/mkenvimage -s 0x4000 -o $(ROOT)/out/uboot.env $(RPI3_UBOOT_ENV_TXT)
+
+u-boot-env-clean:
+	rm -f $(RPI3_UBOOT_ENV)
+
 ################################################################################
 # Busybox
 ################################################################################
diff --git a/rpi3/firmware/uboot.env b/rpi3/firmware/uboot.env
deleted file mode 100644
index 2b6867f39edc62d184e72822a81bc31ce60091cc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 16384
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
Q1Uv#B0gr%3;QxxiKOw!NoB#j-

diff --git a/rpi3/firmware/uboot.env.txt b/rpi3/firmware/uboot.env.txt
new file mode 100644
index 0000000..b402276
--- /dev/null
+++ b/rpi3/firmware/uboot.env.txt
@@ -0,0 +1,28 @@
+bootdelay=3
+atf_load_addr=0x08400000
+atf_file=optee.bin
+baudrate=115200
+boot_it=booti ${kernel_addr_r} - ${fdt_addr_r}
+bootargs=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootfs=ext4 ignore_loglevel dma.dmachans=0x7f35 rootwait 8250.nr_uarts=1 elevator=deadline fsck.repair=yes smsc95xx.macaddr=${ethaddr} bcm2708_fb.fbwidth=1920 bcm2708_fb.fbheight=1080 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000
+bootcmd=run load_kernel; run load_dtb; run load_firmware; run boot_it
+bootdelay=2
+cpu=armv8
+fdt_addr_r=0x1700000
+fdtfile=bcm2710-rpi-3-b.dtb
+filesize=5a65c
+gatewayip=192.168.1.1
+initrd_high=ffffffff
+kernel_addr_r=0x10000000
+load_dtb=fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}
+load_firmware=fatload mmc 0:1 ${atf_load_addr} ${atf_file}
+load_kernel=fatload mmc 0:1 ${kernel_addr_r} Image
+netmask=255.255.255.0
+serverip=192.168.1.164
+smp=on
+stderr=serial,lcd
+stdin=serial,usbkbd
+stdout=serial,lcd
+
+#setenv optee 'usb start; dhcp ${kernel_addr_r} 192.168.1.164:Image; dhcp ${fdt_addr_r} 192.168.1.164:${fdtfile}; dhcp ${atf_load_addr} 192.168.1.164:${atf_file}; run boot_it'
+
+#setenv bootargs 'console=ttyS0,115200 root=/dev/nfs rw rootfstype=nfs nfsroot=192.168.1.164:/mnt/sshd/srv/nfs/debian-arm64,udp,vers=3 ip=dhcp ignore_loglevel dma.dmachans=0x7f35 rootwait 8250.nr_uarts=1 elevator=deadline fsck.repair=yes smsc95xx.macaddr=${ethaddr} bcm2708_fb.fbwidth=1920 bcm2708_fb.fbheight=1080 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000'
-- 
GitLab