Annotation of wikisrc/ports/evbarm/allwinner.mdwn, revision 1.105
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.102 wiki 23: <tr><td>sun4i</td><td>A10</td><td>9.0</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.102 wiki 25: <tr><td>sun5i</td><td>A13</td><td>9.0</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>
26: <tr><td>sun5i</td><td>GR8</td><td>9.0</td><td><a href="https://getchip.com/pages/chippro">C.H.I.P. Pro</a></td><td></td></tr>
27: <tr><td>sun5i</td><td>R8</td><td>9.0</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</td><td><a href="http://linux-sunxi.org/Merrii_Hummingbird_A31">Merrii Hummingbird A31</a></td><td></td></tr>
1.62 wiki 29: <tr><td>sun6i</td><td>A31s</td><td>-</td><td></td><td></td></tr>
1.102 wiki 30: <tr><td>sun7i</td><td>A20</td><td>7.0</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.102 wiki 34: <tr><td>sun8i</td><td>A83T</td><td>8.0</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</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</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.102 wiki 38: <tr><td>sun9i</td><td>A80</td><td>8.0</td><td><a href="http://linux-sunxi.org/Cubietech_Cubieboard4">Cubietech Cubieboard 4</a></td><td></td></tr>
1.105 ! mrg 39: <tr><td>sun50i</td><td>A64</td><td>9.0</td><td><a href="https://www.pine64.org/devices/single-board-computers/pine-a64/">Pine64</a>, <a href="https://www.pine64.org/pinebook/">Pinebook</a></td><td></td></tr>
1.102 wiki 40: <tr><td>sun50i</td><td>H5</td><td>9.0</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.105 ! mrg 41: <tr><td>sun50i</td><td>H6</td><td>9.0</td><td><a href="http://www.orangepi.org/OrangePiOneplus/">Orange Pi One Plus</a>, <a href="https://www.pine64.org/pine-h64-ver-b/">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.97 wiki 48: Please refer to the [GENERIC (32-bit)](https://nxr.netbsd.org/xref/src/sys/arch/evbarm/conf/GENERIC) or [GENERIC64 (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.101 wiki 80: <tr><td>SMP</td><td>Yes</td><td></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.102 wiki 95: - Download or build **armv7.img** (32-bit) or **arm64.img** (64-bit) from NetBSD 9.0 or later
1.61 wiki 96: - Write the image to disk: **dd if=armv7.img of=/dev/rld0d bs=1m conv=sync**
1.97 wiki 97: - Install a board-specific U-Boot (2018.05 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:
1.98 wiki 142: ## Pinebook keyboard
143:
144: The new 11" 1080p model has a slightly different keyboard layout to the 14".
145: Using wscons it works perfectly, but using X the \ key next to left shift will display > when pressed.
146: To solve this, you need to change the keyboard layout to altgr-intl. This can be done system wide by creating the file:
147:
148: [[!template id=filecontent name="/etc/X11/xorg.conf.d/00-system-keyboard.conf" text="""
149: Section "InputDevice"
150: Identifier "Pinebook 1080p keyboard"
151: Driver "kbd"
1.99 wiki 152: Option "XkbLayout" "us"
153: Option "XkbVariant" "altgr-intl"
1.98 wiki 154: EndSection
155: """]]
1.95 leot 156:
1.103 wiki 157: ## Pinebook touchpad
158:
159: To fix jittery touch input on the touchpad, you can adjust the input sensitivity by creating the file:
160:
1.104 wiki 161: [[!template id=filecontent name="/etc/X11/xorg.conf.d/00-system-touchpad.conf" text="""
1.103 wiki 162: Section "InputDevice"
163: Identifier "Pinebook touchpad"
164: Driver "mouse"
165: Option "AccelerationProfile" "2"
166: Option "AdaptiveDeceleration" "1"
167: Option "ConstantDeceleration" "2.4" # Pinebook 14"
168: #Option "ConstantDeceleration" "1.2" # Pinebook 11"
169: EndSection
170: """]]
171:
1.100 wiki 172: ## Pinebook screen
173:
174: X11 currently cannot work out the size of the screen, resulting in a very small DPI on a very small screen.
175: This file configures X to use an 11.6" screen, which results in very readable a DPI of 190.
176:
177: [[!template id=filecontent name="/etc/X11/xorg.conf.d/01-pinebook-11-screen.conf" text="""
178: Section "Monitor"
179: Identifier "Pinebook 11.6 inch monitor"
180: DisplaySize 256.8 144.5 # millimeters, 11.6 inch screen
181: EndSection
182:
183: Section "Screen"
184: Identifier "Default Screen"
185: Monitor "Pinebook 11.6 inch monitor"
186: EndSection
187: """]]
188:
189:
1.95 leot 190: # Links
191:
1.96 leot 192: - [[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