--- wikisrc/ports/evbarm/raspberry_pi.mdwn 2020/10/15 19:27:27 1.131
+++ wikisrc/ports/evbarm/raspberry_pi.mdwn 2020/10/16 17:29:39 1.137
@@ -18,7 +18,7 @@ The HOWTO is written for what works on f
"Works" is primarily relative to the earmv6hf-el and earmv7hf-el CPU targets (32-bit).
-## NetBSD 7 and NetBSD 8
+## NetBSD 8
- RPI1, RPI2, RPI2-1.2, RPI3, RPI3+ (except RPI3 builtin WiFi and bluetooth)
- RPI0 and RPI0W are expected to work (without WiFi, and one needs fdt files \todo where from?)
@@ -51,16 +51,17 @@ The HOWTO is written for what works on f
These items do not work in the sense that they simply function after a standard install. Being listed here implies only that there has been list traffic that implies that after taking a bunch of steps (e.g. new firmware, new dtbs, enabling drivers, applying patches), one can end up with the feature working. The HOWTO explicitly refrains from describing these steps because they are ephemeral. However, the fact that list traffic indicates success is possible is a clue that proper support is on the horizon, and that is notable.
- RPI3 and RPI0W builtin WiFi
+ - RPI4
## What needs documenting if it works
+ - (Everything listed in the previous section.)
- CM1
- CM3
- CM3lite
## What needs work
- - RPI4 (as of 2020-01, still does not work in current)
- USB (host); isochronous transfers.
- RPI0W Bluetooth Low Energy (probably)
@@ -80,11 +81,7 @@ In theory the code compiled for earmv7hf
While the evbarm port has "eb" variants (for big-endian mode), the RPI systems do not support eb and these variants will not work. Systems built for older CPU architectures (earm, earmv4, earmv5) are not expected to work on RPI.
-The RPI2-1.2 and RPI3 have an armv8 CPU that supports aarch64 (64-bit
-mode) in addition to aarch32 (regular 32-bit ARM). This is supported,
-from 9 onwards, by the "aarch64" MACHINE_ARCH of evbarm, also
-available in build.sh via the alias evbarm64. This is also
-referred to as [[NetBSD/aarch64|aarch64]].
+The RPI2-1.2, RPI3 and RPI4 have an armv8 CPU that supports aarch64 (64-bit mode) in addition to aarch32 (regular 32-bit ARM). This is supported, from 9 onwards, by the "aarch64" MACHINE_ARCH of evbarm, also available in build.sh via the alias evbarm64. This is also referred to as [[NetBSD/aarch64|aarch64]].
# Installation
@@ -119,7 +116,7 @@ Consider setting RELEASEMACHINEDIR if yo
### NetBSD autobuild HTTPS/FTP servers
-NetBSD provides nightly builds on [nycdn.netbsd.org](https://nycdn.netbsd.org/pub/NetBSD-daily/). The next directory level is the branch being built (netbsd-7, netbsd-8, HEAD, and more), plus optionally things like compiler type. It is followed by date/time, e.g. "HEAD/201811051650Z"; once a build is complete the symlink "latest" is adjusted to point to it. The next level is "${MACHINE}-${MACHINE_ARCH}", e.g. "evbarm-earmv7hf", and multiple combinations are provided.
+NetBSD provides nightly builds on [nycdn.netbsd.org](https://nycdn.netbsd.org/pub/NetBSD-daily/). The next directory level is the branch being built (netbsd-8, netbsd-9, HEAD, and more), plus optionally things like compiler type. It is followed by date/time, e.g. "HEAD/201811051650Z"; once a build is complete the symlink "latest" is adjusted to point to it. The next level is "${MACHINE}-${MACHINE_ARCH}", e.g. "evbarm-earmv7hf", and multiple combinations are provided.
An example URL, arguably the standard approach for first-time NetBSD/RPI users, is
@@ -177,6 +174,13 @@ every few weeks.
-
+## Boot Process
+
+https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md
+
+Note that generally, a single dtb is loaded. On NetBSD 9, the dtb
+file for the system is loaded by the bootloader (in flash).
+
## Configuring 802.11
After installation, the Ethernet will function as on any other NetBSD system; simply enable dhcpcd or configure a static address. USB WiFi devices will also function as on any other NetBSD system; in addition to dhcpcd or static, configure and enable wpa_supplicant.
@@ -221,16 +225,28 @@ The program vcgencmd, referenced in the
## Updating dtb files
+### NetBSD 8
+
+On NetBSD 8, dtb files are not used. (\todo Really?)
+
+### NetBSD 9
+
(This is harder than it should be.)
-Build a release. gunzip the armv7.img, vnconfig it, and mount the MSDOS partition (e) e.g. on /mnt. Copy the dtb files from /mnt/*.dtb to /boot, and from /mnt/dtb/*.dtb to /mnt/dtb.
+Build a release. gunzip the armv7.img, vnconfig it, and mount the MSDOS partition (e) e.g. on /mnt. Copy the dtb files from /mnt/foo.dtb to /boot, and from /mnt/dtb/foo.dtb to /boot/dtb.
+
+It seems that some systems, including RPI, require dtb files in /boot, and some expect them in /boot/dtb.
-It seems that some systems, including RPI, require dtb files in /boot, and some expect them in /boot/dtb.
+\todo Explain if you only really need the right one for your system type.
\todo Explain how one is supposed to be able to update these from the dtb files in releasedir/binary/kernel, or fix it to have the same structure.
+### NetBSD current
+
+When updating, ensure that /boot is mounted and that you unpack the dtb set.
+
## Updating the firmware
-It is highly likely that running NetBSD from a given branch X with firmware from a branch Y < X will not go well. It is unclear if firmware from a branch Y > X will work. It is standard practice to use firmware from the right branch.
+It is highly likely that running NetBSD from a given branch X with firmware from a branch Y < X will not go well. It is unclear if firmware from a branch Y > X will work. It is standard practice to use firmware from the right branch.
A section below describes the process of updating NetBSD's copy of the firmware from upstream, with testing, by NetBSD developers. This section is about updating a system's firmware from the firmware in a version of NetBSD.
@@ -270,11 +286,11 @@ The aarch64 kernel can run aarch32 binar
## Video playback
-Accelerated video playback is supported in NetBSD 7 with the [OMXPlayer](http://pkgsrc.se/multimedia/omxplayer) application and through GStreamer with the [omx](http://pkgsrc.se/multimedia/gst-plugins1-omx) plugin.
+Accelerated video playback is supported with the [OMXPlayer](http://pkgsrc.se/multimedia/omxplayer) application and through GStreamer with the [omx](http://pkgsrc.se/multimedia/gst-plugins1-omx) plugin.
## OpenGL ES
-Accelerated OpenGL ES is supported in NetBSD 7. The GL ES client libraries are included with the [misc/raspberrypi-userland](http://pkgsrc.se/misc/raspberrypi-userland) package.
+Accelerated OpenGL ES is supported. The GL ES client libraries are included with the [misc/raspberrypi-userland](http://pkgsrc.se/misc/raspberrypi-userland) package.
## Quake 3