mvebu: image: introduce BOOT_SCRIPT variable

All of U-Boot scripts repeat the same pattern with only Device Tree blob
name changing for respective device. Therefore create generic scripts
which will be altered on demad by image build process, and create
BOOT_SCRIPT variable which can be added to device recipe and will allow
referencing the same script by many device recipes. This will allow to
slim down the ammount of files in buildroot tree and avoid needlessly
incrementing amount of boot scripts if new devices will be added.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
openwrt-19.07
Tomasz Maciej Nowak 2019-05-11 19:37:30 +02:00 committed by Hauke Mehrtens
parent ef384c68e7
commit fb005d688e
7 changed files with 12 additions and 57 deletions

View File

@ -17,8 +17,10 @@ SIGNATURE:=$(shell printf "%.8s" $(SOURCE_DATE_EPOCH))
define Build/boot-scr define Build/boot-scr
rm -f $@-boot.scr rm -f $@-boot.scr
sed -e 's#@ROOT@#$(SIGNATURE)#g' \ sed \
$(DEVICE_NAME).bootscript > $@-new.bootscript -e 's#@ROOT@#$(SIGNATURE)#g' \
-e 's#@DTB@#$(firstword $(DEVICE_DTS))#g' \
$(BOOT_SCRIPT).bootscript > $@-new.bootscript
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d $@-new.bootscript $@-boot.scr mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d $@-new.bootscript $@-boot.scr
endef endef
@ -80,10 +82,12 @@ define Device/Default
KERNEL := kernel-bin | append-dtb | uImage none KERNEL := kernel-bin | append-dtb | uImage none
SUPPORTED_DEVICES = $$(DEVICE_DTS) SUPPORTED_DEVICES = $$(DEVICE_DTS)
UBOOT := UBOOT :=
BOOT_SCRIPT :=
endef endef
DEVICE_VARS += UBOOT DEVICE_VARS += BOOT_SCRIPT UBOOT
define Device/Default-arm64 define Device/Default-arm64
BOOT_SCRIPT := generic-arm64
DTS_DIR := $(DTS_DIR)/marvell DTS_DIR := $(DTS_DIR)/marvell
IMAGES := sdcard.img.gz IMAGES := sdcard.img.gz
IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata

View File

@ -1,27 +0,0 @@
# Standard Boot-Script
# use only well-known variable names provided by U-Boot Distro boot
# This script assumes that there is a boot partition,
# and that the root partition is always the next one.
# Override DeviceTree for Clearfog Base
# removed once U-Boot is able to detect the board variant.
setenv fdtfile armada-388-clearfog-base.dtb
# rootfs is always on the next partition
setexpr openwrt_rootpart ${distro_bootpart} + 1
# figure out partition uuid to pass to the kernel as root=
part uuid ${devtype} ${devnum}:${openwrt_rootpart} uuid
# generate bootargs (rootfs)
setenv bootargs ${bootargs} root=PARTUUID=${uuid} rootfstype=auto rootwait
# add console= option to bootargs, if any
if test -n "${console}"; then
setenv bootargs ${bootargs} console=${console}
fi
echo "Booting Linux with ${bootargs}"
load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${fdtfile}
load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} zImage
bootz ${kernel_addr_r} - ${fdt_addr_r}

View File

@ -1,10 +0,0 @@
setenv bootargs "root=PARTUUID=@ROOT@-02 rw rootwait"
if test -n "${console}"; then
setenv bootargs "${bootargs} ${console}"
fi
load mmc 1:1 ${fdt_addr} armada-8040-mcbin.dtb
load mmc 1:1 ${kernel_addr} Image
booti ${kernel_addr} - ${fdt_addr}

View File

@ -3,10 +3,6 @@
# This script assumes that there is a boot partition, # This script assumes that there is a boot partition,
# and that the root partition is always the next one. # and that the root partition is always the next one.
# Override DeviceTree for Clearfog Pro
# removed once U-Boot has been updated to the new name.
setenv fdtfile armada-388-clearfog-pro.dtb
# rootfs is always on the next partition # rootfs is always on the next partition
setexpr openwrt_rootpart ${distro_bootpart} + 1 setexpr openwrt_rootpart ${distro_bootpart} + 1
@ -22,6 +18,6 @@ if test -n "${console}"; then
fi fi
echo "Booting Linux with ${bootargs}" echo "Booting Linux with ${bootargs}"
load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${fdtfile} load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} @DTB@.dtb
load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} zImage load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} zImage
bootz ${kernel_addr_r} - ${fdt_addr_r} bootz ${kernel_addr_r} - ${fdt_addr_r}

View File

@ -132,6 +132,7 @@ define Device/armada-388-clearfog-pro
DEVICE_DTS := armada-388-clearfog-pro armada-388-clearfog-base DEVICE_DTS := armada-388-clearfog-pro armada-388-clearfog-base
SUPPORTED_DEVICES := armada-388-clearfog-pro armada-388-clearfog SUPPORTED_DEVICES := armada-388-clearfog-pro armada-388-clearfog
UBOOT := clearfog-u-boot-spl.kwb UBOOT := clearfog-u-boot-spl.kwb
BOOT_SCRIPT := clearfog
endef endef
TARGET_DEVICES += armada-388-clearfog-pro TARGET_DEVICES += armada-388-clearfog-pro
@ -142,8 +143,9 @@ define Device/armada-388-clearfog-base
DEVICE_PACKAGES := mkf2fs e2fsprogs partx-utils DEVICE_PACKAGES := mkf2fs e2fsprogs partx-utils
IMAGES := sdcard.img.gz IMAGES := sdcard.img.gz
IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata
DEVICE_DTS := armada-388-clearfog-pro armada-388-clearfog-base DEVICE_DTS := armada-388-clearfog-base armada-388-clearfog-pro
UBOOT := clearfog-u-boot-spl.kwb UBOOT := clearfog-u-boot-spl.kwb
BOOT_SCRIPT := clearfog
endef endef
TARGET_DEVICES += armada-388-clearfog-base TARGET_DEVICES += armada-388-clearfog-base

View File

@ -4,7 +4,7 @@ if test -n "${console}"; then
setenv bootargs "${bootargs} ${console}" setenv bootargs "${bootargs} ${console}"
fi fi
load mmc 0:1 ${fdt_addr} armada-3720-db.dtb load mmc 0:1 ${fdt_addr} @DTB@.dtb
load mmc 0:1 ${kernel_addr} Image load mmc 0:1 ${kernel_addr} Image
booti ${kernel_addr} - ${fdt_addr} booti ${kernel_addr} - ${fdt_addr}

View File

@ -1,10 +0,0 @@
setenv bootargs "root=PARTUUID=@ROOT@-02 rw rootwait"
if test -n "${console}"; then
setenv bootargs "${bootargs} ${console}"
fi
load mmc 0:1 ${fdt_addr} armada-3720-espressobin.dtb
load mmc 0:1 ${kernel_addr} Image
booti ${kernel_addr} - ${fdt_addr}