sunxi: build image/uboot for the NanoPi NEO2
[openwrt/openwrt.git] / package / boot / uboot-sunxi / Makefile
index cb9935ba727c38b5181428b953e0944a0fc69ea0..b3d9c1eb69a700a3a63fdb7f9b96eae002c367bc 100644 (file)
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
-PKG_NAME:=u-boot
-PKG_VERSION:=2016.03
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=ftp://ftp.denx.de/pub/u-boot
-PKG_HASH:=e49337262ecac44dbdeac140f2c6ebd1eba345e0162b0464172e7f05583ed7bb
-PKG_MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
-PKG_LICENSE:=GPL-2.0 GPL-2.0+
-PKG_LICENSE_FILES:=Licenses/README
+PKG_VERSION:=2018.05
+
+PKG_HASH:=4da13c2a6139a78cc08608f21fd4741db27eda336cfad7ab8264fda923b9c048
 
-PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
 
+include $(INCLUDE_DIR)/u-boot.mk
 include $(INCLUDE_DIR)/package.mk
 
-define Package/uboot/template
-define Package/uboot-sunxi-$(1)
-  SECTION:=boot
-  CATEGORY:=Boot Loaders
-  DEPENDS:=@TARGET_sunxi
-  TITLE:=U-Boot for $(2)
-  URL:=http://www.denx.de/wiki/U-Boot
-  VARIANT:=$(1)
+define U-Boot/Default
+  BUILD_TARGET:=sunxi
+  UBOOT_IMAGE:=u-boot-sunxi-with-spl.bin
+  UENV:=default
+  HIDDEN:=1
+endef
+
+define U-Boot/A10-OLinuXino-Lime
+  BUILD_SUBTARGET:=cortexa8
+  NAME:=A10 OLinuXino LIME
+  BUILD_DEVICES:=sun4i-a10-olinuxino-lime
+endef
+
+define U-Boot/A13-OLinuXino
+  BUILD_SUBTARGET:=cortexa8
+  NAME:=A13 OlinuXino
+  BUILD_DEVICES:=sun5i-a13-olinuxino
+endef
+
+define U-Boot/A20-OLinuXino-Lime
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=A20 OLinuXino LIME
+  BUILD_DEVICES:=sun7i-a20-olinuxino-lime
+endef
+
+define U-Boot/A20-OLinuXino-Lime2
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=A20 OLinuXino LIME2
+  BUILD_DEVICES:=sun7i-a20-olinuxino-lime2
+endef
+
+define U-Boot/A20-OLinuXino-Lime2-eMMC
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=A20 OLinuXino LIME2 eMMC
+  BUILD_DEVICES:=sun7i-a20-olinuxino-lime2-emmc
+endef
+
+define U-Boot/A20-OLinuXino_MICRO
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=A20 OLinuXino MICRO
+  BUILD_DEVICES:=sun7i-a20-olinuxino-micro
+endef
+
+define U-Boot/Bananapi
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Bananapi
+  BUILD_DEVICES:=sun7i-a20-bananapi
+endef
+
+define U-Boot/Bananapro
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Bananapro
+  BUILD_DEVICES:=sun7i-a20-bananapro
+endef
+
+define U-Boot/Cubieboard
+  BUILD_SUBTARGET:=cortexa8
+  NAME:=Cubieboard
+  BUILD_DEVICES:=sun4i-a10-cubieboard
+endef
+
+define U-Boot/Cubieboard2
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Cubieboard2
+  BUILD_DEVICES:=sun7i-a20-cubieboard2
+endef
+
+define U-Boot/Cubietruck
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Cubietruck
+  BUILD_DEVICES:=sun7i-a20-cubietruck
+endef
+
+define U-Boot/Hummingbird_A31
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Hummingbird A31 board
+endef
+
+define U-Boot/Marsboard_A10
+  BUILD_SUBTARGET:=cortexa8
+  NAME:=Marsboard
+  BUILD_DEVICES:=sun4i-a10-marsboard
 endef
 
-define Package/uboot-sunxi-$(1)/install
-       $(CP) $(PKG_BUILD_DIR)/u-boot-sunxi-with-spl.bin \
-               $(KERNEL_BUILD_DIR)/uboot-$(BOARD)-$(1)-u-boot-with-spl.bin
-       mkimage -C none -A arm -T script -d uEnv-$(if $(3),$(3),default).txt \
-               $(KERNEL_BUILD_DIR)/uboot-$(BOARD)-$(1)-boot.scr
+define U-Boot/Mele_M9
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Mele M9 (A31)
+  BUILD_DEVICES:=sun6i-a31-m9
 endef
 
-UBOOT_SUNXI_PACKAGES += uboot-sunxi-$(1)
+define U-Boot/OLIMEX_A13_SOM
+  BUILD_SUBTARGET:=cortexa8
+  NAME:=Olimex A13 SOM
+  BUILD_DEVICES:=sun5i-a13-olimex-som
+endef
+
+define U-Boot/Linksprite_pcDuino
+  BUILD_SUBTARGET:=cortexa8
+  NAME:=Linksprite pcDuino
+  BUILD_DEVICES:=sun4i-a10-pcduino
+endef
+
+define U-Boot/Linksprite_pcDuino3
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Linksprite pcDuino3
+  BUILD_DEVICES:=sun7i-a20-pcduino3
+endef
 
+define U-Boot/Lamobo_R1
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Lamobo R1
+  BUILD_DEVICES:=sun7i-a20-lamobo-r1
 endef
 
-$(eval $(call Package/uboot/template,A10-OLinuXino-Lime,the A10 OLinuXino LIME))
-$(eval $(call Package/uboot/template,A13-OLinuXino,the A13 OlinuXino))
-$(eval $(call Package/uboot/template,A20-OLinuXino-Lime,the A20 OLinuXino LIME))
-$(eval $(call Package/uboot/template,A20-OLinuXino_MICRO,A20 OLinuXino MICRO))
-$(eval $(call Package/uboot/template,Bananapi,Bananapi))
-$(eval $(call Package/uboot/template,Bananapro,Bananapro))
-$(eval $(call Package/uboot/template,Cubieboard,Cubieboard))
-$(eval $(call Package/uboot/template,Cubieboard2,Cubieboard2))
-$(eval $(call Package/uboot/template,Cubietruck,Cubietruck))
-$(eval $(call Package/uboot/template,Hummingbird_A31,the Hummingbird A31 board))
-$(eval $(call Package/uboot/template,Mele_M9,the Mele M9 (A31)))
-$(eval $(call Package/uboot/template,OLIMEX_A13_SOM,the Olimex A13 SOM))
-$(eval $(call Package/uboot/template,Linksprite_pcDuino,Linksprite pcDuino))
-$(eval $(call Package/uboot/template,Linksprite_pcDuino3,Linksprite pcDuino3))
-$(eval $(call Package/uboot/template,Lamobo_R1,Lamobo R1))
-$(eval $(call Package/uboot/template,orangepi_plus,Orange Pi Plus (H3)))
-$(eval $(call Package/uboot/template,pangolin,Theobroma A31-yQ7 devboard,pangolin))
+define U-Boot/nanopi_m1_plus
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=NanoPi M1 Plus (H3)
+  BUILD_DEVICES:=sun8i-h3-nanopi-m1-plus
+endef
 
-define Package/uboot-sunxi-all
-  SECTION:=boot
-  CATEGORY:=Boot Loaders
-  DEPENDS:=@TARGET_sunxi
-  TITLE:=Meta package for selecting all variants of uboot-sunxi
-  URL:=http://www.denx.de/wiki/U-Boot
-  DEPENDS:=$(patsubst %,+%,$(UBOOT_SUNXI_PACKAGES))
+define U-Boot/nanopi_neo
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=U-Boot for NanoPi NEO (H3)
+  BUILD_DEVICES:=sun8i-h3-nanopi-neo
 endef
 
-ifdef BUILD_VARIANT
-define Build/Configure
-       +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
-               USE_PRIVATE_LIBGCC=yes $(BUILD_VARIANT)_defconfig
+define U-Boot/orangepi_r1
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Orange Pi R1 (H2+)
+  BUILD_DEVICES:=sun8i-h2-plus-orangepi-r1
 endef
 
-define Build/Compile
-       +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
-               CROSS_COMPILE=$(TARGET_CROSS) \
-               DTCDIR=$(LINUX_DIR)/scripts/dtc/
+define U-Boot/orangepi_pc
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Orange Pi PC (H3)
+  BUILD_DEVICES:=sun8i-h3-orangepi-pc
 endef
-else   # BUILD_VARIANT
-define Build/Prepare
+
+define U-Boot/orangepi_plus
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Orange Pi Plus (H3)
+  BUILD_DEVICES:=sun8i-h3-orangepi-plus
 endef
-define Build/Configure
+
+define U-Boot/orangepi_2
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Orange Pi 2 (H3)
+  BUILD_DEVICES:=sun8i-h3-orangepi-2
 endef
-define Build/Compile
+
+define U-Boot/pangolin
+  BUILD_SUBTARGET:=cortexa7
+  NAME:=Theobroma A31-yQ7 devboard
+  UENV:=pangolin
+endef
+
+define U-Boot/nanopi_neo_plus2
+  BUILD_SUBTARGET:=cortexa53
+  NAME:=NanoPi NEO Plus2 (H5)
+  BUILD_DEVICES:=sun50i-h5-nanopi-neo-plus2
+  DEPENDS:=+PACKAGE_u-boot-nanopi_neo_plus2:arm-trusted-firmware-sunxi
+  UENV:=a64
+endef
+
+define U-Boot/nanopi_neo2
+  BUILD_SUBTARGET:=cortexa53
+  NAME:=NanoPi NEO2 (H5)
+  BUILD_DEVICES:=sun50i-h5-nanopi-neo2
+  DEPENDS:=+PACKAGE_u-boot-nanopi_neo2:arm-trusted-firmware-sunxi
+  UENV:=a64
+endef
+
+define U-Boot/pine64_plus
+  BUILD_SUBTARGET:=cortexa53
+  NAME:=Pine64 Plus A64
+  BUILD_DEVICES:=sun50i-a64-pine64-plus
+  DEPENDS:=+PACKAGE_u-boot-pine64_plus:arm-trusted-firmware-sunxi
+  UENV:=a64
+endef
+
+define U-Boot/sopine_baseboard
+  BUILD_SUBTARGET:=cortexa53
+  NAME:=Sopine Baseboard
+  BUILD_DEVICES:=sun50i-a64-sopine-baseboard
+  DEPENDS:=+PACKAGE_u-boot-sopine_baseboard:arm-trusted-firmware-sunxi
+  UENV:=a64
+endef
+
+
+define U-Boot/orangepi_zero_plus
+  BUILD_SUBTARGET:=cortexa53
+  NAME:=Xunlong Orange Pi Zero Plus
+  BUILD_DEVICES:=sun50i-h5-orangepi-zero-plus
+  DEPENDS:=+PACKAGE_u-boot-orangepi_zero_plus:arm-trusted-firmware-sunxi
+  UENV:=a64
+endef
+
+define U-Boot/orangepi_pc2
+  BUILD_SUBTARGET:=cortexa53
+  NAME:=Xunlong Orange Pi PC2
+  BUILD_DEVICES:=sun50i-h5-orangepi-pc2
+  DEPENDS:=+PACKAGE_u-boot-orangepi_pc2:arm-trusted-firmware-sunxi
+  UENV:=a64
+endef
+
+UBOOT_TARGETS := \
+       A10-OLinuXino-Lime \
+       A13-OLinuXino \
+       A20-OLinuXino-Lime \
+       A20-OLinuXino-Lime2 \
+       A20-OLinuXino-Lime2-eMMC \
+       A20-OLinuXino_MICRO \
+       Bananapi \
+       Bananapro \
+       Cubieboard \
+       Cubieboard2 \
+       Cubietruck \
+       Hummingbird_A31 \
+       Marsboard_A10 \
+       Mele_M9 \
+       OLIMEX_A13_SOM \
+       Linksprite_pcDuino \
+       Linksprite_pcDuino3 \
+       Lamobo_R1 \
+       nanopi_m1_plus \
+       nanopi_neo \
+       nanopi_neo_plus2 \
+       nanopi_neo2 \
+       orangepi_r1 \
+       orangepi_pc \
+       orangepi_plus \
+       orangepi_2 \
+       orangepi_pc2 \
+       pangolin \
+       pine64_plus \
+       sopine_baseboard \
+       orangepi_zero_plus
+
+UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
+
+UBOOT_MAKE_FLAGS += \
+       BL31=$(STAGING_DIR_IMAGE)/bl31.bin
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+       $(CP) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-u-boot-with-spl.bin
+       mkimage -C none -A arm -T script -d uEnv-$(UENV).txt \
+               $(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-boot.scr
+endef
+
+define Package/u-boot/install/default
 endef
-endif  # BUILD_VARIANT
 
-$(foreach pkg,$(UBOOT_SUNXI_PACKAGES), \
-  $(eval $(call BuildPackage,$(pkg))) \
-)
-$(eval $(call BuildPackage,uboot-sunxi-all))
+$(eval $(call BuildPackage/U-Boot))