bcm27xx: use PARTUUID for root in cmdline
[openwrt/openwrt.git] / target / linux / bcm27xx / image / Makefile
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Copyright (C) 2012-2019 OpenWrt.org
4 # Copyright (C) 2016-2017 LEDE project
5
6 include $(TOPDIR)/rules.mk
7 include $(INCLUDE_DIR)/image.mk
8
9 FAT32_BLOCK_SIZE=1024
10 FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
11
12 define Build/Compile
13 $(CP) $(LINUX_DIR)/COPYING $(KDIR)/COPYING.linux
14 endef
15
16 ### Image scripts ###
17 define Build/boot-common
18 echo $(IMG_PART_SIGNATURE) > $@-partuuid.txt
19 sed \
20 -e 's#@ROOT@#PARTUUID=$(IMG_PART_SIGNATURE)-02#g' \
21 cmdline.txt > $@-cmdline.txt
22
23 rm -f $@.boot
24 mkfs.fat -n boot -C $@.boot $(FAT32_BLOCKS)
25 mcopy -i $@.boot $(KDIR)/COPYING.linux ::
26 mcopy -i $@.boot $(KDIR)/LICENCE.broadcom ::
27 mcopy -i $@.boot $@-cmdline.txt ::cmdline.txt
28 mcopy -i $@.boot config.txt ::
29 mcopy -i $@.boot distroconfig.txt ::
30 mcopy -i $@.boot $@-partuuid.txt ::partuuid.txt
31 mcopy -i $@.boot $(IMAGE_KERNEL) ::$(KERNEL_IMG)
32 $(foreach dts,$(shell echo $(DEVICE_DTS)),mcopy -i $@.boot $(DTS_DIR)/$(dts).dtb ::;)
33 mmd -i $@.boot ::/overlays
34 mcopy -i $@.boot $(DTS_DIR)/overlays/*.dtbo ::/overlays/
35 mcopy -i $@.boot $(DTS_DIR)/overlays/README ::/overlays/
36 endef
37
38 define Build/boot-2708
39 mcopy -i $@.boot $(KDIR)/bootcode.bin ::
40 mcopy -i $@.boot $(KDIR)/start.elf ::
41 mcopy -i $@.boot $(KDIR)/start_cd.elf ::
42 mcopy -i $@.boot $(KDIR)/start_x.elf ::
43 mcopy -i $@.boot $(KDIR)/fixup.dat ::
44 mcopy -i $@.boot $(KDIR)/fixup_cd.dat ::
45 mcopy -i $@.boot $(KDIR)/fixup_x.dat ::
46 endef
47
48 define Build/boot-2711
49 mcopy -i $@.boot $(KDIR)/start4.elf ::
50 mcopy -i $@.boot $(KDIR)/start4cd.elf ::
51 mcopy -i $@.boot $(KDIR)/start4x.elf ::
52 mcopy -i $@.boot $(KDIR)/fixup4.dat ::
53 mcopy -i $@.boot $(KDIR)/fixup4cd.dat ::
54 mcopy -i $@.boot $(KDIR)/fixup4x.dat ::
55 endef
56
57 define Build/sdcard-img
58 SIGNATURE="$(IMG_PART_SIGNATURE)" \
59 ./gen_rpi_sdcard_img.sh $@ $@.boot $(IMAGE_ROOTFS) \
60 $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
61 endef
62
63 ### Devices ###
64 define Device/Default
65 DEVICE_VENDOR := Raspberry Pi
66 KERNEL := kernel-bin
67 KERNEL_IMG := kernel.img
68 IMAGES := factory.img.gz sysupgrade.img.gz
69 IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | sdcard-img | gzip | append-metadata
70 IMAGE/factory.img.gz := boot-common | boot-2708 | sdcard-img | gzip
71 endef
72
73 define Device/rpi
74 DEVICE_MODEL := B/B+/CM/Zero/ZeroW
75 DEVICE_DTS := \
76 bcm2708-rpi-b bcm2708-rpi-b-rev1 bcm2708-rpi-b-plus \
77 bcm2708-rpi-cm \
78 bcm2708-rpi-zero bcm2708-rpi-zero-w
79 SUPPORTED_DEVICES := \
80 rpi-b rpi-b-plus rpi-cm rpi-zero rpi-zero-w \
81 raspberrypi,model-b raspberrypi,model-b-plus raspberrypi,model-b-rev2 \
82 raspberrypi,compute-module raspberrypi,compute-module-1 \
83 raspberrypi,model-zero raspberrypi,model-zero-w
84 DEVICE_PACKAGES := \
85 cypress-firmware-43430-sdio \
86 brcmfmac-nvram-43430-sdio \
87 kmod-brcmfmac wpad-basic-mbedtls
88 endef
89 ifeq ($(SUBTARGET),bcm2708)
90 TARGET_DEVICES += rpi
91 endif
92
93 define Device/rpi-2
94 DEVICE_MODEL := 2B/2B 1.2
95 DEVICE_VARIANT := (32bit)
96 DEVICE_ALT0_VENDOR := Raspberry Pi
97 DEVICE_ALT0_MODEL := 3B/3B+/CM3
98 DEVICE_ALT0_VARIANT := (32bit)
99 DEVICE_ALT1_VENDOR := Raspberry Pi
100 DEVICE_ALT1_MODEL := 4B/400/CM4
101 DEVICE_ALT1_VARIANT := (32bit)
102 DEVICE_DTS := \
103 bcm2709-rpi-2-b bcm2710-rpi-2-b \
104 bcm2710-rpi-3-b bcm2710-rpi-3-b-plus \
105 bcm2711-rpi-4-b bcm2711-rpi-400 \
106 bcm2710-rpi-cm3 bcm2711-rpi-cm4 \
107 bcm2710-rpi-zero-2
108 SUPPORTED_DEVICES := \
109 rpi-2-b rpi-3-b rpi-3-b-plus rpi-cm rpi-zero-2 \
110 raspberrypi,2-model-b raspberrypi,2-model-b-rev2 \
111 raspberrypi,3-model-b raspberrypi,3-model-b-plus \
112 raspberrypi,3-compute-module raspberrypi,compute-module-3 \
113 raspberrypi,400 raspberrypi,4-compute-module raspberrypi,4-model-b \
114 raspberrypi,model-zero-2
115 DEVICE_PACKAGES := \
116 cypress-firmware-43430-sdio \
117 brcmfmac-nvram-43430-sdio \
118 cypress-firmware-43455-sdio \
119 brcmfmac-nvram-43455-sdio \
120 kmod-brcmfmac wpad-basic-mbedtls
121 IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip | append-metadata
122 IMAGE/factory.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip
123 endef
124 ifeq ($(SUBTARGET),bcm2709)
125 TARGET_DEVICES += rpi-2
126 endif
127
128 define Device/rpi-3
129 DEVICE_MODEL := 3B/3B+/CM3
130 DEVICE_VARIANT := (64bit)
131 DEVICE_ALT0_VENDOR := Raspberry Pi
132 DEVICE_ALT0_MODEL := 2B-1.2
133 DEVICE_ALT0_VARIANT := (64bit)
134 KERNEL_IMG := kernel8.img
135 DEVICE_DTS := \
136 broadcom/bcm2710-rpi-2-b \
137 broadcom/bcm2710-rpi-3-b broadcom/bcm2710-rpi-3-b-plus \
138 broadcom/bcm2710-rpi-cm3 \
139 broadcom/bcm2710-rpi-zero-2
140 SUPPORTED_DEVICES := \
141 rpi-3-b rpi-3-b-plus rpi-zero-2 \
142 raspberrypi,2-model-b-rev2 \
143 raspberrypi,3-model-b raspberrypi,3-model-b-plus \
144 raspberrypi,3-compute-module raspberrypi,compute-module-3 \
145 raspberrypi,model-zero-2
146 DEVICE_PACKAGES := \
147 cypress-firmware-43430-sdio \
148 brcmfmac-nvram-43430-sdio \
149 cypress-firmware-43455-sdio \
150 brcmfmac-nvram-43455-sdio \
151 kmod-brcmfmac wpad-basic-mbedtls
152 endef
153 ifeq ($(SUBTARGET),bcm2710)
154 TARGET_DEVICES += rpi-3
155 endif
156
157 define Device/rpi-4
158 DEVICE_MODEL := 4B/400/CM4
159 DEVICE_VARIANT := (64bit)
160 KERNEL_IMG := kernel8.img
161 DEVICE_DTS := \
162 broadcom/bcm2711-rpi-400 \
163 broadcom/bcm2711-rpi-4-b \
164 broadcom/bcm2711-rpi-cm4
165 SUPPORTED_DEVICES := \
166 raspberrypi,400 \
167 raspberrypi,4-compute-module \
168 raspberrypi,4-model-b
169 DEVICE_PACKAGES := \
170 cypress-firmware-43455-sdio \
171 brcmfmac-nvram-43455-sdio \
172 kmod-brcmfmac wpad-basic-mbedtls \
173 kmod-usb-net-lan78xx \
174 kmod-r8169
175 IMAGE/sysupgrade.img.gz := boot-common | boot-2711 | sdcard-img | gzip | append-metadata
176 IMAGE/factory.img.gz := boot-common | boot-2711 | sdcard-img | gzip
177 endef
178 ifeq ($(SUBTARGET),bcm2711)
179 TARGET_DEVICES += rpi-4
180 endif
181
182 define Device/rpi-5
183 DEVICE_MODEL := 5
184 KERNEL_IMG := kernel_2712.img
185 DEVICE_DTS := broadcom/bcm2712-rpi-5-b
186 SUPPORTED_DEVICES := raspberrypi,5-model-b
187 DEVICE_PACKAGES := \
188 cypress-firmware-43455-sdio \
189 brcmfmac-nvram-43455-sdio \
190 kmod-brcmfmac wpad-basic-mbedtls \
191 kmod-hwmon-pwmfan kmod-thermal
192 IMAGE/sysupgrade.img.gz := boot-common | sdcard-img | gzip | append-metadata
193 IMAGE/factory.img.gz := boot-common | sdcard-img | gzip
194 endef
195 ifeq ($(SUBTARGET),bcm2712)
196 TARGET_DEVICES += rpi-5
197 endif
198
199 $(eval $(call BuildImage))