mirror of https://github.com/hak5/openwrt.git
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
parent
ef384c68e7
commit
fb005d688e
|
@ -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
|
||||||
|
|
|
@ -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}
|
|
|
@ -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}
|
|
|
@ -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}
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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}
|
|
@ -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}
|
|
Loading…
Reference in New Issue