File:  [NetBSD Developer Wiki] / wikisrc / ports / evbarm / allwinner.mdwn
Revision 1.94: download - view: text, annotated - select for diffs
Sat Nov 17 11:44:28 2018 UTC (2 years, 5 months ago) by leot
Branches: MAIN
CVS tags: HEAD
Improve wording.

    1: [[!meta title="NetBSD/evbarm on Allwinner Technology SoCs"]]
    2: 
    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.
    4: 
    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: 
    8: [[!toc levels=2]]
    9: 
   10: # Supported SoCs
   11: 
   12: <table>
   13:   <thead>
   14:     <tr>
   15:       <th>Family</th>
   16:       <th>SoC</th>
   17:       <th>NetBSD version</th>
   18:       <th>Example boards</th>
   19:       <th>Notes</th>
   20:     </tr>
   21:   </thead>
   22:   <tbody>
   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>
   24:     <tr><td>sun5i</td><td>A10s</td><td>-</td><td></td></tr>
   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>
   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>
   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>
   31:     <tr><td>sun8i</td><td>A23</td><td>-</td><td></td></tr>
   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>
   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>
   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>
   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>
   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>
   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>
   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>
   42:   </tbody>
   43: </table>
   44: 
   45: 
   46: # Supported hardware
   47: 
   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.
   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>
   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>
   60:     <tr><td>CAN controller</td><td>Yes</td><td></td></tr>
   61:     <tr><td>Crypto engine</td><td>-</td><td></td></tr>
   62:     <tr><td>CSI</td><td>-</td><td></td></tr>
   63:     <tr><td>DMA</td><td>Yes</td><td></td></tr>
   64:     <tr><td>Fast Ethernet (sun4i/sun5i/sun7i)</td><td>Yes</td><td></td></tr>
   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>
   69:     <tr><td>GPU</td><td>-</td><td></td></tr>
   70:     <tr><td>I2C</td><td>Yes</td><td></td></tr>
   71:     <tr><td>I2S/PCM</td><td>Experimental</td><td></td></tr>
   72:     <tr><td>IR transceiver</td><td>-</td><td></td></tr>
   73:     <tr><td>NAND</td><td>Yes</td><td></td></tr>
   74:     <tr><td>P2WI/RSB</td><td>Yes</td><td></td></tr>
   75:     <tr><td>PCIe</td><td>-</td><td>H6</td></tr>
   76:     <tr><td>PWM</td><td>Yes</td><td></td></tr>
   77:     <tr><td>RTC</td><td>Yes</td><td></td></tr>
   78:     <tr><td>SATA</td><td>Yes</td><td></td></tr>
   79:     <tr><td>SD/MMC</td><td>Yes</td><td></td></tr>
   80:     <tr><td>SMP</td><td>Yes</td><td>PSCI</td></tr>
   81:     <tr><td>SPDIF</td><td>-</td><td></td></tr>
   82:     <tr><td>SPI</td><td>Yes</td><td></td></tr>
   83:     <tr><td>Thermal sensors</td><td>Yes</td><td></td></tr>
   84:     <tr><td>Touch screen</td><td>Yes</td><td></td></tr>
   85:     <tr><td>UART</td><td>Yes</td><td></td></tr>
   86:     <tr><td>USB 2.0</td><td>Yes</td><td></td></tr>
   87:     <tr><td>USB 3.0</td><td>Yes</td><td></td></tr>
   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>
   92: 
   93: # Installation
   94: 
   95: - Download or build **armv7.img** (32-bit) or **arm64.img** (64-bit) from NetBSD -current
   96: - Write the image to disk: **dd if=armv7.img of=/dev/rld0d bs=1m conv=sync**
   97: - Install a board-specific U-Boot (2017.07 or later) from pkgsrc to the SD card
   98:   (the `u-boot-sunxi-with-spl.bin`-s are provided by `sysutils/u-boot-<boardname>` packages):
   99:   **dd if=/usr/pkg/share/u-boot/&lt;boardname&gt;/u-boot-sunxi-with-spl.bin of=/dev/rld0d bs=1k seek=8 conv=sync**
  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
  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