From: Yangbo Lu Date: Tue, 17 Jul 2018 09:42:47 +0000 (+0800) Subject: layerscape: add u-boot environment support for OpenWrt boot X-Git-Tag: v19.07.0-rc1~2540 X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=commitdiff_plain;h=ad1dbc0ca304686a7f826528e674620791f34584 layerscape: add u-boot environment support for OpenWrt boot This patch is to implement u-boot environment txt files to support OpenWrt boot for all layerscape devices. Signed-off-by: Yangbo Lu --- diff --git a/package/boot/uboot-layerscape-armv8_32b/Makefile b/package/boot/uboot-layerscape-armv8_32b/Makefile index 415d9bdbea..b9cec52174 100644 --- a/package/boot/uboot-layerscape-armv8_32b/Makefile +++ b/package/boot/uboot-layerscape-armv8_32b/Makefile @@ -29,27 +29,32 @@ define Package/uboot-layerscape-armv8_32b/Config TITLE:=$(2) DEPENDS:=@TARGET_layerscape_armv8_32b CONFIG:=$(3) + ENV_SIZE:=$(4) endef endef define Package/uboot-layerscape-armv8_32b/ls1012ardb TITLE:=U-Boot image for NXP LS1012ARDB CONFIG:=ls1012ardb-uboot.bin + ENV_SIZE:=0x40000 endef define Package/uboot-layerscape-armv8_32b/ls1012afrdm TITLE:=U-Boot image for NXP LS1012FRDM CONFIG:=ls1012afrdm-uboot.bin + ENV_SIZE:=0x40000 endef define Package/uboot-layerscape-armv8_32b/ls1043ardb TITLE:=U-Boot image for NXP LS1043ARDB CONFIG:=ls1043ardb-uboot.bin + ENV_SIZE:=0x20000 endef define Package/uboot-layerscape-armv8_32b/ls1046ardb TITLE:=U-Boot image for NXP LS1046ARDB CONFIG:=ls1046ardb-uboot.bin + ENV_SIZE:=0x2000 endef define Build/Compile @@ -59,6 +64,9 @@ define Package/uboot-layerscape-armv8_32b/Install define Package/u-boot-$(1)-image/install $(INSTALL_DIR) $(STAGING_DIR_IMAGE) $(CP) $(PKG_BUILD_DIR)/$(CONFIG) $(STAGING_DIR_IMAGE)/ + $(PKG_BUILD_DIR)/tools/mkenvimage -s $(ENV_SIZE) \ + -o $(STAGING_DIR_IMAGE)/$(1)-uboot-env.bin \ + ../uboot-layerscape/files/$(1)-uEnv.txt endef endef @@ -70,7 +78,7 @@ UBOOTS := \ $(foreach u,$(UBOOTS), \ $(eval $(Package/uboot-layerscape-armv8_32b/$(u))) \ - $(eval $(call Package/uboot-layerscape-armv8_32b/Config,$(u),$(TITLE),$(CONFIG))) \ + $(eval $(call Package/uboot-layerscape-armv8_32b/Config,$(u),$(TITLE),$(CONFIG),$(ENV_SIZE))) \ $(eval $(call Package/uboot-layerscape-armv8_32b/Install,$(u))) \ $(eval $(call BuildPackage,u-boot-$(u)-image)) \ ) diff --git a/package/boot/uboot-layerscape/Makefile b/package/boot/uboot-layerscape/Makefile index 9e4079e386..ffa392cd6e 100644 --- a/package/boot/uboot-layerscape/Makefile +++ b/package/boot/uboot-layerscape/Makefile @@ -24,20 +24,24 @@ define U-Boot/Default BUILD_SUBTARGET:=armv8_64b BUILD_DEVICES:=$(1) UBOOT_IMAGE:=u-boot-dtb.bin + ENV_SIZE:=0x2000 endef define U-Boot/ls1012ardb NAME:=NXP LS1012ARDB UBOOT_CONFIG:=ls1012ardb_qspi + ENV_SIZE:=0x40000 endef define U-Boot/ls1012afrdm NAME:=NXP LS1012AFRDM UBOOT_CONFIG:=ls1012afrdm_qspi + ENV_SIZE:=0x40000 endef define U-Boot/ls1043ardb NAME:=NXP LS1043ARDB + ENV_SIZE:=0x20000 endef define U-Boot/ls1046ardb @@ -67,6 +71,9 @@ define Build/InstallDev $(INSTALL_DIR) $(STAGING_DIR_IMAGE) $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) \ $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-uboot.bin + $(PKG_BUILD_DIR)/tools/mkenvimage -s $(ENV_SIZE) \ + -o $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-uboot-env.bin \ + files/$(BUILD_VARIANT)-uEnv.txt endef define Package/u-boot/install/default diff --git a/package/boot/uboot-layerscape/files/ls1012afrdm-uEnv.txt b/package/boot/uboot-layerscape/files/ls1012afrdm-uEnv.txt new file mode 100644 index 0000000000..32419dd33d --- /dev/null +++ b/package/boot/uboot-layerscape/files/ls1012afrdm-uEnv.txt @@ -0,0 +1,8 @@ +fdtaddr=0x8f000000 +loadaddr=0x81000000 +fdt_high=0xffffffffffffffff +initrd_high=0xffffffffffffffff +qspi_boot=sf probe 0:0;sf read $fdtaddr f00000 100000;sf read $loadaddr 1000000 1000000;bootm $loadaddr - $fdtaddr +bootargs=ubi.mtd=9 root=ubi0:rootfs rw rootfstype=ubifs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 mtdparts=1550000.quadspi:1m(rcw),2m(u-boot),1m(u-boot-env),2m(ppa),4m(reserved-1),3m(pfe),2m(reserved-2),1m(dtb),16m(kernel),32m(ubifs) +bootcmd=echo starting openwrt ...;pfe stop;run qspi_boot +bootdelay=3 diff --git a/package/boot/uboot-layerscape/files/ls1012ardb-uEnv.txt b/package/boot/uboot-layerscape/files/ls1012ardb-uEnv.txt new file mode 100644 index 0000000000..32419dd33d --- /dev/null +++ b/package/boot/uboot-layerscape/files/ls1012ardb-uEnv.txt @@ -0,0 +1,8 @@ +fdtaddr=0x8f000000 +loadaddr=0x81000000 +fdt_high=0xffffffffffffffff +initrd_high=0xffffffffffffffff +qspi_boot=sf probe 0:0;sf read $fdtaddr f00000 100000;sf read $loadaddr 1000000 1000000;bootm $loadaddr - $fdtaddr +bootargs=ubi.mtd=9 root=ubi0:rootfs rw rootfstype=ubifs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 mtdparts=1550000.quadspi:1m(rcw),2m(u-boot),1m(u-boot-env),2m(ppa),4m(reserved-1),3m(pfe),2m(reserved-2),1m(dtb),16m(kernel),32m(ubifs) +bootcmd=echo starting openwrt ...;pfe stop;run qspi_boot +bootdelay=3 diff --git a/package/boot/uboot-layerscape/files/ls1043ardb-uEnv.txt b/package/boot/uboot-layerscape/files/ls1043ardb-uEnv.txt new file mode 100644 index 0000000000..c78bfe0098 --- /dev/null +++ b/package/boot/uboot-layerscape/files/ls1043ardb-uEnv.txt @@ -0,0 +1,9 @@ +fdtaddr=0x8f000000 +loadaddr=0x81000000 +fdt_high=0xffffffffffffffff +initrd_high=0xffffffffffffffff +hwconfig=fsl_ddr:bank_intlv=auto +nor_boot=cp.b 60f00000 $fdtaddr 100000;cp.b 61000000 $loadaddr 1000000;bootm $loadaddr - $fdtaddr +bootargs=root=/dev/mtdblock9 rootfstype=squashfs,jffs2 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 mtdparts=60000000.nor:1m(rcw),2m(u-boot),1m(u-boot-env),2m(ppa),3m(reserved-1),256k(fman),5888k(reserved-2),1m(dtb),16m(kernel),32m(rootfs) +bootcmd=echo starting openwrt ...;run nor_boot +bootdelay=3 diff --git a/package/boot/uboot-layerscape/files/ls1046ardb-uEnv.txt b/package/boot/uboot-layerscape/files/ls1046ardb-uEnv.txt new file mode 100644 index 0000000000..fecb8fd702 --- /dev/null +++ b/package/boot/uboot-layerscape/files/ls1046ardb-uEnv.txt @@ -0,0 +1,9 @@ +fdtaddr=0x8f000000 +loadaddr=0x81000000 +fdt_high=0xffffffffffffffff +initrd_high=0xffffffffffffffff +hwconfig=fsl_ddr:bank_intlv=auto +qspi_boot=sf probe 0:0;sf read $fdtaddr f00000 100000;sf read $loadaddr 1000000 1000000;bootm $loadaddr - $fdtaddr +bootargs=ubi.mtd=10 root=ubi0:rootfs rw rootfstype=ubifs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 mtdparts=1550000.quadspi:1m(rcw),2m(u-boot),1m(u-boot-env),2m(ppa),3m(reserved-1),256k(fman),5888k(reserved-2),1m(dtb),16m(kernel),32m(ubifs) +bootcmd=echo starting openwrt ...;run qspi_boot +bootdelay=3 diff --git a/package/boot/uboot-layerscape/files/ls1088ardb-uEnv.txt b/package/boot/uboot-layerscape/files/ls1088ardb-uEnv.txt new file mode 100644 index 0000000000..1bcd7019cc --- /dev/null +++ b/package/boot/uboot-layerscape/files/ls1088ardb-uEnv.txt @@ -0,0 +1,10 @@ +fdtaddr=0x8f000000 +loadaddr=0x81000000 +fdt_high=0xa0000000 +initrd_high=0xffffffffffffffff +hwconfig=fsl_ddr:bank_intlv=auto +mc_init=sf probe 0:0;sf read 80000000 a00000 300000;sf read 80300000 e00000 100000;fsl_mc start mc 80000000 80300000;sf read 80400000 d00000 100000;fsl_mc apply dpl 80400000 +qspi_boot=sf probe 0:0;sf read $fdtaddr f00000 100000;sf read $loadaddr 1000000 1000000;bootm $loadaddr - $fdtaddr +bootargs=ubi.mtd=11 root=ubi0:rootfs rw rootfstype=ubifs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 mtdparts=20c0000.quadspi:1m(rcw),2m(u-boot),1m(u-boot-env),2m(ppa),4m(reserved-1),3m(mc),1m(dpl),1m(dpc),1m(dtb),16m(kernel),32m(ubifs) +bootcmd=echo starting openwrt ...;run mc_init;run qspi_boot +bootdelay=3 diff --git a/package/boot/uboot-layerscape/files/ls2088ardb-uEnv.txt b/package/boot/uboot-layerscape/files/ls2088ardb-uEnv.txt new file mode 100644 index 0000000000..f3b6725544 --- /dev/null +++ b/package/boot/uboot-layerscape/files/ls2088ardb-uEnv.txt @@ -0,0 +1,10 @@ +fdtaddr=0x8f000000 +loadaddr=0x81000000 +fdt_high=0xa0000000 +initrd_high=0xffffffffffffffff +hwconfig=fsl_ddr:bank_intlv=auto +mc_init=fsl_mc start mc 580a00000 580e00000;fsl_mc apply dpl 580d00000 +nor_boot=cp.b 580f00000 $fdtaddr 100000;cp.b 581000000 $loadaddr 1000000;bootm $loadaddr - $fdtaddr +bootargs=root=/dev/mtdblock10 rootfstype=squashfs,jffs2 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS1,115200 mtdparts=580000000.nor:1m(rcw),2m(u-boot),1m(u-boot-env),2m(ppa),4m(reserved-1),3m(mc),1m(dpl),1m(dpc),1m(dtb),16m(kernel),32m(rootfs) +bootcmd=echo starting openwrt ...;run mc_init;run nor_boot +bootdelay=3 diff --git a/target/linux/layerscape/image/Makefile b/target/linux/layerscape/image/Makefile index 8e85f76848..be091318ab 100644 --- a/target/linux/layerscape/image/Makefile +++ b/target/linux/layerscape/image/Makefile @@ -18,6 +18,10 @@ define Build/append-ls-uboot dd if=$(STAGING_DIR_IMAGE)/$(1)-uboot.bin >> $@ endef +define Build/append-ls-uboot-env + dd if=$(STAGING_DIR_IMAGE)/$(1)-uboot-env.bin >> $@ +endef + define Build/append-ls-ppa dd if=$(STAGING_DIR_IMAGE)/$(1)-ppa.itb >> $@ endef @@ -86,7 +90,8 @@ define Device/ls1043ardb endif DEVICE_DTS = ../../../arm64/boot/dts/freescale/fsl-ls1043a-rdb-sdk IMAGE/firmware.bin = append-ls-rcw $(1) | pad-to 1M | \ - append-ls-uboot $(1) | pad-to 4M | \ + append-ls-uboot $(1) | pad-to 3M | \ + append-ls-uboot-env $(1) | pad-to 4M | \ append-ls-ppa $(1) | pad-to 9M | \ append-ls-fman $(1) | pad-to 15M | \ append-ls-dtb $$(DEVICE_DTS) | pad-to 16M | \ @@ -109,7 +114,8 @@ define Device/ls1046ardb BLOCKSIZE := 256KiB PAGESIZE := 1 IMAGE/firmware.bin = append-ls-rcw $(1) | pad-to 1M | \ - append-ls-uboot $(1) | pad-to 4M | \ + append-ls-uboot $(1) | pad-to 3M | \ + append-ls-uboot-env $(1) | pad-to 4M | \ append-ls-ppa $(1) | pad-to 9M | \ append-ls-fman $(1) | pad-to 15M | \ append-ls-dtb $$(DEVICE_DTS) | pad-to 16M | \ @@ -132,7 +138,8 @@ define Device/ls1012ardb BLOCKSIZE := 256KiB PAGESIZE := 1 IMAGE/firmware.bin = append-ls-rcw $(1) | pad-to 1M | \ - append-ls-uboot $(1) | pad-to 4M | \ + append-ls-uboot $(1) | pad-to 3M | \ + append-ls-uboot-env $(1) | pad-to 4M | \ append-ls-ppa $(1) | pad-to 10M | \ append-ls-ppfe | pad-to 15M | \ append-ls-dtb $$(DEVICE_DTS) | pad-to 16M | \ @@ -155,7 +162,8 @@ define Device/ls1012afrdm BLOCKSIZE := 256KiB PAGESIZE := 1 IMAGE/firmware.bin = append-ls-rcw $(1) | pad-to 1M | \ - append-ls-uboot $(1) | pad-to 4M | \ + append-ls-uboot $(1) | pad-to 3M | \ + append-ls-uboot-env $(1) | pad-to 4M | \ append-ls-ppa $(1) | pad-to 10M | \ append-ls-ppfe | pad-to 15M | \ append-ls-dtb $$(DEVICE_DTS) | pad-to 16M | \ @@ -177,7 +185,8 @@ define Device/ls1088ardb BLOCKSIZE := 256KiB PAGESIZE := 1 IMAGE/firmware.bin = append-ls-rcw $(1) | pad-to 1M | \ - append-ls-uboot $(1) | pad-to 4M | \ + append-ls-uboot $(1) | pad-to 3M | \ + append-ls-uboot-env $(1) | pad-to 4M | \ append-ls-ppa $(1) | pad-to 10M | \ append-ls-mc $(1) | pad-to 13M | \ append-ls-dpl $(1) | pad-to 14M | \ @@ -195,7 +204,8 @@ define Device/ls2088ardb layerscape-ppa-ls2088ardb DEVICE_DTS = ../../../arm64/boot/dts/freescale/fsl-ls2088a-rdb IMAGE/firmware.bin = append-ls-rcw $(1) | pad-to 1M | \ - append-ls-uboot $(1) | pad-to 4M | \ + append-ls-uboot $(1) | pad-to 3M | \ + append-ls-uboot-env $(1) | pad-to 4M | \ append-ls-ppa $(1) | pad-to 10M | \ append-ls-mc $(1) | pad-to 13M | \ append-ls-dpl $(1) | pad-to 14M | \