kumquat-buildroot/board/raspberrypi
Julien Grossholtz 19575e9e9e 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>
2021-11-12 23:09:58 +01:00
..
config_0w.txt package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
config_3_64bit.txt package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
config_3_qt5we.txt package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
config_3.txt package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
config_4_64bit.txt package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
config_4.txt package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
config_cm4io_64bit.txt package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
config_cm4io.txt package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
config_default.txt package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
config_zero2w.txt board/raspberrypi: add Raspberry Pi Zero 2 W 2021-11-12 23:09:58 +01:00
genimage-raspberrypi0.cfg board/raspberrypi/genimage-raspberrypi0.cfg: beautify file 2021-11-08 22:59:33 +01:00
genimage-raspberrypi0w.cfg board/raspberrypi/genimage-raspberrypi0w.cfg: beautify file 2021-11-08 22:59:33 +01:00
genimage-raspberrypi2.cfg board/raspberrypi/genimage-raspberrypi2.cfg: beautify file 2021-11-08 22:59:33 +01:00
genimage-raspberrypi3-64.cfg board/raspberrypi/genimage-raspberrypi3-64.cfg: beautify file 2021-11-08 22:59:33 +01:00
genimage-raspberrypi3.cfg board/raspberrypi/genimage-raspberrypi3.cfg: beautify file 2021-11-08 22:59:33 +01:00
genimage-raspberrypi4-64.cfg board/raspberrypi/genimage-raspberrypi4-64.cfg: beautify file 2021-11-08 22:59:33 +01:00
genimage-raspberrypi4.cfg board/raspberrypi/genimage-raspberrypi4.cfg: beautify file 2021-11-08 22:59:33 +01:00
genimage-raspberrypi.cfg board/raspberrypi/genimage-raspberrypi.cfg: beautify file 2021-11-08 22:59:33 +01:00
genimage-raspberrypicm4io-64.cfg board/raspberrypi/genimage-raspberrypicm4io-64.cfg: beautify file 2021-11-08 22:59:34 +01:00
genimage-raspberrypicm4io.cfg board/raspberrypi/genimage-raspberrypicm4io.cfg: beautify file 2021-11-08 22:59:34 +01:00
genimage-raspberrypizero2w.cfg board/raspberrypi: add Raspberry Pi Zero 2 W 2021-11-12 23:09:58 +01:00
post-build.sh board/raspberrypi/post-build.sh: only tweak /etc/inittab if available 2016-08-26 15:37:17 +02:00
post-image.sh package/rpi-firmware: rework boot/config file handling 2021-10-17 22:11:41 +02:00
readme.txt board/raspberrypi: add Raspberry Pi Zero 2 W 2021-11-12 23:09:58 +01:00

Raspberry Pi

Intro
=====

These instructions apply to all models of the Raspberry Pi:
  - the original models A and B,
  - the "enhanced" models A+ and B+,
  - the model B2 (aka Raspberry Pi 2)
  - the model B3 (aka Raspberry Pi 3).
  - the model B4 (aka Raspberry Pi 4).
  - the model CM4 (aka Raspberry Pi Compute Module 4 and IO Board).

How to build it
===============

Configure Buildroot
-------------------

There are two RaspberryPi defconfig files in Buildroot, one for each
major variant, which you should base your work on:

For models A, B, A+ or B+:

  $ make raspberrypi_defconfig

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

For model 3 B and B+:

  $ make raspberrypi3_defconfig

or for model 3 B and B+ (64 bit):

  $ make raspberrypi3_64_defconfig

For model 4 B:

  $ make raspberrypi4_defconfig

or for model 4 B (64 bit):

  $ make raspberrypi4_64_defconfig

For model CM4 (on IO Board):

  $ make raspberrypicm4io_defconfig

or for CM4 (on IO Board - 64 bit):

  $ make raspberrypicm4io_64_defconfig

Build the rootfs
----------------

Note: you will need to have access to the network, since Buildroot will
download the packages' sources.

You may now build your rootfs with:

  $ make

(This may take a while, consider getting yourself a coffee ;-) )

Result of the build
-------------------

After building, you should obtain this tree:

    output/images/
    +-- bcm2708-rpi-b.dtb           [1]
    +-- bcm2708-rpi-b-plus.dtb      [1]
    +-- 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]
    +-- bcm2710-rpi-cm3.dtb         [1]
    +-- bcm2711-rpi-4-b.dtb         [1]
    +-- bcm2711-rpi-cm4.dtb         [1]
    +-- bcm2837-rpi-3-b.dtb         [1]
    +-- boot.vfat
    +-- rootfs.ext4
    +-- rpi-firmware/
    |   +-- bootcode.bin
    |   +-- cmdline.txt
    |   +-- config.txt
    |   +-- fixup.dat               [1]
    |   +-- fixup4.dat              [1]
    |   +-- start.elf               [1]
    |   +-- start4.elf              [1]
    |   `-- overlays/               [2]
    +-- sdcard.img
    +-- Image                       [1]
    `-- zImage                      [1]

[1] Not all of them will be present, depending on the RaspberryPi
    model you are using.

[2] Only for the Raspberry Pi 3/4 Models (overlay miniuart-bt is needed
    to enable the RPi3 serial console otherwise occupied by the bluetooth
    chip). Alternative would be to disable the serial console in cmdline.txt
    and /etc/inittab.

How to write the SD card
========================

Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.

Copy the bootable "sdcard.img" onto an SD card with "dd":

  $ sudo dd if=output/images/sdcard.img of=/dev/sdX

Insert the SDcard into your Raspberry Pi, and power it up. Your new system
should come up now and start two consoles: one on the serial port on
the P1 header, one on the HDMI output where you can login using a USB
keyboard.

How to write to CM4 eMMC memory
===============================

For CM4 modules without eMMC memory see above for booting from SD card,
for CM4 moduels with eMMC memory proceed as following:

- fit jumper on IO Board header J2 to disable eMMC boot
- connect IO Board micro USB port (J11 USB slave) to your host linux system
- power up CM4/IO Board (lsusb command should show a '0a5c:2711 Broadcom Corp.
  BCM2711 Boot' device)
- run 'sudo ./host/bin/rpiboot', output should look like the following:
    Waiting for BCM2835/6/7/2711...
    Loading embedded: bootcode4.bin
    Sending bootcode.bin
    Successful read 4 bytes
    Waiting for BCM2835/6/7/2711...
    Loading embedded: bootcode4.bin
    Second stage boot server
    Loading embedded: start4.elf
    File read: start4.elf
    Second stage boot server done

- a USB mass storage device should show up (the CM4 eMMC memory), proceed
  as described above to copy sdcard.img to it
- power down CM4/IO Board
- remove jumper on IO Board header J2 to re-enable eMMC boot
- power up CM4/IO Board