Raspberry Pi 3 support

Oleksandr Tymoshenko gonzo at bluezbox.com
Fri Oct 14 05:44:04 UTC 2016


Hello,

Limited support for Raspberry Pi 3 has just landed in HEAD. No SMP
and no 3D yet. And no BT/WiFi drivers. If you would like to give it a spin
read this info, it may save you some googling time:

- SD card layout is the same as for RPi or RPi 2

- Firmware and DTB files can be downloaded from official repo:
    https://github.com/raspberrypi/firmware/tree/master/boot
    Just copy them as-is to FAT partition on SD. There are plans to
    import latest .dts files and provide rpi3.dtb just like for
    Raspberry Pi and Raspberry Pi 2

- boot mode on RPi 3 is controlled by arm_control parameter in config.txt,
    set it to 0x200 to boot in 64-bit mode

- To reduce mess with consoles for now only PL01x UART is used (old one, 
    not miniUART) in all boot component: firmware, U-Boot, kernel.

- On RPi 3 firmware defaults to miniUART, use "dtoverlay=pi3-disable-bt” in
    config.txt to revert to old behaviour

- A lot of peripherals are disabled in default dtb, to enable them add this
    line to config.txt before any dtoverlay line:
        dtparam=audio=on,i2c_arm=on,spi=on

- MMC is not included in dtb, add "dtoverlay=mmc” to config.txt to enable it

- Stock U-Boot uses miniUART as console so manual patching of
    include/configs/rpi.h required. Just search for CONFIG_BCM283X_MU_SERIAL
    or CONFIG_PL01X_SERIAL

- ubldr was switched for loader.efi, hence CONFIG_EFI is required for U-Boot.
    Patch include/configs/rpi.h or pass CONFIG_EFI=y to gmake when building
    u-boot. Diane Bruce works on u-boot-rpi3 port that addresses all these
    issues.

- No crochet config for RPi 3 yet

- To save you hassle, here are u-boot.bin, loader.efi, config.txt:
    https://people.freebsd.org/~gonzo/arm/rpi3/
    Copy these files to FAT partition along with firmware mentioned above

- bootcmd for EFI would look like:
    fatload mmc 0 ${loadaddr} loader.efi; bootefi ${loadaddr} 0x100
    where 0x100 is FDT blob address matching the value of device_tree_address
    parameter in config.txt

— 
gonzo


More information about the freebsd-arm mailing list