--- wikisrc/ports/evbarm/raspberry_pi.mdwn 2017/03/30 15:53:47 1.47
+++ wikisrc/ports/evbarm/raspberry_pi.mdwn 2017/10/21 22:51:21 1.57
@@ -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.
+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.
[[images/raspberrypi.jpg]]
@@ -10,12 +10,53 @@ Initial, limited, Raspberry Pi support w
([Raspberry Pi image](http://www.flickr.com/photos/42325803@N07/8118758647/) by Christopher Lee used under CC-By-2.0 license)
+# What works (and what doesn't yet)
+
+## NetBSD 7 before July, 2017
+
+ - RaspberryPi 1, and 2 (including SMP)
+ - multi-user boot with root on SD card
+ - serial or graphics console (with EDID query / parsing)
+ - DMA controller driver and sdhc(4) support
+ - Audio: works. man page missing.
+ - I²C: works, could use enhancements, man page
+ - GPIO
+ - RNG
+ - SPI: could use enhancements, man page
+ - GPU (VCHIQ) - 3D and video decode. man page missing.
+ - USB (host) - dwctwo(4)
+ - 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
+ - Raspberry Pi 3 new SD host controller driver
+
+## What needs work
+
+ - USB (host); isochronous transfers.
+ - WiFi
+
+# CPU types
+
+Note that one can also use code for earlier models on later models.
+
+ - Raspberry Pi 1 uses "earmv6hf".
+ - Raspberry Pi 2 uses "earmv7hf".
+ - Raspberry Pi 3 uses "earmv7hf". (NetBSD does not yet have 64-bit support.)
+
# Installation
- - The automatic nightly builds on [nyftp.netbsd.org](http://nyftp.netbsd.org/pub/NetBSD-daily/) provide image files that can be used for installation. The Raspberry Pi and Pi 2 ports will be part of the NetBSD 7 release.
+
+ - The automatic nightly builds on [nyftp.netbsd.org](http://nyftp.netbsd.org/pub/NetBSD-daily/) provide image files that can be used for installation. The Raspberry Pi and Pi 2 ports are part of the NetBSD 7 release.
- 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, as of August 6th 2015, 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/201412161700Z/evbarm-earmv6hf/binary/gzimg/)
- - The HEAD/current directory build will be under HEAD/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201508062150Z/evbarm-earmv7hf/binary/gzimg/)
+ - The HEAD/current directory build will be under HEAD/YYYYMMDDHHMMZ/ (for example, http://nyftp.netbsd.org/pub/NetBSD-daily/netbsd-7/201508062150Z/evbarm-earminstv7hf/binary/gzimg/)
- You can build your own version of these images using (for example) './build.sh -m evbarm -a earmv6hf -u release', or './build.sh -m evbarm -a earmv7hf -u release'
- gunzip and dd this img to your sd card. For example,
@@ -32,52 +73,8 @@ Initial, limited, Raspberry Pi support w
In minicom, run "minicom -s" and set hardware flow control to "no"
- - Growing the root file-system (**not required with NetBSD -current after 2015-04-07, or by NetBSD 7 after 2015-08-06**)
- - During the partitioning process, do not delete or format the
- first MSDOS (FAT) partition, as the Raspberry pi firmware is
- hard coded to boot on the SDCAD / 1st MSDOS partition / Firmware
- updates and boot loader.
- - Copy /boot/cmdline.txt to /boot/cmdline.txt.orig
- - Edit /boot/cmdline.txt and add the '-s' flag to the end of the first line of text to boot into single-user mode.
- - For the next steps, the root filesystem mustn't be mounted rw. So reboot, and at the prompt to enter the pathname of shell,
- press return for the default (/bin/sh).
- - At the # prompt, type
-
- "disklabel -i ld0" and press return.
-
- - At the partition> prompt type "A" and press return.
-
- Adjust disklabel sector from 4194304 to 62333952 [n]?
- Type "y" and press return.
-
- - partition> prompt type "a" and press return.
-
- Filesystem type prompt, press return to use the current value (4.2BSD).
- Start offset prompt, press return to use the current value.
- Partition size prompt, type "$" and press return to grow the
- partition to use all available free space.
-
- - partition> prompt type "W" to save the changes to the disklabel.
-
- Confirm this choice by typing "y" at the Label disk prompt.
- Type "Q" and press return to quit disklabel.
+## Installation with sshramdisk image
- - At the # prompt (shell), type
-
- fsck -fy /dev/rld0a
- resize_ffs -y /dev/rld0a
-
- - This may take a few minutes, be patient!
-
- fsck -fy /dev/rld0a
- mount_msdos /dev/ld0e /boot
- mv /boot/cmdline.txt.orig /boot/cmdline.txt
- reboot
-
- - When the system comes back up, the root file-system will have been expanded to
- fill the SD card.
-
-# Installation with sshramdisk image
- You may use the rpi_inst.img.gz file created by an evbarm build.
- Connect Ethernet Cable to RPI.
- After starting DHCP client, SSH login to with user "sysinst", and password "netbsd".
@@ -85,27 +82,16 @@ Initial, limited, Raspberry Pi support w
- Also for after the sysinst is done and the system reboots
- sysinst started!
-# Updating the firmware
+## Installation via ebijun's image
-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.
+Jun Ebihara provides an install image for Raspberry Pi that includes
+packages. It is based on NetBSD-current. This image is typically
+updated every few weeks.
-If you're feeling adventurous (or are the port maintainer), here's what
-to test whenever you try new firmware:
+ - [https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/Image/README](https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/Image/README)
-- Audio
-- OMXPlayer (and [[!template id=man name="vchiq"]])
-- Serial/framebuffer console
-- CPU frequency scaling
+## Updating the kernel
-That goes for 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.
-
-# Updating the kernel
- Build a new kernel, e.g. using build.sh. It will tell you where the ELF version of the kernel is, e.g.
...
@@ -114,10 +100,13 @@ Copy all files except `kernel*.img` into
...
- Besides the "netbsd" kernel in ELF format, there is also a "netbsd.bin" kernel that is in a format that the Raspberry can boot.
- - Depending on your hardware version, copy this either to /boot/kernel.img (old/V1 hardware) or to /boot/kernel7.img (new/V2 hardware)
+ - 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
# Wireless Networking
+
+ Note that the built-in WiFi in the RPI3 is not yet supported.
+
- A Realtek 802.11n USB adaptor configures as urtwn(4).
- Configure with wpa_supplicant in /etc/rc.conf -
@@ -160,20 +149,26 @@ $ retroarch-joyconfig -o gamepad.cfg
$ retroarch --appendconfig gamepad.cfg -L /usr/pkg/lib/libretro/gambatte_libretro.so game.gbc
"""]]
-# What works (NetBSD 7.0+)
- - multi-user boot with root on SD card
- - serial or graphics console (with EDID query / parsing)
- - DMA controller driver and sdhc(4) support
- - Audio: works. man page missing.
- - I²C: works, could use enhancements, man page
- - GPIO
- - RNG
- - SPI: could use enhancements, man page
- - GPU (VCHIQ) - 3D and video decode. man page missing.
- - USB (host) - dwctwo(4)
- - USB Ethernet - usmsc(4)
- - X windows.
- - RaspberryPi 2 SMP
+# Developer notes
-# What needs work
- - USB (host); isochronous transfers.
+These notes are for people working on improvements to RPI support in NetBSD.
+
+## Updating the firmware
+
+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.
+
+If you're feeling adventurous (or are the port maintainer), here's what
+to test whenever you try new firmware:
+
+- Audio
+- OMXPlayer (and [[!template id=man name="vchiq"]])
+- Serial/framebuffer console
+- CPU frequency scaling
+
+That goes for 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.