brcm2708: Add Raspberry Pi 4 support

- Support added to bcm2709 subtarget (32 bit).
- 64 bit kernel still requires many hacks on RPi 4B.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
Álvaro Fernández Rojas 2019-07-13 13:33:44 +02:00
parent 9e8932c17f
commit f781582828
5 changed files with 41 additions and 16 deletions

View file

@ -16,7 +16,8 @@ raspberrypi,model-b-plus |\
raspberrypi,model-b-rev2 |\ raspberrypi,model-b-rev2 |\
raspberrypi,2-model-b |\ raspberrypi,2-model-b |\
raspberrypi,3-model-b |\ raspberrypi,3-model-b |\
raspberrypi,3-model-b-plus) raspberrypi,3-model-b-plus |\
raspberrypi,4-model-b)
ucidef_set_interface_lan "eth0" ucidef_set_interface_lan "eth0"
;; ;;

View file

@ -9,6 +9,7 @@ set_preinit_iface() {
raspberrypi,2-model-b |\ raspberrypi,2-model-b |\
raspberrypi,3-model-b |\ raspberrypi,3-model-b |\
raspberrypi,3-model-b-plus |\ raspberrypi,3-model-b-plus |\
raspberrypi,4-model-b |\
raspberrypi,model-b |\ raspberrypi,model-b |\
raspberrypi,model-b-plus |\ raspberrypi,model-b-plus |\
raspberrypi,model-b-rev2) raspberrypi,model-b-rev2)

View file

@ -223,6 +223,8 @@ CONFIG_GENERIC_IRQ_MIGRATION=y
CONFIG_GENERIC_IRQ_MULTI_HANDLER=y CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_PHY=y CONFIG_GENERIC_PHY=y
CONFIG_GENERIC_PINCONF=y CONFIG_GENERIC_PINCONF=y
@ -388,9 +390,11 @@ CONFIG_OLD_SIGSUSPEND3=y
CONFIG_PADATA=y CONFIG_PADATA=y
CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_PCI=y CONFIG_PCI=y
# CONFIG_PCIE_BRCMSTB is not set CONFIG_PCIE_BRCMSTB=y
CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS=y
CONFIG_PCI_DOMAINS_GENERIC=y CONFIG_PCI_DOMAINS_GENERIC=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MSI_IRQ_DOMAIN=y
# CONFIG_PCI_V3_SEMI is not set # CONFIG_PCI_V3_SEMI is not set
CONFIG_PERF_USE_VMALLOC=y CONFIG_PERF_USE_VMALLOC=y
CONFIG_PGTABLE_LEVELS=3 CONFIG_PGTABLE_LEVELS=3
@ -478,10 +482,15 @@ CONFIG_USB_DWCOTG=y
CONFIG_USB_LAN78XX=y CONFIG_USB_LAN78XX=y
CONFIG_USB_NET_DRIVERS=y CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_NET_SMSC95XX=y CONFIG_USB_NET_SMSC95XX=y
CONFIG_USB_PCI=y
CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE=y
CONFIG_USB_SUPPORT=y CONFIG_USB_SUPPORT=y
CONFIG_USB_UAS=y CONFIG_USB_UAS=y
# CONFIG_USB_UHCI_HCD is not set
CONFIG_USB_USBNET=y CONFIG_USB_USBNET=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PCI=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_USE_OF=y CONFIG_USE_OF=y
CONFIG_VFP=y CONFIG_VFP=y
CONFIG_VFPv3=y CONFIG_VFPv3=y

View file

@ -4,11 +4,11 @@
# #
SUBTARGET:=bcm2709 SUBTARGET:=bcm2709
BOARDNAME:=BCM2709/BCM2710 boards (32 bit) BOARDNAME:=BCM2709/BCM2710/BCM2711 boards (32 bit)
CPU_TYPE:=cortex-a7 CPU_TYPE:=cortex-a7
CPU_SUBTYPE:=neon-vfpv4 CPU_SUBTYPE:=neon-vfpv4
define Target/Description define Target/Description
Build firmware image for BCM2709/BCM2710 devices. Build firmware image for BCM2709/BCM2710/BCM2711 devices.
This firmware features a 32 bit kernel. This firmware features a 32 bit kernel.
endef endef

View file

@ -21,18 +21,12 @@ define Build/kernel-img
mv $@.tmp $@ mv $@.tmp $@
endef endef
define Build/boot-img define Build/boot-common
rm -f $@.boot rm -f $@.boot
mkfs.fat -C $@.boot $(FAT32_BLOCKS) mkfs.fat -C $@.boot $(FAT32_BLOCKS)
mcopy -i $@.boot $(KDIR)/COPYING.linux :: mcopy -i $@.boot $(KDIR)/COPYING.linux ::
mcopy -i $@.boot $(KDIR)/bootcode.bin :: mcopy -i $@.boot $(KDIR)/bootcode.bin ::
mcopy -i $@.boot $(KDIR)/LICENCE.broadcom :: mcopy -i $@.boot $(KDIR)/LICENCE.broadcom ::
mcopy -i $@.boot $(KDIR)/start.elf ::
mcopy -i $@.boot $(KDIR)/start_cd.elf ::
mcopy -i $@.boot $(KDIR)/start_x.elf ::
mcopy -i $@.boot $(KDIR)/fixup.dat ::
mcopy -i $@.boot $(KDIR)/fixup_cd.dat ::
mcopy -i $@.boot $(KDIR)/fixup_x.dat ::
mcopy -i $@.boot cmdline.txt :: mcopy -i $@.boot cmdline.txt ::
mcopy -i $@.boot config.txt :: mcopy -i $@.boot config.txt ::
mcopy -i $@.boot $(IMAGE_KERNEL) ::$(KERNEL_IMG) mcopy -i $@.boot $(IMAGE_KERNEL) ::$(KERNEL_IMG)
@ -42,6 +36,24 @@ define Build/boot-img
mcopy -i $@.boot $(DTS_DIR)/overlays/README ::/overlays/ mcopy -i $@.boot $(DTS_DIR)/overlays/README ::/overlays/
endef endef
define Build/boot-2708
mcopy -i $@.boot $(KDIR)/start.elf ::
mcopy -i $@.boot $(KDIR)/start_cd.elf ::
mcopy -i $@.boot $(KDIR)/start_x.elf ::
mcopy -i $@.boot $(KDIR)/fixup.dat ::
mcopy -i $@.boot $(KDIR)/fixup_cd.dat ::
mcopy -i $@.boot $(KDIR)/fixup_x.dat ::
endef
define Build/boot-2711
mcopy -i $@.boot $(KDIR)/start4.elf ::
mcopy -i $@.boot $(KDIR)/start4cd.elf ::
mcopy -i $@.boot $(KDIR)/start4x.elf ::
mcopy -i $@.boot $(KDIR)/fixup4.dat ::
mcopy -i $@.boot $(KDIR)/fixup4cd.dat ::
mcopy -i $@.boot $(KDIR)/fixup4x.dat ::
endef
define Build/sdcard-img define Build/sdcard-img
./gen_rpi_sdcard_img.sh $@ $@.boot $(IMAGE_ROOTFS) \ ./gen_rpi_sdcard_img.sh $@ $@.boot $(IMAGE_ROOTFS) \
$(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE) $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
@ -52,8 +64,8 @@ define Device/Default
KERNEL := kernel-bin | kernel-img KERNEL := kernel-bin | kernel-img
KERNEL_IMG := kernel.img KERNEL_IMG := kernel.img
IMAGES := factory.img.gz sysupgrade.img.gz IMAGES := factory.img.gz sysupgrade.img.gz
IMAGE/sysupgrade.img.gz := boot-img | sdcard-img | gzip | append-metadata IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | sdcard-img | gzip | append-metadata
IMAGE/factory.img.gz := boot-img | sdcard-img | gzip IMAGE/factory.img.gz := boot-common | boot-2708 | sdcard-img | gzip
endef endef
define Device/rpi define Device/rpi
@ -74,8 +86,8 @@ ifeq ($(SUBTARGET),bcm2708)
endif endif
define Device/rpi-2 define Device/rpi-2
DEVICE_TITLE := Raspberry Pi 2B/3B/3B+/3CM DEVICE_TITLE := Raspberry Pi 2B/3B/3B+/3CM/4B
DEVICE_DTS := bcm2709-rpi-2-b bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3 DEVICE_DTS := bcm2709-rpi-2-b bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2711-rpi-4-b bcm2710-rpi-cm3
SUPPORTED_DEVICES := \ SUPPORTED_DEVICES := \
rpi-2-b rpi-3-b rpi-3-b-plus rpi-cm \ rpi-2-b rpi-3-b rpi-3-b-plus rpi-cm \
raspberrypi,2-model-b \ raspberrypi,2-model-b \
@ -85,8 +97,10 @@ define Device/rpi-2
brcmfmac-firmware-43430-sdio \ brcmfmac-firmware-43430-sdio \
brcmfmac-firmware-43430-sdio-rpi-3b \ brcmfmac-firmware-43430-sdio-rpi-3b \
brcmfmac-firmware-43455-sdio brcmfmac-firmware-43455-clm_blob \ brcmfmac-firmware-43455-sdio brcmfmac-firmware-43455-clm_blob \
brcmfmac-firmware-43455-sdio-rpi-3b-plus \ brcmfmac-firmware-43455-sdio-rpi-3b-plus brcmfmac-firmware-43455-sdio-rpi-4b \
kmod-brcmfmac wpad-basic kmod-brcmfmac wpad-basic
IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip | append-metadata
IMAGE/factory.img.gz := boot-common | boot-2708 | boot-2711 | sdcard-img | gzip
endef endef
ifeq ($(SUBTARGET),bcm2709) ifeq ($(SUBTARGET),bcm2709)
TARGET_DEVICES += rpi-2 TARGET_DEVICES += rpi-2