Raspberry Pi 3 support

Oleksandr Tymoshenko gonzo at bluezbox.com
Fri Oct 14 16:42:51 UTC 2016


> On Oct 14, 2016, at 9:04 AM, Shawn Webb <shawn.webb at hardenedbsd.org> wrote:
> 
> On Thu, Oct 13, 2016 at 10:43:31PM -0700, Oleksandr Tymoshenko wrote:
>> 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
> 
> Thank you so much for the hard work! It's great to see the progress
> being made and I'm so excited!
> 
> If I were to set up an sdcard manually. What kind of partition layout
> would I need? How would I install U-Boot to it?

SD card layout is: one FAT partition for firmware/u-boot, one large partition for BSD.
Something like:

 # gpart create -s MBR da0
 # gpart add -t '\!12' -a 63 -s 50m da0
 # gpart set -a active -i 1 da0
 # newfs_msdos -F 16 /dev/da0s1
 # gpart add -t freebsd -a 4m da0
 # gpart create -s BSD da0s2
 # gpart add -t freebsd-ufs da0s2
 # newfs -U da0s2a

(source: https://wiki.freebsd.org/FreeBSD/arm/Raspberry%20Pi%202%20image <https://wiki.freebsd.org/FreeBSD/arm/Raspberry%20Pi%202%20image>)

To install U-Boot just copy firmware files from github, u-boot.bin, loader.efi, config.txt
to FAT partition.


More information about the freebsd-arm mailing list