From 19575e9e9e0a9cdf900f95a56e00654fd77d1ca0 Mon Sep 17 00:00:00 2001 From: Julien Grossholtz Date: Thu, 11 Nov 2021 21:04:39 +0100 Subject: [PATCH] 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 [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 Signed-off-by: Yann E. MORIN --- DEVELOPERS | 2 ++ board/raspberrypi/config_zero2w.txt | 29 +++++++++++++++ .../genimage-raspberrypizero2w.cfg | 32 +++++++++++++++++ board/raspberrypi/readme.txt | 5 +++ board/raspberrypizero2w | 1 + configs/raspberrypizero2w_defconfig | 36 +++++++++++++++++++ 6 files changed, 105 insertions(+) create mode 100644 board/raspberrypi/config_zero2w.txt create mode 100644 board/raspberrypi/genimage-raspberrypizero2w.cfg create mode 120000 board/raspberrypizero2w create mode 100644 configs/raspberrypizero2w_defconfig diff --git a/DEVELOPERS b/DEVELOPERS index 70262eac8c..6f812eb564 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1512,7 +1512,9 @@ N: Julien Corjon F: package/qt5/ N: Julien Grossholtz +F: board/raspberrypi/ F: board/technologic/ts7680/ +F: configs/raspberrypizero2w_defconfig F: configs/ts7680_defconfig F: package/paho-mqtt-c diff --git a/board/raspberrypi/config_zero2w.txt b/board/raspberrypi/config_zero2w.txt new file mode 100644 index 0000000000..9e6b7f5ccf --- /dev/null +++ b/board/raspberrypi/config_zero2w.txt @@ -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 diff --git a/board/raspberrypi/genimage-raspberrypizero2w.cfg b/board/raspberrypi/genimage-raspberrypizero2w.cfg new file mode 100644 index 0000000000..b510fea563 --- /dev/null +++ b/board/raspberrypi/genimage-raspberrypizero2w.cfg @@ -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" + } +} diff --git a/board/raspberrypi/readme.txt b/board/raspberrypi/readme.txt index d20096b5e6..c81fd801ae 100644 --- a/board/raspberrypi/readme.txt +++ b/board/raspberrypi/readme.txt @@ -28,6 +28,10 @@ For model Zero (model A+ in smaller form factor): $ make raspberrypi0_defconfig +For model Zero 2 W (model B3 in smaller form factor): + + $ make raspberrypizero2w_defconfig + For model 2 B: $ make raspberrypi2_defconfig @@ -79,6 +83,7 @@ After building, you should obtain this tree: +-- bcm2708-rpi-cm.dtb [1] +-- bcm2708-rpi-zero.dtb [1] +-- bcm2708-rpi-zero-w.dtb [1] + +-- bcm2710-rpi-zero-2-w.dtb [1] +-- bcm2709-rpi-2-b.dtb [1] +-- bcm2710-rpi-3-b.dtb [1] +-- bcm2710-rpi-3-b-plus.dtb [1] diff --git a/board/raspberrypizero2w b/board/raspberrypizero2w new file mode 120000 index 0000000000..fcdafc81ed --- /dev/null +++ b/board/raspberrypizero2w @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/configs/raspberrypizero2w_defconfig b/configs/raspberrypizero2w_defconfig new file mode 100644 index 0000000000..ddd6b97b06 --- /dev/null +++ b/configs/raspberrypizero2w_defconfig @@ -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"