[OpenWrt-Devel] [PATCH 4/9] sunxi: switch to lzma compressed fit image
Oskari Lemmela
oskari at lemmela.net
Mon Jan 14 12:54:24 EST 2019
Use LZMA compressed fit image to load kernel and dtb.
Fit image can be used load kernel and dtb from SPI flash.
Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
---
package/boot/uboot-sunxi/uEnv-a64.txt | 5 ++-
package/boot/uboot-sunxi/uEnv-default.txt | 5 ++-
package/boot/uboot-sunxi/uEnv-pangolin.txt | 5 ++-
target/linux/sunxi/Makefile | 2 +-
target/linux/sunxi/cortexa53/target.mk | 1 -
target/linux/sunxi/image/Makefile | 17 +++++++---
target/linux/sunxi/image/cortex-a53.mk | 25 ++++-----------
target/linux/sunxi/image/cortex-a7.mk | 36 +++++++++++-----------
target/linux/sunxi/image/cortex-a8.mk | 11 ++++---
9 files changed, 49 insertions(+), 58 deletions(-)
diff --git a/package/boot/uboot-sunxi/uEnv-a64.txt b/package/boot/uboot-sunxi/uEnv-a64.txt
index 7a717fdc0f..713f4fbdc3 100644
--- a/package/boot/uboot-sunxi/uEnv-a64.txt
+++ b/package/boot/uboot-sunxi/uEnv-a64.txt
@@ -1,5 +1,4 @@
-setenv loadkernel fatload mmc 0 \$kernel_addr_r uImage
-setenv loaddtb fatload mmc 0 \$fdt_addr_r dtb
+setenv loadkernel fatload mmc 0 \$ramdisk_addr_r uImage
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait earlycon=uart,mmio32,0x01c28000
-setenv uenvcmd run loadkernel \&\& run loaddtb \&\& booti \$kernel_addr_r - \$fdt_addr_r
+setenv uenvcmd run loadkernel \&\& bootm \$ramdisk_addr_r
run uenvcmd
diff --git a/package/boot/uboot-sunxi/uEnv-default.txt b/package/boot/uboot-sunxi/uEnv-default.txt
index e024954516..ac478f9635 100644
--- a/package/boot/uboot-sunxi/uEnv-default.txt
+++ b/package/boot/uboot-sunxi/uEnv-default.txt
@@ -1,6 +1,5 @@
setenv fdt_high ffffffff
-setenv loadkernel fatload mmc 0 \$kernel_addr_r uImage
-setenv loaddtb fatload mmc 0 \$fdt_addr_r dtb
+setenv loadkernel fatload mmc 0 \$ramdisk_addr_r uImage
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
-setenv uenvcmd run loadkernel \&\& run loaddtb \&\& bootm \$kernel_addr_r - \$fdt_addr_r
+setenv uenvcmd run loadkernel \&\& bootm \$ramdisk_addr_r
run uenvcmd
diff --git a/package/boot/uboot-sunxi/uEnv-pangolin.txt b/package/boot/uboot-sunxi/uEnv-pangolin.txt
index 9c4fa11220..2d4651c7a9 100644
--- a/package/boot/uboot-sunxi/uEnv-pangolin.txt
+++ b/package/boot/uboot-sunxi/uEnv-pangolin.txt
@@ -1,6 +1,5 @@
setenv fdt_high ffffffff
-setenv loadkernel fatload mmc 0 \$kernel_addr_r uImage
-setenv loaddtb fatload mmc 0 \$fdt_addr_r dtb
+setenv loadkernel fatload mmc 0 \$ramdisk_addr_r uImage
setenv bootargs console=ttyS2,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
-setenv uenvcmd run loadkernel \&\& run loaddtb \&\& bootm \$kernel_addr_r - \$fdt_addr_r
+setenv uenvcmd run loadkernel \&\& bootm \$ramdisk_addr_r
run uenvcmd
diff --git a/target/linux/sunxi/Makefile b/target/linux/sunxi/Makefile
index 8d09d4e939..b024f5e3a2 100644
--- a/target/linux/sunxi/Makefile
+++ b/target/linux/sunxi/Makefile
@@ -15,7 +15,7 @@ SUBTARGETS:=cortexa8 cortexa7 cortexa53
MAINTAINER:=Zoltan HERPAI <wigyori at uid0.hu>
KERNEL_PATCHVER:=4.14
-KERNELNAME:=zImage dtbs
+KERNELNAME:=Image dtbs
# A10: Cortex-A8
# A13: Cortex-A8
diff --git a/target/linux/sunxi/cortexa53/target.mk b/target/linux/sunxi/cortexa53/target.mk
index 6715d00bda..4e2c320bc0 100644
--- a/target/linux/sunxi/cortexa53/target.mk
+++ b/target/linux/sunxi/cortexa53/target.mk
@@ -10,4 +10,3 @@ include $(TOPDIR)/rules.mk
ARCH:=aarch64
BOARDNAME:=Allwinner A64
CPU_TYPE:=cortex-a53
-KERNELNAME:=Image dtbs
diff --git a/target/linux/sunxi/image/Makefile b/target/linux/sunxi/image/Makefile
index 8f95c61906..b24cf70928 100644
--- a/target/linux/sunxi/image/Makefile
+++ b/target/linux/sunxi/image/Makefile
@@ -11,14 +11,11 @@ include $(INCLUDE_DIR)/image.mk
FAT32_BLOCK_SIZE=1024
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_SUNXI_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
-KERNEL_LOADADDR:=0x40008000
-
define Build/sunxi-sdcard
rm -f $@.boot
mkfs.fat $@.boot -C $(FAT32_BLOCKS)
mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-boot.scr ::boot.scr
- mcopy -i $@.boot $(DTS_DIR)/$(SUNXI_DTS).dtb ::dtb
mcopy -i $@.boot $(IMAGE_KERNEL) ::uImage
./gen_sunxi_sdcard_img.sh $@ \
$@.boot \
@@ -33,12 +30,22 @@ endef
define Device/Default
PROFILES := Default
DEVICE_VARS := SUNXI_DTS SUNXI_UBOOT
- KERNEL_NAME := zImage
- KERNEL := kernel-bin | uImage none
+ KERNEL_NAME := Image
+ SUNXI_DTS := $(1)
IMAGES := sdcard.img.gz
IMAGE/sdcard.img.gz := sunxi-sdcard | append-metadata | gzip
endef
+define Device/FitImageLzma
+ KERNEL_LOADADDR:=0x42000000
+ KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(SUNXI_DTS).dtb
+endef
+
+define Device/FitImageLzma64
+ KERNEL_LOADADDR:=0x40080000
+ KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/allwinner/$$(SUNXI_DTS).dtb
+endef
+
include cortex-a7.mk
include cortex-a8.mk
include cortex-a53.mk
diff --git a/target/linux/sunxi/image/cortex-a53.mk b/target/linux/sunxi/image/cortex-a53.mk
index 65551407ce..c7f3fa5733 100644
--- a/target/linux/sunxi/image/cortex-a53.mk
+++ b/target/linux/sunxi/image/cortex-a53.mk
@@ -8,62 +8,49 @@
ifeq ($(SUBTARGET),cortexa53)
define Device/sun50i-h5-nanopi-neo-plus2
+ $(call Device/FitImageLzma64)
DEVICE_TITLE:=Nanopi NEO Plus2 (H5)
SUPPORTED_DEVICES:=nanopi-neo-plus2
- SUNXI_DTS:=allwinner/sun50i-h5-nanopi-neo-plus2
- KERNEL_NAME := Image
- KERNEL := kernel-bin
endef
TARGET_DEVICES += sun50i-h5-nanopi-neo-plus2
define Device/sun50i-h5-nanopi-neo2
+ $(call Device/FitImageLzma64)
DEVICE_TITLE:=Nanopi NEO2 (H5)
SUPPORTED_DEVICES:=nanopi-neo2
- SUNXI_DTS:=allwinner/sun50i-h5-nanopi-neo2
- KERNEL_NAME := Image
- KERNEL := kernel-bin
endef
TARGET_DEVICES += sun50i-h5-nanopi-neo2
define Device/sun50i-a64-pine64-plus
+ $(call Device/FitImageLzma64)
DEVICE_TITLE:=Pine64 Plus A64
SUPPORTED_DEVICES:=pine64,pine64-plus
- SUNXI_DTS:=allwinner/sun50i-a64-pine64-plus
- KERNEL_NAME := Image
- KERNEL := kernel-bin
endef
TARGET_DEVICES += sun50i-a64-pine64-plus
define Device/sun50i-a64-sopine-baseboard
+ $(call Device/FitImageLzma64)
DEVICE_TITLE:=Pine64 Sopine
SUPPORTED_DEVICES:=pine64,sopine-baseboard
- SUNXI_DTS:=allwinner/sun50i-a64-sopine-baseboard
- KERNEL_NAME := Image
- KERNEL := kernel-bin
endef
TARGET_DEVICES += sun50i-a64-sopine-baseboard
-
define Device/sun50i-h5-orangepi-zero-plus
+ $(call Device/FitImageLzma64)
DEVICE_TITLE:=Xunlong Orange Pi Zero Plus
SUPPORTED_DEVICES:=xunlong,orangepi-zero-plus
- SUNXI_DTS:=allwinner/sun50i-h5-orangepi-zero-plus
- KERNEL_NAME := Image
- KERNEL := kernel-bin
endef
TARGET_DEVICES += sun50i-h5-orangepi-zero-plus
define Device/sun50i-h5-orangepi-pc2
+ $(call Device/FitImageLzma64)
DEVICE_TITLE:=Xunlong Orange Pi PC2
SUPPORTED_DEVICES:=xunlong,orangepi-pc2
- SUNXI_DTS:=allwinner/sun50i-h5-orangepi-pc2
- KERNEL_NAME := Image
- KERNEL := kernel-bin
endef
TARGET_DEVICES += sun50i-h5-orangepi-pc2
diff --git a/target/linux/sunxi/image/cortex-a7.mk b/target/linux/sunxi/image/cortex-a7.mk
index 969864bb76..30b137a117 100644
--- a/target/linux/sunxi/image/cortex-a7.mk
+++ b/target/linux/sunxi/image/cortex-a7.mk
@@ -9,180 +9,180 @@
ifeq ($(SUBTARGET),cortexa7)
define Device/sun7i-a20-olinuxino-lime
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Olimex A20-OLinuXino-LIME
DEVICE_PACKAGES:=kmod-ata-core kmod-ata-sunxi kmod-rtc-sunxi
SUPPORTED_DEVICES:=olimex,a20-olinuxino-lime
- SUNXI_DTS:=sun7i-a20-olinuxino-lime
endef
TARGET_DEVICES += sun7i-a20-olinuxino-lime
define Device/sun7i-a20-olinuxino-lime2
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Olimex A20-OLinuXino-LIME2
DEVICE_PACKAGES:=kmod-ata-core kmod-ata-sunxi kmod-rtc-sunxi kmod-usb-hid
SUPPORTED_DEVICES:=olimex,a20-olinuxino-lime2
- SUNXI_DTS:=sun7i-a20-olinuxino-lime2
endef
TARGET_DEVICES += sun7i-a20-olinuxino-lime2
define Device/sun7i-a20-olinuxino-lime2-emmc
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Olimex A20-OLinuXino-LIME2-eMMC
DEVICE_PACKAGES:=kmod-ata-core kmod-ata-sunxi kmod-rtc-sunxi kmod-usb-hid
SUPPORTED_DEVICES:=olimex,a20-olinuxino-lime2-emmc
- SUNXI_DTS:=sun7i-a20-olinuxino-lime2-emmc
endef
TARGET_DEVICES += sun7i-a20-olinuxino-lime2-emmc
define Device/sun7i-a20-olinuxino-micro
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Olimex A20-Olinuxino Micro
DEVICE_PACKAGES:=kmod-ata-core kmod-ata-sunxi kmod-sun4i-emac kmod-rtc-sunxi
SUPPORTED_DEVICES:=olimex,a20-olinuxino-micro
- SUNXI_DTS:=sun7i-a20-olinuxino-micro
endef
TARGET_DEVICES += sun7i-a20-olinuxino-micro
define Device/sun7i-a20-bananapi
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=LeMaker Banana Pi
DEVICE_PACKAGES:=kmod-rtc-sunxi kmod-ata-core kmod-ata-sunxi
SUPPORTED_DEVICES:=lemaker,bananapi
- SUNXI_DTS:=sun7i-a20-bananapi
endef
TARGET_DEVICES += sun7i-a20-bananapi
define Device/sun7i-a20-bananapro
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=LeMaker Banana Pro
DEVICE_PACKAGES:=kmod-rtc-sunxi kmod-ata-core kmod-ata-sunxi kmod-brcmfmac
SUPPORTED_DEVICES:=lemaker,bananapro
- SUNXI_DTS:=sun7i-a20-bananapro
endef
TARGET_DEVICES += sun7i-a20-bananapro
define Device/sun7i-a20-cubieboard2
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Cubietech Cubieboard2
DEVICE_PACKAGES:=kmod-ata-core kmod-ata-sunxi kmod-sun4i-emac kmod-rtc-sunxi
SUPPORTED_DEVICES:=cubietech,cubieboard2
- SUNXI_DTS:=sun7i-a20-cubieboard2
endef
TARGET_DEVICES += sun7i-a20-cubieboard2
define Device/sun7i-a20-cubietruck
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Cubietech Cubietruck
DEVICE_PACKAGES:=kmod-ata-core kmod-ata-sunxi kmod-rtc-sunxi kmod-brcmfmac
SUPPORTED_DEVICES:=cubietech,cubietruck
- SUNXI_DTS:=sun7i-a20-cubietruck
endef
TARGET_DEVICES += sun7i-a20-cubietruck
define Device/sun7i-a20-lamobo-r1
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Lamobo R1
DEVICE_PACKAGES:=kmod-ata-sunxi kmod-rtl8192cu swconfig wpad-basic
SUPPORTED_DEVICES:=lamobo,lamobo-r1
- SUNXI_DTS:=sun7i-a20-lamobo-r1
endef
TARGET_DEVICES += sun7i-a20-lamobo-r1
define Device/sun6i-a31-m9
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Mele M9 top set box
DEVICE_PACKAGES:=kmod-sun4i-emac kmod-rtc-sunxi kmod-rtl8192cu
SUPPORTED_DEVICES:=mele,m9
- SUNXI_DTS:=sun6i-a31-m9
endef
TARGET_DEVICES += sun6i-a31-m9
define Device/sun8i-h2-plus-orangepi-zero
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Xunlong Orange Pi Zero
DEVICE_PACKAGES:=kmod-rtc-sunxi
SUPPORTED_DEVICES:=xunlong,orangepi-zero
- SUNXI_DTS:=sun8i-h2-plus-orangepi-zero
endef
TARGET_DEVICES += sun8i-h2-plus-orangepi-zero
define Device/sun8i-h2-plus-orangepi-r1
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Xunlong Orange Pi R1
DEVICE_PACKAGES:=kmod-rtc-sunxi kmod-usb-net kmod-usb-net-rtl8152
SUPPORTED_DEVICES:=xunlong,orangepi-r1
- SUNXI_DTS:=sun8i-h2-plus-orangepi-r1
endef
TARGET_DEVICES += sun8i-h2-plus-orangepi-r1
define Device/sun8i-h3-nanopi-m1-plus
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=FriendlyArm NanoPi M1 Plus
DEVICE_PACKAGES:=kmod-rtc-sunxi \
kmod-leds-gpio kmod-ledtrig-heartbeat \
kmod-brcmfmac brcmfmac-firmware-43430-sdio wpad-basic
SUPPORTED_DEVICES:=friendlyarm,nanopi-m1-plus
- SUNXI_DTS:=sun8i-h3-nanopi-m1-plus
endef
TARGET_DEVICES += sun8i-h3-nanopi-m1-plus
define Device/sun8i-h3-nanopi-neo
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=FriendlyARM NanoPi NEO
SUPPORTED_DEVICES:=friendlyarm,nanopi-neo
- SUNXI_DTS:=sun8i-h3-nanopi-neo
endef
TARGET_DEVICES += sun8i-h3-nanopi-neo
define Device/sun8i-h3-orangepi-pc
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Xunlong Orange Pi PC
DEVICE_PACKAGES:=kmod-rtc-sunxi kmod-gpio-button-hotplug
SUPPORTED_DEVICES:=xunlong,orangepi-pc
- SUNXI_DTS:=sun8i-h3-orangepi-pc
endef
TARGET_DEVICES += sun8i-h3-orangepi-pc
define Device/sun8i-h3-orangepi-plus
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Xunlong Orange Pi Plus
DEVICE_PACKAGES:=kmod-rtc-sunxi
SUPPORTED_DEVICES:=xunlong,orangepi-plus
- SUNXI_DTS:=sun8i-h3-orangepi-plus
endef
TARGET_DEVICES += sun8i-h3-orangepi-plus
define Device/sun8i-h3-orangepi-2
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Xunlong Orange Pi 2
DEVICE_PACKAGES:=kmod-rtc-sunxi
SUPPORTED_DEVICES:=xunlong,orangepi-2
- SUNXI_DTS:=sun8i-h3-orangepi-2
endef
TARGET_DEVICES += sun8i-h3-orangepi-2
define Device/sun7i-a20-pcduino3
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=LinkSprite pcDuino3
DEVICE_PACKAGES:=kmod-sun4i-emac kmod-rtc-sunxi kmod-ata-core kmod-ata-sunxi kmod-rtl8xxxu rtl8188eu-firmware
SUPPORTED_DEVICES:=linksprite,pcduino3
- SUNXI_DTS:=sun7i-a20-pcduino3
endef
TARGET_DEVICES += sun7i-a20-pcduino3
diff --git a/target/linux/sunxi/image/cortex-a8.mk b/target/linux/sunxi/image/cortex-a8.mk
index 564a66f938..71a3d97265 100644
--- a/target/linux/sunxi/image/cortex-a8.mk
+++ b/target/linux/sunxi/image/cortex-a8.mk
@@ -8,16 +8,17 @@
ifeq ($(SUBTARGET),cortexa8)
define Device/sun4i-a10-olinuxino-lime
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Olimex A10-OLinuXino-LIME
DEVICE_PACKAGES:=kmod-ata-core kmod-ata-sunxi kmod-sun4i-emac kmod-rtc-sunxi
SUPPORTED_DEVICES:=olimex,a10-olinuxino-lime
- SUNXI_DTS:=sun4i-a10-olinuxino-lime
endef
TARGET_DEVICES += sun4i-a10-olinuxino-lime
define Device/sun5i-a13-olimex-som
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Olimex A13 SOM
DEVICE_PACKAGES:=kmod-rtl8192cu
SUPPORTED_DEVICES:=olimex,a13-olinuxino
@@ -28,40 +29,40 @@ TARGET_DEVICES += sun5i-a13-olimex-som
define Device/sun5i-a13-olinuxino
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Olimex A13-Olinuxino
DEVICE_PACKAGES:=kmod-rtl8192cu
SUPPORTED_DEVICES:=olimex,a13-olinuxino
- SUNXI_DTS:=sun5i-a13-olinuxino
endef
TARGET_DEVICES += sun5i-a13-olinuxino
define Device/sun4i-a10-cubieboard
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=Cubietech Cubieboard
DEVICE_PACKAGES:=kmod-ata-core kmod-ata-sunxi kmod-sun4i-emac kmod-rtc-sunxi
SUPPORTED_DEVICES:=cubietech,a10-cubieboard
- SUNXI_DTS:=sun4i-a10-cubieboard
endef
TARGET_DEVICES += sun4i-a10-cubieboard
define Device/sun4i-a10-pcduino
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=LinkSprite pcDuino
DEVICE_PACKAGES:=kmod-sun4i-emac kmod-rtc-sunxi kmod-rtl8192cu
SUPPORTED_DEVICES:=linksprite,a10-pcduino
- SUNXI_DTS:=sun4i-a10-pcduino
endef
TARGET_DEVICES += sun4i-a10-pcduino
define Device/sun4i-a10-marsboard
+ $(call Device/FitImageLzma)
DEVICE_TITLE:=HAOYU Electronics Marsboard A10
DEVICE_PACKAGES:=mod-ata-core kmod-ata-sunxi kmod-sun4i-emac kmod-rtc-sunxi sound-soc-sunxi
SUPPORTED_DEVICES:=marsboard,a10-marsboard
- SUNXI_DTS:=sun4i-a10-marsboard
endef
TARGET_DEVICES += sun4i-a10-marsboard
--
2.17.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list