Annotation of wikisrc/ports/evbarm/allwinner.mdwn, revision 1.94
1.1 wiki 1: [[!meta title="NetBSD/evbarm on Allwinner Technology SoCs"]]
2:
1.61 wiki 3: NetBSD supports many boards based on Allwinner SoCs. Starting with NetBSD 8.0, FDT is used to configure devices. As a result, a large number of boards and configurations can be supported with a single kernel.
1.49 wiki 4:
1.63 wiki 5: <img src="https://pbs.twimg.com/media/DIRGmsOXcAEJu-j.jpg" width="300">
6: <img src="https://pbs.twimg.com/media/DJYA7SCXUAEvEQk.jpg" width="300">
7:
1.18 wiki 8: [[!toc levels=2]]
9:
1.61 wiki 10: # Supported SoCs
11:
12: <table>
13: <thead>
14: <tr>
15: <th>Family</th>
16: <th>SoC</th>
17: <th>NetBSD version</th>
1.62 wiki 18: <th>Example boards</th>
1.61 wiki 19: <th>Notes</th>
20: </tr>
21: </thead>
22: <tbody>
1.62 wiki 23: <tr><td>sun4i</td><td>A10</td><td>8.99.3 and later</td><td><a href="https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-LIME/open-source-hardware">Olimex A10-OLinuXino-LIME</a><td></td></tr>
1.61 wiki 24: <tr><td>sun5i</td><td>A10s</td><td>-</td><td></td></tr>
1.72 wiki 25: <tr><td>sun5i</td><td>A13</td><td>8.99.2 and later</td><td><a href="https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino/open-source-hardware">Olimex A13-OLinuXino</a>, <a href="https://www.olimex.com/Products/OLinuXino/A13/A13-OLinuXino-MICRO/open-source-hardware">Olimex A13-OLinuXino-MICRO</a></td></tr>
1.75 wiki 26: <tr><td>sun5i</td><td>GR8</td><td>8.99.5</td><td><a href="https://getchip.com/pages/chippro">C.H.I.P. Pro</a></td><td></td></tr>
1.62 wiki 27: <tr><td>sun5i</td><td>R8</td><td>8.99.2 and later</td><td><a href="https://getchip.com/pages/chip">C.H.I.P.</a>, <a href="https://getchip.com/pages/pocketchip">Pocket C.H.I.P.</a></td><td></td></tr>
28: <tr><td>sun6i</td><td>A31</td><td>7.0 and later</td><td><a href="http://linux-sunxi.org/Merrii_Hummingbird_A31">Merrii Hummingbird A31</a></td><td></td></tr>
29: <tr><td>sun6i</td><td>A31s</td><td>-</td><td></td><td></td></tr>
30: <tr><td>sun7i</td><td>A20</td><td>7.0 and later</td><td><a href="https://linux-sunxi.org/Cubietech_Cubieboard2">Cubietech Cubieboard 2</a>, <a href="https://linux-sunxi.org/Cubietruck">Cubietech Cubietruck</a>, <a href="http://linux-sunxi.org/LeMaker_Banana_Pi">LeMaker Banana Pi</a></td><td></td></tr>
1.61 wiki 31: <tr><td>sun8i</td><td>A23</td><td>-</td><td></td></tr>
1.72 wiki 32: <tr><td>sun8i</td><td>A33</td><td>-</td><td><a href="https://www.olimex.com/Products/OLinuXino/A33/A33-OLinuXino/open-source-hardware">Olimex A33-OLinuXino</a></td></tr>
1.71 wiki 33: <tr><td>sun8i</td><td>R40</td><td>-</td><td><a href="http://www.banana-pi.org/m2u.html">Sinovoip Banana Pi BPI-M2U</a></td></tr>
1.62 wiki 34: <tr><td>sun8i</td><td>A83T</td><td>8.0 and later</td><td><a href="http://www.banana-pi.org/m3.html">Sinovoip Banana Pi BPI-M3</a></td><td></td></tr>
35: <tr><td>sun8i</td><td>H2+</td><td>8.0 and later</td><td><a href="http://www.orangepi.org/orangepizero/">Xunlong Orange Pi Zero</a></td><td></td></tr>
36: <tr><td>sun8i</td><td>H3</td><td>8.0 and later</td><td><a href="http://nanopi.io/nanopi-neo.html">FriendlyARM NanoPi NEO</a>, <a href="http://www.orangepi.org/orangepiplus2e/">Xunlong Orange Pi Plus 2E</a></td><td></td></tr>
1.73 wiki 37: <tr><td>sun8i</td><td>V3s</td><td>-</td><td><a href="https://www.indiegogo.com/projects/licheepi-zero-6-extensible-linux-module-on-finger-wifi-diy#/">Lichee Pi Zero</a></td><td></td></tr>
1.62 wiki 38: <tr><td>sun9i</td><td>A80</td><td>8.0 and later</td><td><a href="http://linux-sunxi.org/Cubietech_Cubieboard4">Cubietech Cubieboard 4</a></td><td></td></tr>
1.86 wiki 39: <tr><td>sun50i</td><td>A64</td><td>8.99.2 and later</td><td><a href="https://www.pine64.org/?page_id=1194">Pine64</a>, <a href="https://www.pine64.org/?page_id=3707">Pinebook</a></td><td></td></tr>
40: <tr><td>sun50i</td><td>H5</td><td>8.99.4 and later</td><td><a href="http://www.friendlyarm.com/index.php?route=product/product&path=69&product_id=180">FriendlyARM NanoPi NEO2, <a href="http://www.friendlyarm.com/index.php?route=product/product&path=69&product_id=196">FriendlyARM NanoPi NEO Plus2</a></td><td></td></tr>
1.82 wiki 41: <tr><td>sun50i</td><td>H6</td><td>8.99.14 and later</td><td><a href="http://www.orangepi.org/OrangePiOneplus/">Orange Pi One Plus</a>, <a href="https://www.pine64.org/?product_cat=pine-h64-boards">Pine H64</a></td></tr>
1.61 wiki 42: </tbody>
43: </table>
44:
1.1 wiki 45:
46: # Supported hardware
1.61 wiki 47:
1.92 wiki 48: Please refer to the [32-bit](https://nxr.netbsd.org/xref/src/sys/arch/evbarm/conf/SUNXI) or [64-bit](https://nxr.netbsd.org/xref/src/sys/arch/evbarm/conf/GENERIC64) kernel configs for the most up-to-date list of supported hardware.
1.64 wiki 49:
50: <table>
51: <thead>
52: <tr>
53: <th>Device</th>
54: <th>Supported</th>
55: <th>Notes</th>
56: </tr>
57: </thead>
58: <tbody>
1.89 wiki 59: <tr><td>Audio codec</td><td>Yes</td><td>Supported on sun4i, sun5i, sun6i, sun7i, sun8i-h2+, sun8i-h3, sun50i-h5, sun50i-a64</td></tr>
1.91 wiki 60: <tr><td>CAN controller</td><td>Yes</td><td></td></tr>
1.66 wiki 61: <tr><td>Crypto engine</td><td>-</td><td></td></tr>
62: <tr><td>CSI</td><td>-</td><td></td></tr>
1.64 wiki 63: <tr><td>DMA</td><td>Yes</td><td></td></tr>
1.80 wiki 64: <tr><td>Fast Ethernet (sun4i/sun5i/sun7i)</td><td>Yes</td><td></td></tr>
1.64 wiki 65: <tr><td>Framebuffer</td><td>Yes</td><td>Uses simplefb configured by bootloader</td></tr>
66: <tr><td>Gigabit Ethernet (sun6i/sun7i/sun9i)</td><td>Yes</td><td></td></tr>
67: <tr><td>Gigabit Ethernet (sun8i/sun50i)</td><td>Yes</td><td></td></tr>
68: <tr><td>GPIO</td><td>Yes</td><td></td></tr>
1.66 wiki 69: <tr><td>GPU</td><td>-</td><td></td></tr>
1.64 wiki 70: <tr><td>I2C</td><td>Yes</td><td></td></tr>
1.89 wiki 71: <tr><td>I2S/PCM</td><td>Experimental</td><td></td></tr>
1.64 wiki 72: <tr><td>IR transceiver</td><td>-</td><td></td></tr>
1.76 wiki 73: <tr><td>NAND</td><td>Yes</td><td></td></tr>
1.64 wiki 74: <tr><td>P2WI/RSB</td><td>Yes</td><td></td></tr>
1.82 wiki 75: <tr><td>PCIe</td><td>-</td><td>H6</td></tr>
1.87 wiki 76: <tr><td>PWM</td><td>Yes</td><td></td></tr>
1.65 wiki 77: <tr><td>RTC</td><td>Yes</td><td></td></tr>
78: <tr><td>SATA</td><td>Yes</td><td></td></tr>
1.64 wiki 79: <tr><td>SD/MMC</td><td>Yes</td><td></td></tr>
1.92 wiki 80: <tr><td>SMP</td><td>Yes</td><td>PSCI</td></tr>
1.66 wiki 81: <tr><td>SPDIF</td><td>-</td><td></td></tr>
1.88 wiki 82: <tr><td>SPI</td><td>Yes</td><td></td></tr>
1.67 wiki 83: <tr><td>Thermal sensors</td><td>Yes</td><td></td></tr>
1.68 wiki 84: <tr><td>Touch screen</td><td>Yes</td><td></td></tr>
1.64 wiki 85: <tr><td>UART</td><td>Yes</td><td></td></tr>
86: <tr><td>USB 2.0</td><td>Yes</td><td></td></tr>
1.83 wiki 87: <tr><td>USB 3.0</td><td>Yes</td><td></td></tr>
1.64 wiki 88: <tr><td>USB OTG</td><td>Experimental</td><td></td></tr>
89: <tr><td>Watchdog timer</td><td>Yes</td><td></td></tr>
90: </tbody>
91: </table>
1.14 wiki 92:
1.2 wiki 93: # Installation
94:
1.85 wiki 95: - Download or build **armv7.img** (32-bit) or **arm64.img** (64-bit) from NetBSD -current
1.61 wiki 96: - Write the image to disk: **dd if=armv7.img of=/dev/rld0d bs=1m conv=sync**
1.93 leot 97: - Install a board-specific U-Boot (2017.07 or later) from pkgsrc to the SD card
1.94 ! leot 98: (the `u-boot-sunxi-with-spl.bin`-s are provided by `sysutils/u-boot-<boardname>` packages):
1.93 leot 99: **dd if=/usr/pkg/share/u-boot/<boardname>/u-boot-sunxi-with-spl.bin of=/dev/rld0d bs=1k seek=8 conv=sync**
1.81 wiki 100:
101: # Tips and tricks
102:
103: ## Video overscan compensation
104:
105: On some television models, the borders of the screen may be cut off. If your television doesn't have an option to disable overscan, you can enable overscan compensation by entering the following commands at the U-Boot prompt:
106:
107: setenv video-mode sunxi:1280x720-24,overscan_x=32,overscan_y=20
108: saveenv
109: reset
1.90 wiki 110:
111: ## Pinebook function keys
112:
113: The sleep (Fn+Esc), home (Fn+F1), volume down (Fn+F3), volume up (Fn+F4), and mute (Fn+F5) keys on the keyboard are mapped to uhid(4) devices.
114:
115: Create the following config file:
116:
117: [[!template id=filecontent name="/etc/usbhidaction.conf" text="""
118: Consumer:Consumer_Control.Consumer:Volume_Up 1
119: mixerctl -n -w outputs.master++
120: Consumer:Consumer_Control.Consumer:Volume_Down 1
121: mixerctl -n -w outputs.master--
122: Consumer:Consumer_Control.Consumer:Mute 1
123: mixerctl -n -w outputs.mute++
124: Consumer:Consumer_Control.Consumer:AC_Home 1
125: /etc/powerd/scripts/hotkey_button AC_Home pressed
126: Generic_Desktop:System_Control.Generic_Desktop:System_Sleep 1
127: /etc/powerd/scripts/sleep_button System_Sleep pressed
128: """]]
129:
130: Then start two copies of usbhidaction:
131:
132: [[!template id=programlisting text="""
133: # /usr/bin/usbhidaction -c /etc/usbhidaction.conf -f /dev/uhid0 -i -p /var/run/usbhidaction-uhid0.pid
134: # /usr/bin/usbhidaction -c /etc/usbhidaction.conf -f /dev/uhid1 -i -p /var/run/usbhidaction-uhid1.pid
135: """]]
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb