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