--- wikisrc/ports/evbarm/raspberry_pi.mdwn 2018/10/30 13:49:05 1.74 +++ wikisrc/ports/evbarm/raspberry_pi.mdwn 2018/10/30 14:19:58 1.75 @@ -153,9 +153,25 @@ A section below describes the process of TODO: Explain where the firmware is in the source tree, and if it is in the installed system image (such as /usr/mdec). Explain any particular cautions. +## Booting + +The device boots by finding a file "bootcode.bin". The primary location is a FAT32 partition on the uSD card, and an additional location is on a USB drive. See the [[upstream documentation on booting|https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/]] and read all the subpages. + +The standard approach is to use a uSD card, with a fdisk partition table containing a FAT32 partition marked active, and a NetBSD partition. The NetBSD partition will then contain a disklabel, pointing to an FFS partition (a), a swap paritiion (b) and the FAT32 boot partition mounted as /boot (e). The file /boot/cmdline.txt has a line to set the root partition. + +One wrinkle in the standard approach is that the disk layout is "boot swap /", but the NetBSD fdisk partition starts at the location of /. The / partition can hold a disklabel, while swap cannot. It is normal to have swap after /, but this arrangement permits growing / on first boot, for the typical case where a larger uSD is used. + +An alternate approach is to have the boot FAT32 partition as above, but to have the entire system including root on an external disk. This is configured by changing root=ld0a to root=sd0a or root=dk0 (depending on disklabel/GPT). Besides greateer space, part of the point is to avoid writing to the uSD card. + +A third approach is to configure USB host booting (default off except on Pi 3+) see the upstream documentation) and have the boot partition also on the external device. In this case the external device must be configured via fdisk because the hardware's first-stage boot does not have GPT support. \todo Explain if this has been observed to work. + +\todo Explain USB enumeration and how to ensure that the correct boot and root devices are found if one has e.g. a small SSD for the system and a big disk. + +\todo Explain if the procedure to program USB host boot mode can function under NetBSD; the examples on the web use Raspbian. + # Wireless Networking - Note that the built-in WiFi in the RPI3 is not yet supported. +Note that the built-in WiFi in the RPI3 is not yet supported. USB WiFi interfaces (that work on NetBSD in general) should all work. - A Realtek 802.11n USB adaptor configures as urtwn(4). - Configure with wpa_supplicant in /etc/rc.conf -