--- wikisrc/ports/evbarm/allwinner.mdwn 2014/10/20 11:10:27 1.9
+++ wikisrc/ports/evbarm/allwinner.mdwn 2018/05/10 00:12:47 1.89
@@ -1,63 +1,106 @@
[[!meta title="NetBSD/evbarm on Allwinner Technology SoCs"]]
-# Supported boards
- - BananaPi (BPI)
- - Cubieboard, Cubieboard 2 (CUBIEBOARD)
- - Cubietruck (CUBIETRUCK)
- - Merrii Hummingbird A31 (HUMMINGBIRD_A31)
+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.
+
+
+
+
+[[!toc levels=2]]
+
+# Supported SoCs
+
+
+
# Supported hardware
- - SoCs
- - Cortex-A8: A10
- - Cortex-A7: A20, A31 SoCs
- - SD/MMC controller
- - DMA controller
- - GPIO
- - UART
- - I2C
- - P2WI (A31)
- - PMU
- - AXP209 (A20)
- - AXP221 (A31)
- - Watchdog timer
- - RTC
- - Audio codec
- - USB
- - OHCI
- - EHCI
- - MOTG (not yet working on A31)
- - SATA (A10/A20)
- - Gigabit Ethernet (GMAC)
+
+Please refer to the [SUNXI kernel config](https://nxr.netbsd.org/xref/src/sys/arch/evbarm/conf/SUNXI) for the most up-to-date list of supported hardware.
+
+
+
+
+ Device |
+ Supported |
+ Notes |
+
+
+
+ Audio codec | Yes | Supported on sun4i, sun5i, sun6i, sun7i, sun8i-h2+, sun8i-h3, sun50i-h5, sun50i-a64 |
+ Crypto engine | - | |
+ CSI | - | |
+ DMA | Yes | |
+ Fast Ethernet (sun4i/sun5i/sun7i) | Yes | |
+ Framebuffer | Yes | Uses simplefb configured by bootloader |
+ Gigabit Ethernet (sun6i/sun7i/sun9i) | Yes | |
+ Gigabit Ethernet (sun8i/sun50i) | Yes | |
+ GPIO | Yes | |
+ GPU | - | |
+ I2C | Yes | |
+ I2S/PCM | Experimental | |
+ IR transceiver | - | |
+ NAND | Yes | |
+ P2WI/RSB | Yes | |
+ PCIe | - | H6 |
+ PWM | Yes | |
+ RTC | Yes | |
+ SATA | Yes | |
+ SD/MMC | Yes | |
+ SMP | Yes | 32-bit only. Uses PSCI support in firmware |
+ SPDIF | - | |
+ SPI | Yes | |
+ Thermal sensors | Yes | |
+ Touch screen | Yes | |
+ UART | Yes | |
+ USB 2.0 | Yes | |
+ USB 3.0 | Yes | |
+ USB OTG | Experimental | |
+ Watchdog timer | Yes | |
+
+
# Installation
-## A10 / A20 based boards
+- Download or build **armv7.img** (32-bit) or **arm64.img** (64-bit) from NetBSD -current
+- Write the image to disk: **dd if=armv7.img of=/dev/rld0d bs=1m conv=sync**
+- Install a board-specific U-Boot (2017.07 or later) from pkgsrc to the SD card: **dd if=/usr/pkg/share/u-boot/<boardname>/u-boot-sunxi-with-spl.bin of=/dev/rld0d bs=1k seek=8 conv=sync**
+
+# Tips and tricks
+
+## Video overscan compensation
+
+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:
-* Start with an ARMv7 image from *evbarm-earmv7hf/binary/gzimg/* such as *beaglebone.img*
-* Download a U-Boot build for your board from the linux-sunxi web site
-* Write the *u-boot-sunxi-with-spl.bin* loader to the base image:
-[[!template id=programlisting text="""
-# dd if=u-boot-sunxi-with-spl.bin of=beaglebone.img bs=1k seek=8 conv=notrunc
-"""]]
-* Write the image to an SD card.
-* Copy the kernel (netbsd.ub) for your board to the root of the MSDOS partition.
-* Create or edit uEnv.txt on the MSDOS partition:
-[[!template id=programlisting text="""
-bootargs=root=ld0a
-uenvcmd=mmc dev 0; mmc rescan; fatload mmc 0:1 82000000 netbsd.ub; bootm 82000000
-"""]]
-
-## A31 based boards
-
-TBD.
-
-# Big (endian) fun
-
-You can run this boards with a little endian (this is the default and implied by above install instructions)
-or with a big endian kernel and userland. However, kernel and userland endianes needs to match.
-
-To build a big endian release (or sets) use
-[[!template id=programlisting text="""
-./build.sh -m evbearmv7hf-eb
-"""]]
-where -eb means endianes big, hf is hardware floating point support, and earm is the modern "extended" ABI for ARM cpus, and finally v7 is version 7 of the supported instruction set.
+ setenv video-mode sunxi:1280x720-24,overscan_x=32,overscan_y=20
+ saveenv
+ reset