uboot-rockchip: add support for PINE64 ROCK64
[openwrt/staging/stintel.git] / package / boot / uboot-rockchip / Makefile
1 #
2 # This is free software, licensed under the GNU General Public License v2.
3 # See /LICENSE for more information.
4 #
5 include $(TOPDIR)/rules.mk
6 include $(INCLUDE_DIR)/kernel.mk
7
8 PKG_VERSION:=2021.07
9 PKG_RELEASE:=5
10
11 PKG_HASH:=312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e
12
13 PKG_MAINTAINER:=Tobias Maedel <openwrt@tbspace.de>
14
15 include $(INCLUDE_DIR)/u-boot.mk
16 include $(INCLUDE_DIR)/package.mk
17
18 define U-Boot/Default
19 BUILD_TARGET:=rockchip
20 UENV:=default
21 HIDDEN:=1
22 endef
23
24
25 # RK3328 boards
26
27 define U-Boot/rk3328/Default
28 BUILD_SUBTARGET:=armv8
29 DEPENDS:=+PACKAGE_u-boot-$(1):trusted-firmware-a-rk3328
30 ATF:=rk3328_bl31.elf
31 OF_PLATDATA:=$(1)
32 endef
33
34 define U-Boot/nanopi-r2c-rk3328
35 $(U-Boot/rk3328/Default)
36 NAME:=NanoPi R2C
37 BUILD_DEVICES:= \
38 friendlyarm_nanopi-r2c
39 endef
40
41 define U-Boot/nanopi-r2s-rk3328
42 $(U-Boot/rk3328/Default)
43 NAME:=NanoPi R2S
44 BUILD_DEVICES:= \
45 friendlyarm_nanopi-r2s
46 endef
47
48 define U-Boot/orangepi-r1-plus-rk3328
49 $(U-Boot/rk3328/Default)
50 NAME:=Orange Pi R1 Plus
51 BUILD_DEVICES:= \
52 xunlong_orangepi-r1-plus
53 endef
54
55 define U-Boot/orangepi-r1-plus-lts-rk3328
56 $(U-Boot/rk3328/Default)
57 NAME:=Orange Pi R1 Plus LTS
58 BUILD_DEVICES:= \
59 xunlong_orangepi-r1-plus-lts
60 endef
61
62 define U-Boot/roc-cc-rk3328
63 $(U-Boot/rk3328/Default)
64 NAME:=ROC-RK3328-CC
65 BUILD_DEVICES:= \
66 firefly_roc-rk3328-cc
67 endef
68
69 define U-Boot/rock64-rk3328
70 $(U-Boot/rk3328/Default)
71 NAME:=Rock64
72 BUILD_DEVICES:= \
73 pine64_rock64
74 endef
75
76 # RK3399 boards
77
78 define U-Boot/rk3399/Default
79 BUILD_SUBTARGET:=armv8
80 DEPENDS:=+PACKAGE_u-boot-$(1):trusted-firmware-a-rk3399
81 ATF:=rk3399_bl31.elf
82 endef
83
84 define U-Boot/nanopc-t4-rk3399
85 $(U-Boot/rk3399/Default)
86 NAME:=NanoPC T4
87 BUILD_DEVICES:= \
88 friendlyarm_nanopc-t4
89 endef
90
91 define U-Boot/nanopi-r4s-rk3399
92 $(U-Boot/rk3399/Default)
93 NAME:=NanoPi R4S
94 BUILD_DEVICES:= \
95 friendlyarm_nanopi-r4s
96 endef
97
98 define U-Boot/rock-pi-4-rk3399
99 $(U-Boot/rk3399/Default)
100 NAME:=Rock Pi 4
101 BUILD_DEVICES:= \
102 radxa_rock-pi-4a
103 endef
104
105 define U-Boot/rockpro64-rk3399
106 $(U-Boot/rk3399/Default)
107 NAME:=RockPro64
108 BUILD_DEVICES:= \
109 pine64_rockpro64
110 endef
111
112 UBOOT_TARGETS := \
113 nanopc-t4-rk3399 \
114 nanopi-r4s-rk3399 \
115 rock-pi-4-rk3399 \
116 rockpro64-rk3399 \
117 nanopi-r2c-rk3328 \
118 nanopi-r2s-rk3328 \
119 orangepi-r1-plus-rk3328 \
120 orangepi-r1-plus-lts-rk3328 \
121 roc-cc-rk3328 \
122 rock64-rk3328
123
124 UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
125
126 UBOOT_MAKE_FLAGS += \
127 BL31=$(STAGING_DIR_IMAGE)/$(ATF)
128
129 define Build/Configure
130 $(call Build/Configure/U-Boot)
131
132 ifneq ($(OF_PLATDATA),)
133 mkdir -p $(PKG_BUILD_DIR)/tpl/dts
134 mkdir -p $(PKG_BUILD_DIR)/include/generated
135
136 $(CP) $(PKG_BUILD_DIR)/of-platdata/$(OF_PLATDATA)/dt-plat.c $(PKG_BUILD_DIR)/tpl/dts/dt-plat.c
137 $(CP) $(PKG_BUILD_DIR)/of-platdata/$(OF_PLATDATA)/dt-structs-gen.h $(PKG_BUILD_DIR)/include/generated/dt-structs-gen.h
138 $(CP) $(PKG_BUILD_DIR)/of-platdata/$(OF_PLATDATA)/dt-decl.h $(PKG_BUILD_DIR)/include/generated/dt-decl.h
139 endif
140
141 $(SED) 's#CONFIG_MKIMAGE_DTC_PATH=.*#CONFIG_MKIMAGE_DTC_PATH="$(PKG_BUILD_DIR)/scripts/dtc/dtc"#g' $(PKG_BUILD_DIR)/.config
142 endef
143
144 define Build/InstallDev
145 $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
146 $(CP) $(PKG_BUILD_DIR)/idbloader.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-idbloader.img
147 $(CP) $(PKG_BUILD_DIR)/u-boot.itb $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot.itb
148 endef
149
150 define Package/u-boot/install/default
151 endef
152
153 $(eval $(call BuildPackage/U-Boot))