Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2016 09:42:47 -0700
From:      Oleksandr Tymoshenko <gonzo@bluezbox.com>
To:        Shawn Webb <shawn.webb@hardenedbsd.org>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Raspberry Pi 3 support
Message-ID:  <761781BA-6EDE-4C09-978C-6D312E6F1FAB@bluezbox.com>
In-Reply-To: <20161014160442.GA5906@mutt-hardenedbsd>
References:  <5F2E0B05-0A54-4BD6-9CFE-4DFF5FEF07DC@bluezbox.com> <20161014160442.GA5906@mutt-hardenedbsd>

next in thread | previous in thread | raw e-mail | index | archive | help

> On Oct 14, 2016, at 9:04 AM, Shawn Webb <shawn.webb@hardenedbsd.org> =
wrote:
>=20
> On Thu, Oct 13, 2016 at 10:43:31PM -0700, Oleksandr Tymoshenko wrote:
>> Hello,
>>=20
>> 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:
>>=20
>> - SD card layout is the same as for RPi or RPi 2
>>=20
>> - 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
>>=20
>> - boot mode on RPi 3 is controlled by arm_control parameter in =
config.txt,
>>    set it to 0x200 to boot in 64-bit mode
>>=20
>> - To reduce mess with consoles for now only PL01x UART is used (old =
one,=20
>>    not miniUART) in all boot component: firmware, U-Boot, kernel.
>>=20
>> - On RPi 3 firmware defaults to miniUART, use =
"dtoverlay=3Dpi3-disable-bt??? in
>>    config.txt to revert to old behaviour
>>=20
>> - A lot of peripherals are disabled in default dtb, to enable them =
add this
>>    line to config.txt before any dtoverlay line:
>>        dtparam=3Daudio=3Don,i2c_arm=3Don,spi=3Don
>>=20
>> - MMC is not included in dtb, add "dtoverlay=3Dmmc??? to config.txt =
to enable it
>>=20
>> - 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
>>=20
>> - ubldr was switched for loader.efi, hence CONFIG_EFI is required for =
U-Boot.
>>    Patch include/configs/rpi.h or pass CONFIG_EFI=3Dy to gmake when =
building
>>    u-boot. Diane Bruce works on u-boot-rpi3 port that addresses all =
these
>>    issues.
>>=20
>> - No crochet config for RPi 3 yet
>>=20
>> - 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
>>=20
>> - 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
>=20
> Thank you so much for the hard work! It's great to see the progress
> being made and I'm so excited!
>=20
> 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.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?761781BA-6EDE-4C09-978C-6D312E6F1FAB>