board/raspberrypi: add Raspberry Pi Zero 2 W

The Raspberry-Pi Zero 2 W is an affordable single board computer. It is
a more powerful drop-in replacement for the Raspberry Pi Zero W.

The board incorporates an Raspberry-Pi RP3A0 system-in-package (SiP) with
a Broadcom BCM2710A1 and 512MB LPDDR2 SDRAM. The CPU is a quad-core 1Ghz
64-bit Arm Cortex-A53. As for other Raspberry-Pis it also provides
2.4GHz 802.11 b/g/n Wifi, Bluetooth 4.2 and BLE.

The BCM2710 cpu is similar to the Raspberry-Pi 3, it uses the same
kernel configuration as the Raspberry-Pi 2 and 3.

Signed-off-by: Julien Grossholtz <julien.grossholtz@openest.io>
[Based on https://patchwork.ozlabs.org/project/buildroot/patch/20211030213600.3445223-3-julien.grossholtz@openest.io/
  - reformat genimage-raspberrypizero2w.cfg according to the beautify patch-set
  - update kernel version to 9878a11 (5.10.78)
  - use new bcm2710-rpi-zero-2-w dtb
  - update commit log about kernel config (RPi2/3)
  - add DEVELOPERS entries for Julien
]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Julien Grossholtz 2021-11-11 21:04:39 +01:00 committed by Yann E. MORIN
parent 6983c511f9
commit 19575e9e9e
6 changed files with 105 additions and 0 deletions

View File

@ -1512,7 +1512,9 @@ N: Julien Corjon <corjon.j@ecagroup.com>
F: package/qt5/ F: package/qt5/
N: Julien Grossholtz <julien.grossholtz@openest.io> N: Julien Grossholtz <julien.grossholtz@openest.io>
F: board/raspberrypi/
F: board/technologic/ts7680/ F: board/technologic/ts7680/
F: configs/raspberrypizero2w_defconfig
F: configs/ts7680_defconfig F: configs/ts7680_defconfig
F: package/paho-mqtt-c F: package/paho-mqtt-c

View File

@ -0,0 +1,29 @@
# Please note that this is only a sample, we recommend you to change it to fit
# your needs.
# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE.
# See http://buildroot.org/manual.html#rootfs-custom
# and http://elinux.org/RPiconfig for a description of config.txt syntax
start_file=start.elf
fixup_file=fixup.dat
kernel=zImage
# To use an external initramfs file
#initramfs rootfs.cpio.gz
# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
disable_overscan=1
# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem_256=100
gpu_mem_512=100
gpu_mem_1024=100
# fixes rpi (3B, 3B+, 3A+, 4B ,zero W and zero 2) ttyAMA0 serial console
dtoverlay=miniuart-bt
# enable autoprobing of Bluetooth driver without need of hciattach/btattach
dtoverlay=krnbt=on

View File

@ -0,0 +1,32 @@
image boot.vfat {
vfat {
files = {
"bcm2710-rpi-zero-2-w.dtb",
"rpi-firmware/bootcode.bin",
"rpi-firmware/cmdline.txt",
"rpi-firmware/config.txt",
"rpi-firmware/fixup.dat",
"rpi-firmware/start.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

@ -28,6 +28,10 @@ For model Zero (model A+ in smaller form factor):
$ make raspberrypi0_defconfig $ make raspberrypi0_defconfig
For model Zero 2 W (model B3 in smaller form factor):
$ make raspberrypizero2w_defconfig
For model 2 B: For model 2 B:
$ make raspberrypi2_defconfig $ make raspberrypi2_defconfig
@ -79,6 +83,7 @@ After building, you should obtain this tree:
+-- bcm2708-rpi-cm.dtb [1] +-- bcm2708-rpi-cm.dtb [1]
+-- bcm2708-rpi-zero.dtb [1] +-- bcm2708-rpi-zero.dtb [1]
+-- bcm2708-rpi-zero-w.dtb [1] +-- bcm2708-rpi-zero-w.dtb [1]
+-- bcm2710-rpi-zero-2-w.dtb [1]
+-- 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]

1
board/raspberrypizero2w Symbolic link
View File

@ -0,0 +1 @@
raspberrypi

View File

@ -0,0 +1,36 @@
BR2_arm=y
BR2_cortex_a53=y
BR2_ARM_FPU_NEON_VFPV4=y
# Linux headers same as kernel, 5.10 series
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,9878a118cbdb7779fd15caa45915d22bff381ba3)/linux-9878a118cbdb7779fd15caa45915d22bff381ba3.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2709"
# Build the DTB from the kernel sources
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-zero-2-w"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y
BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypizero2w/config_zero2w.txt"
# MicroSD images generation tools
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/raspberrypizero2w/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypizero2w/post-image.sh"