--- wikisrc/ports/evbarm/raspberry_pi.mdwn 2017/10/31 11:32:36 1.66 +++ wikisrc/ports/evbarm/raspberry_pi.mdwn 2018/10/30 01:49:15 1.73 @@ -2,7 +2,7 @@ This page attempts to document and coordinate efforts towards NetBSD/evbarm on [Raspberry Pi](http://www.raspberrypi.org). All board variants are supported. -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. +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 the netbsd-7 branch after mid 2018.) [[images/raspberrypi.jpg]] @@ -12,9 +12,10 @@ Initial, limited, Raspberry Pi support w # What works (and what doesn't yet) -## NetBSD 7 before July, 2017 +## NetBSD 7 and NetBSD 8 - RaspberryPi 1, and 2 (including SMP) + - Raspberry Pi 3 (excluding WiFi and bluetooth) - multi-user boot with root on SD card - serial or graphics console (with EDID query / parsing) - DMA controller driver and sdhc(4) support @@ -28,10 +29,6 @@ Initial, limited, Raspberry Pi support w - USB Ethernet - usmsc(4) - X windows. -## NetBSD 7 after July, 2017 and NetBSD 8 - - - Raspberry Pi 3 (excluding WiFi and bluetooth) - ## NetBSD current - Raspberry Pi 3 bluetooth @@ -41,7 +38,6 @@ Initial, limited, Raspberry Pi support w - USB (host); isochronous transfers. - WiFi - - Raspberry Pi 3 in 64-bit mode. (Note that this will be provided by the evbarm64 port, rather than evbarm.) # CPU types @@ -51,6 +47,8 @@ Note that one can also use code for earl - Raspberry Pi 2 uses "earmv7hf". - Raspberry Pi 3 uses "earmv7hf". +See also [[NetBSD/aarch64|aarch64]] for running the Pi 2/3 in 64-bit mode. + # Installation ## SD card structure @@ -63,7 +61,7 @@ A 2 GB card is the smallest workable siz ## Choosing a version -First, decide if you want to install a formal release (7.1), a stable branch build (netbsd-7, netbsd-8), or NetBSD-current. Note that 7.1 predates Raspberry Pi 3 support. For people who don't know how to choose among those, netbsd-8 is probably best. +First, decide if you want to install a formal release (7.2 or 8.0), a stable branch build (netbsd-7, netbsd-8), or NetBSD-current. For people who don't know how to choose among those, 8.0 or netbsd-8 is probably best. See also "ebijun's image", below, which is NetBSD-current and includes packages. @@ -86,9 +84,9 @@ Getting sources and building a release w NetBSD provides nightly builds on [nyftp.netbsd.org](http://nyftp.netbsd.org/pub/NetBSD-daily/). These are equivalent to building yourself. - The 'evbarm-earmv6hf/binary/gzimg/' directory contains an rpi.img file that can be used as a single image for both boards. - - The 'evbarm-earmv7hf/binary/gzimg/' directory contains an armv7.img file that is optimized for Raspberry Pi 2. - - The stable build directory will be under netbsd-7/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201710201440Z/evbarm-earmv6hf/binary/gzimg) - - The not-yet-released stable build directory will be under netbsd-8/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-8/201710211010Z/evbarm-earmv6hf/binary/gzimg/) + - The 'evbarm-earmv7hf/binary/gzimg/' directory contains an armv7.img file that is optimized for Raspberry Pi 2/3. + - The old stable build directory will be under netbsd-7/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201710201440Z/evbarm-earmv6hf/binary/gzimg) + - The stable build directory will be under netbsd-8/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-8/201710211010Z/evbarm-earmv6hf/binary/gzimg/) - The HEAD/current directory build will be under HEAD/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201710202210Z/evbarm-earmv7hf/binary/gzimg/) ## Preparing a uSD card @@ -96,7 +94,7 @@ NetBSD provides nightly builds on [nyftp Once you have rpi.img.gz (or rpi_inst), put it on a uSD card using gunzip and dd, for example: - gunzip rpi.img.gz - - dd if=rpi.i7mg of=/dev/disk1 + - dd if=rpi.img of=/dev/disk1 ### Serial Console @@ -143,10 +141,16 @@ every few weeks. /Users/feyrer/work/NetBSD/cvs/src-current/obj.evbarm-Darwin-XXX/sys/arch/evbarm/compile/RPI2/netbsd ... - - Besides the "netbsd" kernel in ELF format, there is also a "netbsd.bin" kernel that is in a format that the Raspberry can boot. + - Besides the "netbsd" kernel in ELF format, there is also a "netbsd.img" (for current) or "netbsd.bin" (for 7 and 8) kernel that is in a format that the Raspberry can boot. - Depending on your hardware version, copy this either to /boot/kernel.img (First generation Pi, Pi Zero hardware) or to /boot/kernel7.img (Pi 2, Pi 3 hardware) - reboot +## Updating the firmware + +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. + +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. + # Wireless Networking Note that the built-in WiFi in the RPI3 is not yet supported. @@ -197,22 +201,21 @@ $ retroarch --appendconfig gamepad.cfg - These notes are for people working on improvements to RPI support in NetBSD. -## Updating the firmware +## Updating the firmware version in the NetBSD sources + +(Note that trying new firmware may result in a non-bootable system, so +be prepared to recover the bootable media with another system.) -You probably don't want to do this. Firmware updates can break things, -and the latest firmware that's been tested is already included in the -NetBSD build you installed. +Upstream firmware releases are +[on GitHub](https://github.com/raspberrypi/firmware/releases). +Copy all files except `kernel*.img` into `/boot` and reboot. -If you're feeling adventurous (or are the port maintainer), here's what -to test whenever you try new firmware: +New firmware should pass all of the following tests before being committed to NetBSD. - Audio - OMXPlayer (and [[!template id=man name="vchiq"]]) - Serial/framebuffer console - CPU frequency scaling -That goes for all of `rpi[0123]`. +Tests shoudl be run on all of `rpi[0123]`. -Upstream firmware releases are -[on GitHub](https://github.com/raspberrypi/firmware/releases). -Copy all files except `kernel*.img` into `/boot` and reboot.