buildroot/board/raspberrypi
Peter Seiderer d7cf67fc94 board/raspberrypicm4io-64: enable RTC and USB overlays
The CM4 IO Board is equipped with an on-board RTC connected over I2C,
and has USB 2.0 host ports.

This commit loads the appropriate overlays to enable both. The USB 2.0
interface is by default disabled on CM4 to reduce the power
consumption so it needs to be explicitly enabled on the CM4 IO Board
to use the USB ports.

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-01-13 23:12:11 +01:00
..
config_0w.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_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_4.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_cm4io.txt board/raspberrypicm4io: enable RTC and USB overlays 2022-01-13 23:10:56 +01:00
config_cm4io_64bit.txt board/raspberrypicm4io-64: enable RTC and USB overlays 2022-01-13 23:12:11 +01: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-raspberrypi.cfg board/raspberrypi/genimage-raspberrypi.cfg: beautify file 2021-11-08 22:59:33 +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-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