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,2-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"
;;

View File

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

View File

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

View File

@ -4,11 +4,11 @@
#
SUBTARGET:=bcm2709
BOARDNAME:=BCM2709/BCM2710 boards (32 bit)
BOARDNAME:=BCM2709/BCM2710/BCM2711 boards (32 bit)
CPU_TYPE:=cortex-a7
CPU_SUBTYPE:=neon-vfpv4
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.
endef

View File

@ -21,18 +21,12 @@ define Build/kernel-img
mv $@.tmp $@
endef
define Build/boot-img
define Build/boot-common
rm -f $@.boot
mkfs.fat -C $@.boot $(FAT32_BLOCKS)
mcopy -i $@.boot $(KDIR)/COPYING.linux ::
mcopy -i $@.boot $(KDIR)/bootcode.bin ::
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 config.txt ::
mcopy -i $@.boot $(IMAGE_KERNEL) ::$(KERNEL_IMG)
@ -42,6 +36,24 @@ define Build/boot-img
mcopy -i $@.boot $(DTS_DIR)/overlays/README ::/overlays/
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
./gen_rpi_sdcard_img.sh $@ $@.boot $(IMAGE_ROOTFS) \
$(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
@ -52,8 +64,8 @@ define Device/Default
KERNEL := kernel-bin | kernel-img
KERNEL_IMG := kernel.img
IMAGES := factory.img.gz sysupgrade.img.gz
IMAGE/sysupgrade.img.gz := boot-img | sdcard-img | gzip | append-metadata
IMAGE/factory.img.gz := boot-img | sdcard-img | gzip
IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | sdcard-img | gzip | append-metadata
IMAGE/factory.img.gz := boot-common | boot-2708 | sdcard-img | gzip
endef
define Device/rpi
@ -74,8 +86,8 @@ ifeq ($(SUBTARGET),bcm2708)
endif
define Device/rpi-2
DEVICE_TITLE := Raspberry Pi 2B/3B/3B+/3CM
DEVICE_DTS := bcm2709-rpi-2-b bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3
DEVICE_TITLE := Raspberry Pi 2B/3B/3B+/3CM/4B
DEVICE_DTS := bcm2709-rpi-2-b bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2711-rpi-4-b bcm2710-rpi-cm3
SUPPORTED_DEVICES := \
rpi-2-b rpi-3-b rpi-3-b-plus rpi-cm \
raspberrypi,2-model-b \
@ -85,8 +97,10 @@ define Device/rpi-2
brcmfmac-firmware-43430-sdio \
brcmfmac-firmware-43430-sdio-rpi-3b \
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
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
ifeq ($(SUBTARGET),bcm2709)
TARGET_DEVICES += rpi-2