FreeBSD on the Raspberry Pi 3 (RPI3)
TODO
these entries may be stale as of 20200202
- wifi support (no one assigned, dependent on SDIO support)
- bluetooth support (no one assigned)
Package Repo
Use the standard repos for FreeBSD-12 and 13-CURRENT.
If you want to build your own ports or packagesL if you're building directly on the RPI3, you will definitely want to use either USB storage or NFS. Building on the sdcard will likely wear the sdcard out.
Building
Prerequisites
Crochet now supports building images for the RPI3. There's no more need for the custom build procedures. Use the GENERIC-UP arm64 kernel config.
Plop in the sdcard to the RPI3, attach the serial cable, and watch awesomeness happen.
dmesg
KDB: debugger backends: ddb KDB: current backend: ddb Copyright (c) 1992-2016 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 12.0-CURRENT #0 7945b79(master): Mon Oct 17 20:18:27 EDT 2016 shawn@hbsd-dev-laptop:/usr/obj/arm64.aarch64/scratch/arm64/fbsd/sys/RPI3 arm64 FreeBSD clang version 3.8.0 (tags/RELEASE_380/final 262564) (based on LLVM 3.8.0) WARNING: WITNESS option enabled, expect reduced performance. VT: init without driver. random: unblocking device. random: entropy device external interface kbd0 at kbdmux0 ofwbus0: <Open Firmware Device Tree> simplebus0: <Flattened device tree simple bus> on ofwbus0 local_intc0: <BCM2836 Interrupt Controller> mem 0x40000000-0x400000ff on simplebus0 intc0: <BCM2835 Interrupt Controller> mem 0x7e00b200-0x7e00b3ff irq 16 on simplebus0 generic_timer0: <ARMv7 Generic Timer> irq 37,38,39,40 on simplebus0 Timecounter "ARM MPCore Timecounter" frequency 19200000 Hz quality 1000 Event timer "ARM MPCore Eventtimer" frequency 19200000 Hz quality 1000 bcm_dma0: <BCM2835 DMA Controller> mem 0x7e007000-0x7e007eff irq 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 on simplebus0 mbox0: <BCM2835 VideoCore Mailbox> mem 0x7e00b880-0x7e00b8bf irq 17 on simplebus0 bcmwd0: <BCM2708/2835 Watchdog> mem 0x7e100000-0x7e100027 on simplebus0 gpio0: <BCM2708/2835 GPIO controller> mem 0x7e200000-0x7e2000b3 irq 18,19 on simplebus0 gpiobus0: <OFW GPIO bus> on gpio0 gpioc0: <GPIO controller> on gpio0 uart0: <PrimeCell UART (PL011)> mem 0x7e201000-0x7e201fff irq 20 on simplebus0 uart0: console (115200,n,8,1) spi0: <BCM2708/2835 SPI controller> mem 0x7e204000-0x7e204fff irq 22 on simplebus0 spibus0: <OFW SPI bus> on spi0 spibus0: <unknown card> at cs 0 mode 0spibus0: <unknown card> at cs 1 mode 0sdhci_bcm0: <Broadcom 2708 SDHCI controller> mem 0x7e300000-0x7e3000ff irq 27 on simplebus0 mmc0: <MMC/SD bus> on sdhci_bcm0 iichb0: <BCM2708/2835 BSC controller> mem 0x7e804000-0x7e804fff irq 31 on simplebus0 iicbus0: <OFW I2C bus> on iichb0 bcm283x_dwcotg0: <DWC OTG 2.0 integrated USB controller (bcm283x)> mem 0x7e980000-0x7e98ffff,0x7e006000-0x7e006fff irq 33,34 on simplebus0 usbus0 on bcm283x_dwcotg0 fb0: <BCM2835 VT framebuffer driver> on simplebus0 fbd0 on fb0 VT: initialize with new VT driver "fb". fb0: 656x416(656x416@0,0) 24bpp fb0: fbswap: 1, pitch 1968, base 0x3db33000, screen_size 818688 pmu0: <Performance Monitoring Unit> irq 36 on simplebus0 cpulist0: <Open Firmware CPU Group> on ofwbus0 cpu0: <Open Firmware CPU> on cpulist0 bcm2835_cpufreq0: <CPU Frequency Control> on cpu0 cpu1: <Open Firmware CPU> on cpulist0 cpu2: <Open Firmware CPU> on cpulist0 cpu3: <Open Firmware CPU> on cpulist0 cryptosoft0: <software crypto> Timecounters tick every 1.000 msec usbus0: 480Mbps High Speed USB v2.0 ugen0.1: <DWCOTG> at usbus0 uhub0: <DWCOTG OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0 mmcsd0: 32GB <SDHC 00000 1.0 SN 8B800400 MFG 01/2015 by 27 SM> at mmc0 41.6MHz/4bit/65535-block bcm2835_cpufreq0: ARM 600MHz, Core 250MHz, SDRAM 400MHz, Turbo OFF CPU 0: ARM Cortex-A53 r0p4 affinity: 0 Instruction Set Attributes 0 = <CRC32> Instruction Set Attributes 1 = <0> Processor Features 0 = <AdvSIMD,Float,EL3 32,EL2 32,EL1 32,EL0 32> Processor Features 1 = <0> Memory Model Features 0 = <4k Granule,64k Granule,MixedEndian,S/NS Mem,16bit ASID,1TB PA> Memory Model Features 1 = <> Debug Features 0 = <2 CTX Breakpoints,4 Watchpoints,6 Breakpoints,PMUv3,Debug v8> Debug Features 1 = <0> Auxiliary Features 0 = <0> Auxiliary Features 1 = <0> WARNING: WITNESS option enabled, expect reduced performance. Trying to mount root from ufs:/dev/mmcsd0s2a [rw]... warning: no time-of-day clock registered, system time will not be set accurately uhub0: 1 port with 1 removable, self powered ugen0.2: <vendor 0x0424> at usbus0 uhub1 on uhub0 uhub1: <vendor 0x0424 product 0x9514, class 9/0, rev 2.00/2.00, addr 2> on usbus0 uhub1: MTT enabled uhub1: 5 ports with 4 removable, self powered ugen0.3: <vendor 0x0424> at usbus0 smsc0 on uhub1 smsc0: <vendor 0x0424 product 0xec00, rev 2.00/2.00, addr 3> on usbus0 smsc0: chip 0xec00, rev. 0002 miibus0: <MII bus> on smsc0 ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0 ukphy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ue0: <USB Ethernet> on smsc0 ue0: Ethernet address: b8:27:eb:a4:ed:3f smsc0: chip 0xec00, rev. 0002 ue0: link state changed to DOWN ue0: link state changed to UP
Bugs/Issues
Notes:
- TBA