sunxi: convert to new image generation method

The new Device/xxx were transformed automatically from old profiles.

Most device names are now taken from basename of the corresponding
kernel device tree file.  Device/sun5i-a13-olimex-som is an exception
because it is not explicitly supported in the kernel yet and shares the
same dts file with Device/sun5i-a13-olinuxino

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
Yousong Zhou 2017-01-04 22:19:27 +08:00 committed by Felix Fietkau
parent 6268d496a4
commit 4eb0fd8283
18 changed files with 169 additions and 361 deletions

View file

@ -1,5 +1,6 @@
#
# Copyright (C) 2013-2016 OpenWrt.org
# Copyright (C) 2016 Yousong Zhou
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -11,111 +12,182 @@ include $(INCLUDE_DIR)/host.mk
FAT32_BLOCK_SIZE=1024
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_SUNXI_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
define Image/BuildKernel
-mkdir -p $(KDIR_TMP)
KERNEL_LOADADDR:=0x40008000
mkimage -A arm -O linux -T kernel -C none \
-a 0x40008000 -e 0x40008000 \
-n 'ARM OpenWrt Linux-$(LINUX_VERSION)' \
-d $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-uImage
define Build/sunxi-sdcard
rm -f $@.boot
mkfs.fat $@.boot -C $(FAT32_BLOCKS)
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
$(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
$(call Image/BuildKernel/MkuImage, \
none, 0x40008000, 0x40008000, \
$(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs, \
$(BIN_DIR)/$(IMG_PREFIX)-uImage-initramfs \
)
endif
endef
define Image/Build/SDCard
rm -f $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img
mkfs.fat $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img -C $(FAT32_BLOCKS)
mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img $(KDIR)/uboot-sunxi-$(PROFILE)-boot.scr ::boot.scr
mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img $(DTS_DIR)/$(2).dtb ::dtb
mcopy -i $(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img $(BIN_DIR)/$(IMG_PREFIX)-uImage ::uImage
./gen_sunxi_sdcard_img.sh \
$(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE)-sdcard-vfat-$(1).img \
$(KDIR_TMP)/$(IMG_PREFIX)-$(PROFILE)-boot.img \
$(KDIR)/root.$(1) \
mcopy -i $@.boot $(KDIR)/uboot-sunxi-$(SUNXI_UBOOT)-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 \
$(IMAGE_ROOTFS) \
$(CONFIG_SUNXI_SD_BOOT_PARTSIZE) \
$(CONFIG_TARGET_ROOTFS_PARTSIZE) \
$(KDIR)/uboot-sunxi-$(PROFILE)-u-boot-with-spl.bin
ifneq ($(CONFIG_TARGET_IMAGES_GZIP),)
gzip -f9n $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE)-sdcard-vfat-$(1).img
endif
$(KDIR)/uboot-sunxi-$(SUNXI_UBOOT)-u-boot-with-spl.bin
rm -f $@.boot
endef
define Image/Build/Profile/A10-OLinuXino-Lime
$(call Image/Build/SDCard,$(1),sun4i-a10-olinuxino-lime)
# why \x00\x00\x00\x00 for zImage-initramfs
define Device/Default
PROFILES := Default
DEVICE_VARS := SUNXI_DTS SUNXI_UBOOT
KERNEL_NAME := zImage
KERNEL := kernel-bin | uImage none
IMAGES := sdcard.img.gz
IMAGE/sdcard.img.gz := sunxi-sdcard | gzip
endef
define Image/Build/Profile/A13-OLinuXino
$(call Image/Build/SDCard,$(1),sun5i-a13-olinuxino)
define Device/sun4i-a10-olinuxino-lime
DEVICE_TITLE:=Olimex A10-OLinuXino-LIME
DEVICE_PACKAGES:=uboot-sunxi-A10-OLinuXino-Lime kmod-ata-core kmod-ata-sunxi kmod-sun4i-emac kmod-rtc-sunxi
SUNXI_DTS:=sun4i-a10-olinuxino-lime
SUNXI_UBOOT:=A10-OLinuXino-Lime
endef
define Image/Build/Profile/A20-OLinuXino-Lime
$(call Image/Build/SDCard,$(1),sun7i-a20-olinuxino-lime)
TARGET_DEVICES += sun4i-a10-olinuxino-lime
define Device/sun5i-a13-olimex-som
DEVICE_TITLE:=Olimex A13 SOM
DEVICE_PACKAGES:=uboot-sunxi-OLIMEX_A13_SOM kmod-rtl8192cu
SUNXI_DTS:=sun5i-a13-olinuxino
SUNXI_UBOOT:=OLIMEX_A13_SOM
endef
define Image/Build/Profile/A20-OLinuXino_MICRO
$(call Image/Build/SDCard,$(1),sun7i-a20-olinuxino-micro)
TARGET_DEVICES += sun5i-a13-olimex-som
define Device/sun5i-a13-olinuxino
DEVICE_TITLE:=Olimex A13-Olinuxino
DEVICE_PACKAGES:=uboot-sunxi-A13-OLinuXino kmod-rtl8192cu
SUNXI_DTS:=sun5i-a13-olinuxino
SUNXI_UBOOT:=A13-OLinuXino
endef
define Image/Build/Profile/Bananapi
$(call Image/Build/SDCard,$(1),sun7i-a20-bananapi)
TARGET_DEVICES += sun5i-a13-olinuxino
define Device/sun7i-a20-olinuxino-lime
DEVICE_TITLE:=Olimex A20-OLinuXino-LIME
DEVICE_PACKAGES:=uboot-sunxi-A20-OLinuXino-Lime kmod-ata-core kmod-ata-sunxi kmod-rtc-sunxi
SUNXI_DTS:=sun7i-a20-olinuxino-lime
SUNXI_UBOOT:=A20-OLinuXino-Lime
endef
define Image/Build/Profile/Bananapro
$(call Image/Build/SDCard,$(1),sun7i-a20-bananapro)
TARGET_DEVICES += sun7i-a20-olinuxino-lime
define Device/sun7i-a20-olinuxino-micro
DEVICE_TITLE:=Olimex A20-Olinuxino Micro
DEVICE_PACKAGES:=uboot-sunxi-A20-OLinuXino_MICRO kmod-ata-core kmod-ata-sunxi kmod-sun4i-emac kmod-rtc-sunxi
SUNXI_DTS:=sun7i-a20-olinuxino-micro
SUNXI_UBOOT:=A20-OLinuXino_MICRO
endef
define Image/Build/Profile/Lamobo_R1
$(call Image/Build/SDCard,$(1),sun7i-a20-lamobo-r1)
TARGET_DEVICES += sun7i-a20-olinuxino-micro
define Device/sun7i-a20-bananapi
DEVICE_TITLE:=LeMaker Banana Pi
DEVICE_PACKAGES:=uboot-sunxi-Bananapi kmod-rtc-sunxi kmod-ata-core kmod-ata-sunxi
SUNXI_DTS:=sun7i-a20-bananapi
SUNXI_UBOOT:=Bananapi
endef
define Image/Build/Profile/Cubieboard
$(call Image/Build/SDCard,$(1),sun4i-a10-cubieboard)
TARGET_DEVICES += sun7i-a20-bananapi
define Device/sun7i-a20-bananapro
DEVICE_TITLE:=LeMaker Banana Pro
DEVICE_PACKAGES:=uboot-sunxi-Bananapro kmod-rtc-sunxi kmod-ata-core kmod-ata-sunxi kmod-brcmfmac
SUNXI_DTS:=sun7i-a20-bananapro
SUNXI_UBOOT:=Bananapro
endef
define Image/Build/Profile/Cubieboard2
$(call Image/Build/SDCard,$(1),sun7i-a20-cubieboard2)
TARGET_DEVICES += sun7i-a20-bananapro
define Device/sun7i-a20-cubieboard2
DEVICE_TITLE:=Cubietech Cubieboard2
DEVICE_PACKAGES:=uboot-sunxi-Cubieboard2 kmod-ata-core kmod-ata-sunxi kmod-sun4i-emac kmod-rtc-sunxi
SUNXI_DTS:=sun7i-a20-cubieboard2
SUNXI_UBOOT:=Cubieboard2
endef
define Image/Build/Profile/Cubietruck
$(call Image/Build/SDCard,$(1),sun7i-a20-cubietruck)
TARGET_DEVICES += sun7i-a20-cubieboard2
define Device/sun4i-a10-cubieboard
DEVICE_TITLE:=Cubietech Cubieboard
DEVICE_PACKAGES:=uboot-sunxi-Cubieboard kmod-ata-core kmod-ata-sunxi kmod-sun4i-emac kmod-rtc-sunxi
SUNXI_DTS:=sun4i-a10-cubieboard
SUNXI_UBOOT:=Cubieboard
endef
define Image/Build/Profile/OLIMEX_A13_SOM
$(call Image/Build/SDCard,$(1),sun5i-a13-olinuxino)
TARGET_DEVICES += sun4i-a10-cubieboard
define Device/sun7i-a20-cubietruck
DEVICE_TITLE:=Cubietech Cubietruck
DEVICE_PACKAGES:=uboot-sunxi-Cubietruck kmod-ata-core kmod-ata-sunxi kmod-rtc-sunxi kmod-brcmfmac
SUNXI_DTS:=sun7i-a20-cubietruck
SUNXI_UBOOT:=Cubietruck
endef
define Image/Build/Profile/Mele_M9
$(call Image/Build/SDCard,$(1),sun6i-a31-m9)
TARGET_DEVICES += sun7i-a20-cubietruck
define Device/sun7i-a20-lamobo-r1
DEVICE_TITLE:=Lamobo R1
DEVICE_PACKAGES:=uboot-sunxi-Lamobo_R1 kmod-ata-sunxi kmod-rtl8192cu swconfig wpad-mini
SUNXI_DTS:=sun7i-a20-lamobo-r1
SUNXI_UBOOT:=Lamobo_R1
endef
define Image/Build/Profile/Linksprite_pcDuino
$(call Image/Build/SDCard,$(1),sun4i-a10-pcduino)
TARGET_DEVICES += sun7i-a20-lamobo-r1
define Device/sun6i-a31-m9
DEVICE_TITLE:=Mele M9 top set box
DEVICE_PACKAGES:=uboot-sunxi-Mele_M9 kmod-sun4i-emac kmod-rtc-sunxi kmod-rtl8192cu
SUNXI_DTS:=sun6i-a31-m9
SUNXI_UBOOT:=Mele_M9
endef
define Image/Build/Profile/Linksprite_pcDuino3
$(call Image/Build/SDCard,$(1),sun7i-a20-pcduino3)
TARGET_DEVICES += sun6i-a31-m9
define Device/sun8i-h3-orangepi-plus
DEVICE_TITLE:=Xunlong Orange Pi Plus
DEVICE_PACKAGES:=kmod-rtc-sunxi uboot-sunxi-orangepi_plus
SUNXI_DTS:=sun8i-h3-orangepi-plus
SUNXI_UBOOT:=orangepi_plus
endef
define Image/Build/Profile/orangepi_plus
$(call Image/Build/SDCard,$(1),sun8i-h3-orangepi-plus)
TARGET_DEVICES += sun8i-h3-orangepi-plus
define Device/sun7i-a20-pcduino3
DEVICE_TITLE:=LinkSprite pcDuino3
DEVICE_PACKAGES:=uboot-sunxi-Linksprite_pcDuino3 kmod-sun4i-emac kmod-rtc-sunxi kmod-ata-core kmod-ata-sunxi kmod-rtl8xxxu rtl8188eu-firmware
SUNXI_DTS:=sun7i-a20-pcduino3
SUNXI_UBOOT:=Linksprite_pcDuino3
endef
define Image/Build
$(call Image/Build/$(1),$(1))
$(call Image/Build/Profile/$(PROFILE),$(1))
TARGET_DEVICES += sun7i-a20-pcduino3
dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync
define Device/sun4i-a10-pcduino
DEVICE_TITLE:=LinkSprite pcDuino
DEVICE_PACKAGES:=uboot-sunxi-Linksprite_pcDuino kmod-sun4i-emac kmod-rtc-sunxi kmod-rtl8192cu
SUNXI_DTS:=sun4i-a10-pcduino
SUNXI_UBOOT:=Linksprite_pcDuino
endef
TARGET_DEVICES += sun4i-a10-pcduino
$(eval $(call BuildImage))

View file

@ -1,5 +1,4 @@
#!/usr/bin/env bash
#
# Copyright (C) 2013 OpenWrt.org
#
@ -7,7 +6,7 @@
# See /LICENSE for more information.
#
set -x
set -ex
[ $# -eq 6 ] || {
echo "SYNTAX: $0 <file> <bootfs image> <rootfs image> <bootfs size> <rootfs size> <u-boot image>"
exit 1

View file

@ -0,0 +1,28 @@
#
# Copyright (C) 2017 Yousong Zhou
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Default
NAME:=Default Profile (all drivers)
PACKAGES:= \
kmod-ata-core \
kmod-ata-sunxi \
kmod-brcmfmac \
kmod-rtc-sunxi \
kmod-rtl8192cu \
kmod-rtl8xxxu \
kmod-sun4i-emac \
rtl8188eu-firmware \
swconfig \
uboot-sunxi-all \
wpad-mini
PRIORITY := 1
endef
define Profile/Default/Description
Default profile with package set compatible with most boards.
endef
$(eval $(call Profile,Default))

View file

@ -1,17 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Default
NAME:=Default package set
PACKAGES += uboot-sunxi-A13-OLinuXino
endef
define Profile/Default/Description
Default package set compatible with most boards.
endef
$(eval $(call Profile,Default))

View file

@ -1,19 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/A10-OLinuXino-Lime
NAME:=A10 OLinuXino LIME
PACKAGES:=\
uboot-sunxi-A10-OLinuXino-Lime kmod-ata-core kmod-ata-sunxi \
kmod-sun4i-emac kmod-rtc-sunxi
endef
define Profile/A10-OLinuXino-Lime/Description
Package set optimized for the Olimex A10 OLinuXino LIME
endef
$(eval $(call Profile,A10-OLinuXino-Lime))

View file

@ -1,18 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/OLIMEX_A13_SOM
NAME:=Olimex A13 SOM
PACKAGES:=\
uboot-sunxi-OLIMEX_A13_SOM kmod-rtl8192cu
endef
define Profile/OLIMEX_A13_SOM/Description
Package set optimized for the Olimex A13 SOM
endef
$(eval $(call Profile,OLIMEX_A13_SOM))

View file

@ -1,18 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/A13-OLinuXino
NAME:=A13 OLinuXino
PACKAGES:=\
uboot-sunxi-A13-OLinuXino kmod-rtl8192cu
endef
define Profile/A13-OLinuXino/Description
Package set optimized for the Olimex A13 OLinuXino
endef
$(eval $(call Profile,A13-OLinuXino))

View file

@ -1,33 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/A20-OLinuXino-Lime
NAME:=A20 OLinuXino Lime
PACKAGES:=\
uboot-sunxi-A20-OLinuXino-Lime kmod-ata-core kmod-ata-sunxi \
kmod-rtc-sunxi
endef
define Profile/A20-OLinuXino-Lime/Description
Package set optimized for the Olimex A20 OLinuXino Lime
endef
$(eval $(call Profile,A20-OLinuXino-Lime))
define Profile/A20-OLinuXino_MICRO
NAME:=A20 OLinuXino Micro
PACKAGES:=\
uboot-sunxi-A20-OLinuXino_MICRO kmod-ata-core kmod-ata-sunxi \
kmod-sun4i-emac kmod-rtc-sunxi
endef
define Profile/A20-OLinuXino_MICRO/Description
Package set optimized for the Olimex A20 OLinuXino micro
endef
$(eval $(call Profile,A20-OLinuXino_MICRO))

View file

@ -1,18 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Bananapi
NAME:=Bananapi
PACKAGES:=\
uboot-sunxi-Bananapi kmod-rtc-sunxi kmod-ata-core kmod-ata-sunxi
endef
define Profile/Bananapi/Description
Package set optimized for the Bananapi
endef
$(eval $(call Profile,Bananapi))

View file

@ -1,19 +0,0 @@
#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Bananapro
NAME:=Bananapro
PACKAGES:=\
uboot-sunxi-Bananapro kmod-rtc-sunxi kmod-ata-core kmod-ata-sunxi \
kmod-brcmfmac
endef
define Profile/Bananapro/Description
Package set optimized for the Bananapro
endef
$(eval $(call Profile,Bananapro))

View file

@ -1,19 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Cubieboard
NAME:=Cubieboard
PACKAGES:=\
uboot-sunxi-Cubieboard kmod-ata-core kmod-ata-sunxi \
kmod-sun4i-emac kmod-rtc-sunxi
endef
define Profile/Cubieboard/Description
Package set optimized for the Cubieboard
endef
$(eval $(call Profile,Cubieboard))

View file

@ -1,19 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Cubieboard2
NAME:=Cubieboard2
PACKAGES:=\
uboot-sunxi-Cubieboard2 kmod-ata-core kmod-ata-sunxi \
kmod-sun4i-emac kmod-rtc-sunxi
endef
define Profile/Cubieboard2/Description
Package set optimized for the Cubieboard2
endef
$(eval $(call Profile,Cubieboard2))

View file

@ -1,19 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Cubietruck
NAME:=Cubietruck
PACKAGES:=\
uboot-sunxi-Cubietruck kmod-ata-core kmod-ata-sunxi \
kmod-rtc-sunxi kmod-brcmfmac
endef
define Profile/Cubietruck/Description
Package set optimized for the Cubietruck
endef
$(eval $(call Profile,Cubietruck))

View file

@ -1,19 +0,0 @@
#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Lamobo_R1
NAME:=Lamobo R1
PACKAGES:=\
uboot-sunxi-Lamobo_R1 kmod-ata-sunxi kmod-rtl8192cu \
swconfig wpad-mini
endef
define Profile/Lamobo_R1/Description
Package set optimized for the Lamobo R1
endef
$(eval $(call Profile,Lamobo_R1))

View file

@ -1,18 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Mele_M9
NAME:=Mele_M9
PACKAGES:=\
uboot-sunxi-Mele_M9 kmod-sun4i-emac kmod-rtc-sunxi kmod-rtl8192cu
endef
define Profile/Mele_M9/Description
Package set optimized for the Mele M9
endef
$(eval $(call Profile,Mele_M9))

View file

@ -1,18 +0,0 @@
#
# Copyright (C) 2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/orangepi_plus
NAME:=orangepi_plus
PACKAGES:=\
kmod-rtc-sunxi uboot-sunxi-orangepi_plus
endef
define Profile/orangepi_plus/Description
Package set optimized for the OrangePi Plus (H3)
endef
$(eval $(call Profile,orangepi_plus))

View file

@ -1,18 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Linksprite_pcDuino
NAME:=Linksprite_pcDuino
PACKAGES:=\
uboot-sunxi-Linksprite_pcDuino kmod-sun4i-emac kmod-rtc-sunxi kmod-rtl8192cu
endef
define Profile/Linksprite_pcDuino/Description
Package set optimized for the Linksprite pcDuino
endef
$(eval $(call Profile,Linksprite_pcDuino))

View file

@ -1,19 +0,0 @@
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Profile/Linksprite_pcDuino3
NAME:=pcDuino3
PACKAGES:=\
uboot-sunxi-Linksprite_pcDuino3 kmod-sun4i-emac kmod-rtc-sunxi \
kmod-ata-core kmod-ata-sunxi kmod-rtl8xxxu rtl8188eu-firmware
endef
define Profile/Linksprite_pcDuino3/Description
Package set optimized for the pcDuino3
endef
$(eval $(call Profile,Linksprite_pcDuino3))