board/raspberrypi: add support for the new pi4

This is based on the pi3 defconfig. There is currently no 64-bit support
since the upstream kernel does not build in this configuration.

Signed-off-by: Michael Cullen <michael@michaelcullen.name>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Michael Cullen 2019-06-29 19:32:38 +01:00 committed by Peter Korsgaard
parent a47328a22a
commit fa1ce849f3
4 changed files with 76 additions and 1 deletions

View File

@ -0,0 +1,30 @@
image boot.vfat {
vfat {
files = {
"bcm2711-rpi-4-b.dtb",
"rpi-firmware/cmdline.txt",
"rpi-firmware/config.txt",
"rpi-firmware/fixup4.dat",
"rpi-firmware/start4.elf",
"rpi-firmware/overlays",
"zImage"
}
}
size = 32M
}
image sdcard.img {
hdimage {
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@ -8,6 +8,7 @@ These instructions apply to all models of the Raspberry Pi:
- the "enhanced" models A+ and B+, - the "enhanced" models A+ and B+,
- the model B2 (aka Raspberry Pi 2) - the model B2 (aka Raspberry Pi 2)
- the model B3 (aka Raspberry Pi 3). - the model B3 (aka Raspberry Pi 3).
- the model B4 (aka Raspberry Pi 4).
How to build it How to build it
=============== ===============
@ -34,6 +35,10 @@ For model 3 B and B+:
$ make raspberrypi3_defconfig $ make raspberrypi3_defconfig
For model 4 B:
$ make raspberrypi4_defconfig
Build the rootfs Build the rootfs
---------------- ----------------
@ -57,6 +62,7 @@ After building, you should obtain this tree:
+-- bcm2709-rpi-2-b.dtb [1] +-- bcm2709-rpi-2-b.dtb [1]
+-- bcm2710-rpi-3-b.dtb [1] +-- bcm2710-rpi-3-b.dtb [1]
+-- bcm2710-rpi-3-b-plus.dtb [1] +-- bcm2710-rpi-3-b-plus.dtb [1]
+-- bcm2711-rpi-4-b.dtb [1]
+-- boot.vfat +-- boot.vfat
+-- rootfs.ext4 +-- rootfs.ext4
+-- rpi-firmware/ +-- rpi-firmware/
@ -72,7 +78,7 @@ After building, you should obtain this tree:
[1] Not all of them will be present, depending on the RaspberryPi [1] Not all of them will be present, depending on the RaspberryPi
model you are using. model you are using.
[2] Only for the Raspberry Pi 3 Model (overlay pi3-miniuart-bt is needed [2] Only for the Raspberry Pi 3/4 Models (overlay pi3-miniuart-bt is needed
to enable the RPi3 serial console otherwise occupied by the bluetooth to enable the RPi3 serial console otherwise occupied by the bluetooth
chip). Alternative would be to disable the serial console in cmdline.txt chip). Alternative would be to disable the serial console in cmdline.txt
and /etc/inittab. and /etc/inittab.

1
board/raspberrypi4 Symbolic link
View File

@ -0,0 +1 @@
raspberrypi

View File

@ -0,0 +1,38 @@
BR2_arm=y
BR2_cortex_a72=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_SYSTEM_DHCP="eth0"
# Linux headers same as kernel, a 4.19 series
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,eb0360356344d8ba633e61936c794aa46a02397f)/linux-eb0360356344d8ba633e61936c794aa46a02397f.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
# Build the DTB from the kernel sources
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
# Required tools to create the SD image
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
# Filesystem / image
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="--add-pi3-miniuart-bt-overlay"