--- wikisrc/ports/evbarm/raspberry_pi.mdwn 2018/11/09 01:26:42 1.112 +++ wikisrc/ports/evbarm/raspberry_pi.mdwn 2018/11/11 16:48:03 1.113 @@ -1,6 +1,6 @@ [[!meta title="NetBSD/evbarm on Raspberry Pi"]] -This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). All [board variants](https://en.wikipedia.org/wiki/Raspberry_Pi#Specifications) are supported. We use e.g. "RPI2" to refer to "Raspberry Pi 2" to save precious bytes on this page. +This page describes the NetBSD/evbarm port on [Raspberry Pi](http://www.raspberrypi.org) hardware. All [board variants](https://en.wikipedia.org/wiki/Raspberry_Pi#Specifications) are believed supported, and specific boards know to work are listed. We use e.g. "RPI2" to refer to "Raspberry Pi 2" to save precious bytes on this page. Initial, limited, Raspberry Pi support was introduced in NetBSD 6.0. NetBSD 7.0 adds complete support for the board, along with introducing support for the quad-core Raspberry Pi 2 board. Raspberry Pi 3 support was added for NetBSD 8, and backported to NetBSD 7 in July of 2017. (This page assumes those using NetBSD 7 are using 7.2 or later, but note that everyone uses 8 or -current.) @@ -48,6 +48,7 @@ Initial, limited, Raspberry Pi support w - USB (host); isochronous transfers. - RPI3, RPI0W builtin WiFi - RPI0W Bluetooth Low Energy (probably) + - aarch64 support is evolving very rapidly, and not yet recommended for production, largely because one must run -current. # CPU types @@ -55,7 +56,8 @@ Initial, limited, Raspberry Pi support w - RPI0 uses "earmv6hf". - RPI0W uses "earmv6hf". - RPI2 uses "earmv7hf". - - RPI3 uses "earmv7hf". + - RPI2-1.2 uses "earmv7hf" or "aarch64" (armv8 CPU hardware) + - RPI3 uses "earmv7hf" or "aarch64" (armv8 CPU hardware) Note that one can run a build of earmv6hf on the 2 and 3. There will still be a kernel7, built to use the 2/3 hardware, but with the armv6 instruction set. @@ -63,7 +65,11 @@ 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 with older CPU architectures (earm, earmv4, earmv5) are not expected to work on RPI. -See also [[NetBSD/aarch64|aarch64]] for running the RPI2-1.2 and RPI3/RPI3+ in 64-bit mode. +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, +in -current only, by the "aarch64" MACHINE_ARCH of evbarm, also +available in build.sh via the alias evbarm64. This is sometimes +referred to as [[NetBSD/aarch64|aarch64]]. # Installation @@ -214,6 +220,12 @@ A third approach, workable on the Pi 3 o There is no well-defined USB enumeration order, so the preferred approach if one has multiple USB mass storage devices is to use named wedges in both fstab and cmdline.txt. +## Split-mode aarch32/aarch64 + +\todo Verify this, and add any necessary cautions about boot code. + +The aarch64 kernel can run aarch32 binaries, so one can boot a aarch64 kernel on a system with aarch32 userland. + # X11 and GPU ## Video playback