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
rm -f $@-boot.scr
sed -e 's#@ROOT@#$(SIGNATURE)#g' \
$(DEVICE_NAME).bootscript > $@-new.bootscript
sed \
-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
endef
@ -80,10 +82,12 @@ define Device/Default
KERNEL := kernel-bin | append-dtb | uImage none
SUPPORTED_DEVICES = $$(DEVICE_DTS)
UBOOT :=
BOOT_SCRIPT :=
endef
DEVICE_VARS += UBOOT
DEVICE_VARS += BOOT_SCRIPT UBOOT
define Device/Default-arm64
BOOT_SCRIPT := generic-arm64
DTS_DIR := $(DTS_DIR)/marvell
IMAGES := sdcard.img.gz
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,
# 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
setexpr openwrt_rootpart ${distro_bootpart} + 1
@ -22,6 +18,6 @@ if test -n "${console}"; then
fi
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
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
SUPPORTED_DEVICES := armada-388-clearfog-pro armada-388-clearfog
UBOOT := clearfog-u-boot-spl.kwb
BOOT_SCRIPT := clearfog
endef
TARGET_DEVICES += armada-388-clearfog-pro
@ -142,8 +143,9 @@ define Device/armada-388-clearfog-base
DEVICE_PACKAGES := mkf2fs e2fsprogs partx-utils
IMAGES := sdcard.img.gz
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
BOOT_SCRIPT := clearfog
endef
TARGET_DEVICES += armada-388-clearfog-base

View File

@ -4,7 +4,7 @@ if test -n "${console}"; then
setenv bootargs "${bootargs} ${console}"
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
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}