Annotation of wikisrc/ports/evbarm/allwinner.mdwn, revision 1.96
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:
1.95 leot 101: If your SoC has a SATA controller and you would like to install on
102: an hard disk and use a SD card only for u-boot please give a look
1.96 ! leot 103: to
! 104: [[NetBSD/evbarm install via sysinst(8) on a SATA hard disk, USB stick or (u)SD card|ports/evbarm/install_using_sysinst]].
1.95 leot 105:
1.81 wiki 106: # Tips and tricks
107:
108: ## Video overscan compensation
109:
110: 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:
111:
112: setenv video-mode sunxi:1280x720-24,overscan_x=32,overscan_y=20
113: saveenv
114: reset
1.90 wiki 115:
116: ## Pinebook function keys
117:
118: 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.
119:
120: Create the following config file:
121:
122: [[!template id=filecontent name="/etc/usbhidaction.conf" text="""
123: Consumer:Consumer_Control.Consumer:Volume_Up 1
124: mixerctl -n -w outputs.master++
125: Consumer:Consumer_Control.Consumer:Volume_Down 1
126: mixerctl -n -w outputs.master--
127: Consumer:Consumer_Control.Consumer:Mute 1
128: mixerctl -n -w outputs.mute++
129: Consumer:Consumer_Control.Consumer:AC_Home 1
130: /etc/powerd/scripts/hotkey_button AC_Home pressed
131: Generic_Desktop:System_Control.Generic_Desktop:System_Sleep 1
132: /etc/powerd/scripts/sleep_button System_Sleep pressed
133: """]]
134:
135: Then start two copies of usbhidaction:
136:
137: [[!template id=programlisting text="""
138: # /usr/bin/usbhidaction -c /etc/usbhidaction.conf -f /dev/uhid0 -i -p /var/run/usbhidaction-uhid0.pid
139: # /usr/bin/usbhidaction -c /etc/usbhidaction.conf -f /dev/uhid1 -i -p /var/run/usbhidaction-uhid1.pid
140: """]]
1.95 leot 141:
142:
143: # Links
144:
1.96 ! leot 145: - [[NetBSD/evbarm install via sysinst(8) on a SATA hard disk, USB stick or (u)SD card|ports/evbarm/install_using_sysinst]]
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb