H6

Allwinner H6 (sun50iw6p1) SoC features a Quad-Core Cortex-A53 ARM CPU, and a Mali-T720 MP2 GPU from ARM. The Allwinner H6 is an OTT SoC.

=Overview= See Mainlining Effort and Mainline U-Boot for support status. The initial support for the SoC will be added in kernel 4.17

High level differences

 * addition of PCIe support (broken, see below)
 * single lane PCIe 2.0
 * totally undocumented software interface
 * addition of USB 3.0 host
 * Mali T720 instead of Mali 450
 * DDR4 DRAM support
 * addition of IOMMU
 * though only connected to display controller and video codecs
 * (New?) Audio Hub component

Programming model/driver level differences

 * heavily changed memory map (UART0 at 0x05000000, for instance)
 * SRAM locations moved around as well (SRAM A1 at 0x2000 now)
 * bus clock gates and device reset control now grouped by devices and merged into one register (high 16 bits reset, low 16 bits clock gates)
 * DMA controller changed (more than 32 ports, but still limited to 32 bit addresses)
 * no GPIO port A and B

Errata
Allwinner H6 has a quirky PCIe controller that doesn't map the PCIe address space properly (only 64k accessible at one time) to CPU, and accessing the PCIe config space, I/O space or memory space will need to be wrapped. As Linux doesn't wrap PCIe memory space access, it's not possible to do a proper PCIe controller driver for H6. The BSP kernel modifies the driver to wrap the access, so it's also not generic, and only devices with modified driver will work.
 * The PCIe implementation is broken.

=H6 SoC Features=
 * CPU
 * ARM Cortex-A53 Quad-Core
 * 512KB L2-Cache (shared between four cores)
 * 32 KB (Instruction) / 32KiB (Data) L1-Cache per core
 * SIMD NEON, VFP4
 * Virtualization
 * GPU
 * ARM Mali-T720 MP2
 * Featuring 2 unified shader cores
 * Complies with OpenGL ES 3.0, OpenCL 1.2
 * Memory
 * DDR3/DDR4/LPDDR2/LPDDR3 controller
 * NAND Flash controller and 64-bit ECC, supports full disk encryption
 * 3 MMC controllers, in which MMC2 (eMMC controller) supports full disk encryption
 * Video
 * Ultra HD 4k and Full HD 1080p video decoding of MPEG-2, MPEG-4 SP/ASP GMC, H.263, H.264, H.265, WMV9/VC-1, and VP8
 * BD Directory, BD ISO and BD m2ts video decoding
 * H.264 High Profile 1080P@60fps encoding
 * 3840×1080,1920x2160 3D decoding
 * Complies with RTSP, HTTP,HLS,RTMP,MMS streaming media protocol
 * Display
 * Integrated HDMI V2.0 with HDCP2.2 4K@60fps
 * TV CVBS output
 * RGB LCD output
 * Camera
 * Integrated parallel 8-bit I/F YUV422 sensor
 * Support CCIR656 protocol fot NTSC and PAL
 * 5M CMOS sensor support
 * Support video capture resolution up to 1080p@30fps
 * Audio
 * Two audio digital-to-analog(DAC) channels 92dB SNR
 * Two differential microphone inputs (one low-noise)
 * Stereo Linein input
 * TDM Digital Microphone input
 * Embedded Controller:
 * There might be an AR100 controller.
 * Thermal Sensor Controller (TSC) providing over-temperature protection interrupt and over-temperature alarm interrupt
 * AXP805 PMIC
 * package: FBGA451, 15 mm x 15 mm, 0.65 mm Pitch

=Documentation=
 * [[File:Allwinner_H6_V200_Datasheet_V1.1.pdf]] (PDF, 80 pages, 2017-11-14)
 * [[File:Allwinner_H6_V200_User_Manual_V1.1.pdf]] (PDF, 965 pages, 2017-11-14)

= Register guide = = Software =

Original SDK
A beta version of the H6 BSP was released on 2018/01/30...


 * https://github.com/Allwinner-Homlet/H6-BSP4.9-brandy
 * https://github.com/Allwinner-Homlet/H6-BSP4.9-tools
 * https://github.com/Allwinner-Homlet/H6-BSP4.9-linux

Mainline
= Devices =