diff options
Diffstat (limited to 'target/linux/sunxi/image')
-rw-r--r-- | target/linux/sunxi/image/Makefile | 212 | ||||
-rwxr-xr-x | target/linux/sunxi/image/gen_sunxi_sdcard_img.sh | 3 |
2 files changed, 143 insertions, 72 deletions
diff --git a/target/linux/sunxi/image/Makefile b/target/linux/sunxi/image/Makefile index c7d90a249f..07beb03770 100644 --- a/target/linux/sunxi/image/Makefile +++ b/target/linux/sunxi/image/Makefile @@ -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) - - 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 - - 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) \ +KERNEL_LOADADDR:=0x40008000 + +define Build/sunxi-sdcard + rm -f $@.boot + mkfs.fat $@.boot -C $(FAT32_BLOCKS) + + 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)) diff --git a/target/linux/sunxi/image/gen_sunxi_sdcard_img.sh b/target/linux/sunxi/image/gen_sunxi_sdcard_img.sh index 2a09306af6..bb89e3a0fc 100755 --- a/target/linux/sunxi/image/gen_sunxi_sdcard_img.sh +++ b/target/linux/sunxi/image/gen_sunxi_sdcard_img.sh @@ -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 |