Skip to content

Raspberry Pi

Board Identification

Identifiers: Raspberry Pi 4 Model B

Yocto MACHINE:: raspberrypi4-64-welma

Documentation:

Features:

  • SoC: Broadcom BCM2711, Quad core Cortex-A72 64-bit
  • GPU: Broadcom VideoCore VI
  • RAM: 1GB, 2GB, 4GB or 8GB LPDDR4
  • Storage: microSD
  • Ethernet
  • Wifi
  • Bluetooth
  • 4 USB ports
  • Video & sound:
    • HDMI
    • MIPI DSI display
    • MIPI CSI camera
    • 3.5 mm analogue audio-video jack
  • GPIO: 40-pin header

Boot Sequence

The default boot sequence from the SD card is as follows:

  1. GPU: The ROM code starts
  2. GPU: The ROM code loads the bootloader (bootcode.bin), found in the first MBR partition of the SD card (GPT partitioning not supported), formatted as VFAT, called "/bootloader" hereafter)
  3. GPU: bootcode.bin initializes the external RAM, starts the firmware loader (start.elf and its variants, found in /bootloader)
  4. GPU: start.elf starts the CPU, loads the DTB, the command line (from config.txt, cmdline.txt), and starts U-Boot (found in /bootloader) on the CPU
  5. CPU: U-Boot starts the kernel
  6. CPU: The kernel mounts the initial ram file system (initramfs) and starts Init

First Installation

  • On a PC, copy the generate SD card image (.wic) file to the SD card:
$ SDIMG=tmp/deploy/images/$MACHINE/welma-image-minimal-dev-$MACHINE.wic
$ gunzip --keep --force $SDIMG.gz
$ sudo dd if="$SDIMG" of=/dev/mmcblk0 bs=1M
  • Insert the SD card into the device.
  • Your device is ready for booting Welma.

Regular Boot

The regular boot is done as follows:

  • Insert a programmed SD card.
  • Start the board.

Appendix

Connecting to the Serial Port

In order to debug and investigate the boot sequence, you will need to:

  • Have the bootloader activate the UART, by settings in your conf/local.conf and rebuild:

    ENABLE_UART = "1"
    ENABLE_EARLY_UART_DEBUG = "1"
    

  • Copy the generated WIC image to the SD card

  • Connect your PC to the serial port (GPIO TX, RX, Ground) at 115200 baud

  • Start the board

Connecting to the board via IP/Ethernet

  • Connect a cable between your PC and the board.

  • Set up a network interface on your PC (say eth0).

By default, Welma Linux has 2 default static link-local IP addresses (on boards that have an Ethernet port): 169.254.0.1 and fe80::1.

  • Connect using ssh:
$ ssh root@fe80::1%eth0

Hardware Watchdog

No HW watchdog is started by U-Boot.

One is started and serviced by the Linux kernel, then serviced by systemd:

/sys/class/watchdog/watchdog0 -> ../../devices/platform/soc/fe100000.watchdog/bcm2835-wdt/watchdog/watchdog0

The timeout is 15 s.