Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Oct 2016 01:46:20 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Shawn Webb <shawn.webb@hardenedbsd.org>
Cc:        Oleksandr Tymoshenko <gonzo@bluezbox.com>, "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>,  Ross Alexander <rwa@athabascau.ca>
Subject:   Re: Raspberry Pi 3 support
Message-ID:  <CANCZdfoO7e3ZkzGZVUjF9tMqm0t7=RYY2-_JxRV_%2BTs6OOZQFg@mail.gmail.com>
In-Reply-To: <20161019002146.GA57025@mutt-hardenedbsd>
References:  <mailman.62.1476446401.6092.freebsd-arm@freebsd.org> <alpine.BSF.2.20.1610170004010.2176@autopsy.pc.athabascau.ca> <20161017140631.GA77580@mutt-hardenedbsd> <20161018194958.GC22296@mutt-hardenedbsd> <2BC88734-CF40-4702-9483-ADEBA23C11F2@bluezbox.com> <20161019002146.GA57025@mutt-hardenedbsd>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Oct 18, 2016 at 6:21 PM, Shawn Webb <shawn.webb@hardenedbsd.org> wrote:
> On Tue, Oct 18, 2016 at 05:01:23PM -0700, Oleksandr Tymoshenko wrote:
>>
>> > On Oct 18, 2016, at 12:49 PM, Shawn Webb <shawn.webb@hardenedbsd.org> wrote:
>> >
>> > On Mon, Oct 17, 2016 at 10:06:31AM -0400, Shawn Webb wrote:
>> >> On Mon, Oct 17, 2016 at 12:33:27AM -0600, Ross Alexander wrote:
>> >>> On Fri Oct 14 22:10:56 UTC 2016, Shawn Webb wrote:
>> >>>
>> >>>> I've documented the steps I took to install FreeBSD on my RPI3:
>> >>>>     https://wiki.freebsd.org/arm64
>> >>>> I hope I didn't miss anything. It's a wiki, so if I did, feel free to
>> >>>> correct it (or let me know and I can correct it, too).
>> >>>
>> >>> I'm referencing https://wiki.freebsd.org/arm64/rpi3 as it seems
>> >>> to be "the one".  The following notes are meant to be clarifications
>> >>> for people as clueless as myself -
>> >>>
>> >>> You say: "Download all the files from the boot directory in the
>> >>> official Raspberry Pi firmware repository on GitHub."  I read that as
>> >>>
>> >>>     newfs_msdos -F 16 /dev/da0s1
>> >>>     mount -t msdosfs /dev/da0s1 /mnt0
>> >>>     cd /mnt0
>> >>>     svn checkout https://github.com/raspberrypi/firmware/trunk/boot/
>> >>>     mv boot/* .
>> >>>     rm -R boot
>> >>>
>> >>> You say: "Copy $MAKEOBJDIRPREFIX/arm64.aarch64/<svn-checkout-path**>/sys/boot/efi/boot1/boot1.efi
>> >>> to /mnt/EFI/BOOT/bootaa64.efi".  I read that as
>> >>>
>> >>>     mount -t ufs /dev/da0s2a /mnt1
>> >>>     mkdir -p /mnt0/EFI/BOOT
>> >>>     cp /mnt1/boot/boot1.efi /mnt0/EFI/BOOT/bootaa64.efi
>> >>>
>> >>> given that /dev/da0s2a is all the stuff from "Building", "World", and
>> >>> "Kernel" sections and a "make -s installworld installkernel distribution
>> >>> KERNCONF=RPI3 DESTDIR=/mnt1 TARGET=arm64 TARGET_ARCH=aarch64".
>> >>>
>> >>> And hey, guess what: it boots fine :).  No hints as to how many times
>> >>> I got it wrong, though.
>> >>
>> >> Hey Ross,
>> >>
>> >> Good catch. What I'll do is add a "prerequisites" section, instructing
>> >> on how and where to download the required files. Then I'll refactor that
>> >> bit to make better sense.
>> >
>> > Status update for FreeBSD on the RPI3:
>> >
>> > 1) There is now a sysutils/u-boot-rpi3 port. Thanks Diane Bruce!
>> > 2) Using clang 3.9.0 + lld in base, one can build and install some ports
>> > with a few workarounds. boot1.efi, loader.efi, and the kernel need to
>> > come from a non-clang 3.9.0 branch (HEAD).
>> > 3) jemalloc has issues on the RPI3, can be worked around by disabling
>> > tcache via malloc.conf. Diane Bruce ponders whether this could be
>> > related to locking on arm64.
>> > 4) linking dynamically-loaded executables (via installing ports entries)
>> > has issues
>> > 5) SMP support is being actively worked on by Diane Bruce
>> > 6) I need to update the documentation to use the u-boot-rpi3 port
>> > 7) I need to update the documentation to use crochet now that crochet
>> > supports the rpi3 and we have the u-boot-rpi3 port
>> >
>> > All this has been documented in more detail at the RP3 wiki page:
>> >
>> > https://wiki.freebsd.org/arm64/rpi3 <https://wiki.freebsd.org/arm64/rpi3>;
>> >
>> > I'm going to start researching in more detail the jemalloc and dynamic
>> > linking issues this weekend. If someone gets to it sooner than me, then
>> > yay! Otherwise, I'm happy to take a gander.
>> >
>> > Again, if anyone has any suggestions for the documentation, please let
>> > me know.
>>
>> Thanks for documenting this stuff, Shawn. Just for your information -
>> I committed new kernel config that should be used instead of RPI3:
>> GENERIC-UP. I???ve updated wiki page already.

I've updated the nanobsd build.

Is the u-boot-rpi3 port different from the other u-boot ports in
requiring someone to snag firmware in addition to u-boot? Will that be
fixed? Or should I go ahead and fix it when I get to rpi3 in my uboot
cleanup?

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfoO7e3ZkzGZVUjF9tMqm0t7=RYY2-_JxRV_%2BTs6OOZQFg>