Archive

Posts Tagged ‘allwinner’
Orange Pi Development Boards

Bootlin Wants to Bring Allwinner VPU Support to Mainline Linux (Crowdfunding)

February 2nd, 2018 45 comments

I wrote about Free Electrons several times in the past due to their work on porting Arm SoCs to mainline Linux. Free Electrons is no more. But don’t be sad, as it’s not because they closed shop, but instead they changed their name to Bootlin due to trademark trolls.

Free Electrons Bootlin intensively worked on Allwinner processors, for example working with Next Things Co. to add CHIP board to mainline Linux, or more recently adding support for OpenGL ES in mainline Linux, albeit with closed-source user space binary blobs. The company normally work with partners for their work, but for their latest initiative aiming to bring Allwinner VPU (Video Processing Unit) to the official Linux kernel there’s asking funding from the community through a Kickstarter campaign.

For those who do not know, the VPU is the IP block within the SoC used for hardware video decoding of codecs such as MPEG2, MPEG4 or H264.Bootlin already showcased a demo with Cedrus open source VPU driver on C.H.I.P board in 2016, which supported and still only supports MPEG2 codec. Now as stated in their blog, they want to bring more complete support by working on the following if they can reach 17,600 Euros in funding:

  • Finish MPEG4 decoding support
  • Implementing H264 decoding
  • Optimize the rendering of video frames in cooperation with the display driver, and upstreaming the driver
  • Make sure the above works on Allwinner A10, A13, A20 and A33 SoC

They also have stretch goals:

  • 22,000 Euros – Support for newer SoCs such as such as the H3, H5 and A64
  • 30,800 Euros – H.265 video decoding support
  • 44,000 Euros – H.264 video encoding support

That’s the first time the company tries to fund upstream Linux kernel development through a crowdfunding campaign, so it’s unclear whether there will be interest. I’d assume it might be difficult to get it funded by individuals only, but if some companies are not satisfied with the closed-source Allwinner VPU driver that’s a good way to get open source software developed since costs are shared. Pledges start at 4 Euros, and go up to 1,024 Euros. The campaign will last for 45 days, and estimated delivery is scheduled for June 2018 for the main goals, and if all stretched goals are reached full development should be complete around December 2018. If the campaign is successful, a weekly progress report would be provided on the company website.

$129 Allwinner R18 based 3-Mic Far Field Amazon AVS Development Kit in the Works

January 4th, 2018 17 comments

Several companies are already offering development kits for Amazon AVS (Alexa Voice Service), but as we’ve seen in the past, those are rather expensive with far-field kits such starting at $349 with kits such as Synaptics AudioSmart 4-Mic Development Kit, or Intel Speech Enabling Developer Kit, and hands-free kits being barely cheaper at $299 and up.

But there will soon be a cheaper solution, as Allwinner and SinoVoIP (aka Banana Pi) are working on “SoC-Only 3-Mic Far-Field Dev Kit for Amazon AVS” that includes 3 microphones, and works without special DSP, relying instead on Allwinner R18 processor’s audio codec and capabilities.

Click to Enlarge

Allwinner SoC-Only 3-Mic Far-Field Dev Kit for Amazon AVS (aka R18-AVS-EVK) specifications:

  • SoC – Allwinner R18 quad-core Cortex-A53 processor @ 1.15GHz with Mali400MP2 GPU
  • System Memory – 1GB DDR3
  • Storage – 8GB eMMC flash
  • Video Output – HDMI
  • Audio – 6x Microphones, 2x AEC, AUX and headphone output; GMEMS voice recognition algorithm
  • Connectivity – Dual band WiFi, Bluetooth 4.0
  • USB – 1x USB type A port, 1x micro USB OTG port
  • Power Supply – 12V DC input
  • Dimensions – Mainboard: 100 x 100mm; microphone array board: 90 mm ∅

The board will support Linux operating systems at first, but Android is also being worked on. A ribbon cable is also included in the kit to connect the mic array to the main board. Now you may wonder why a 3-mic development kit comes with 6 microphones. Allwinner explains:

6 microphones are included on the board, while only three are used and qualified, providing flexibility to tune for 6/4/3/2 mic solutions and freely match with different product designs

I’m not 100% sure what that means, but I guess the kit only works for three for now, but in the future algorithms may support a combination of up to 6 microphones. We’ll have to see how the solution works compared to DSP based systems.

Allwinner R18 Block Diagram

The development kit is now found on Amazon website yet, but a page on Banana Pi website mentions they are 50 unit for pre-sale for $129 with shipping scheduled on February 5, 2018. The “Buy” link does not work yet. A few more details may be found in the product page on Allwinner website.

Amlogic S905X vs Rockchip RK3328 vs Allwinner H6 Processors – Benchmarks & Features Comparison

November 27th, 2017 46 comments

Rockchip, Amlogic and Allwinner are all battling for the lower and mid range segment of the TV box market, so it may be interesting to compare their solutions. We won’t look into the ultra low-end market with 32-bit ARM Cortex A7 processor, but instead compare some of the recent quad core 64-bit ARM Cortex A53 processor for 4K HDR TV box from the company with respectively Amlogic S905X, Rockchip RK3328, and Allwinner H6 SoCs.

We’ll compare some of the benchmarks obtained with Android TV boxes, as well as other features like video support, USB and Ethernet interfaces.

Benchmarks

Let’s start with results for popular Android benchmarks: Antutu 6.x, Vellamo 3.x, and 3DMark Ice Storm Extreme v1.2 with results obtained from 3 TV boxes: Mini M8S II (Amlogic S905X), A95X R2 (Rockchip RK3328), and Zidoo H6 Pro (Allwinner H6). A score is highlighted in green is there’s a clear winner, and in red for a clear loser.

Amlogic S905X Rockchip RK3328 Allwinner H6
CPU (1) Quad core Cortex A53
@ 1.51 GHz
Quad core Cortex A53
@ 1.51 GHz
Quad core Cortex A53
@ 1.8 GHz
GPU (2) ARM Mali-450MP3 ARM Mali-450MP2 ARM Mali-720MP2
Antutu 6.x
Overall 33,553 33,117 40,467 / 36,957 (2)
3D (1920×1080) 3,099 1,475 6,292 / 2,782 (2)
UX 12,365 16,426 13,360
CPU 12,438 10,486 16,395
RAM 5,651 4,730 4,420
Vellamo 3.x
Metal 910 937 930
Multicore 1,491 1,464 836 (3)
Browser 1,855 (Browser) 1,943 (Chrome) 2,546 (Browser)
3DMark – Ice Storm Extreme v1.2
Total score 4,183 2,252 3,951
Graphics score 3,709 1,871 3,643
Physics score 7,561 7,814 5,608

(1) Those are the frequencies reported by CPU-Z, and the actual maximum frequency may be different. For example, it appears Allwinner H6 can only run at 1488 MHz in a sustained manner, and possibly only reach 1.8 GHz during short bursts (TBC).
(2) Allwinner H6 is the only SoC to include a GPU supporting OpenGL ES 3.1, which means it is the only one to complete Marooned 3D graphics test (Antutu 3D test has two 3D benchmarks), and the other boxes just got zero since it did not run. So I’ve included two scores for overall and 3D Antutu results: actual score / score minus Marooned benchmark.
(3) Vellamo multicore had a warning on Zidoo H6 Pro, so it may not represent the actual performance of the device.

Allwinner H6 has a slight advantage, but during use it will be really hard to notice the difference between TV boxes with one of those processors, and other factor like RAM capacity and storage performance will have more influence.One exception is 3D performance, as Rockchip RK3388 is clearly slower here, and I could notice it while playing games.

Features

But SoC performance is only one side of the equation, so let’s have a look at some of the features from the SoCs, which may or not be implemented in some TV boxes. For reference I also included USB 2.0 or 3.0 storage (HDD NTFS partition), and Ethernet performance numbers. Those numbers may vary a lot with further software optimization, configuration tweaks, so they should only be used for reference. I used the same TV boxes as for the benchmark section, except for Gigabit Ethernet relying instead on iperf results from ROCK64 development board (RK3328) and K1 Plus (Note S905, no X, for reference only, but in my experience all Fast Ethernet interfaces have about the same performance), and NEXBOX A95X for the USB storage performance.

Amlogic S905X Rockchip RK3328 Allwinner H6
Video
– 4K 10-bit HEVC Up to 60 fps
– 4K VP9 Up to 60 fps
– 4K H.264 Up to 30 fps (8-bit only) Up to 30 fps (8-bit and 10-bit) Up to 30 fps (8-bit only)
USB 2.0 / 3.0 USB 2.0 USB 3.0 USB 3.0
– A1SD Bench (R/W) 37/37 MB/s 94.52/90.73 MB/s 59.07/42.12MB/s
Ethernet 10/100M only Gigabit Ethernet MAC Gigabit Ethernet MAC
– iperf (full duplex) 91.6/91.8 Mbits/s 815/344 Mbits/s 758/350 Mbits/s
RAM Capacity (Max) 2GB 4GB 2GB
Misc  TS, Smartcard interface TS, Smartcard interface, PCIe

I did not include audio, as all those SoC are supposed to support Dolby TrueHD and DTS HD audio codec pass-through. but implementation varies a lot between devices.

Amlogic S905X is the weakest of the lot based on the two tables above, but it’s also the cheapest SoC among the three, and in my experience, one with the best support in Kodi, for example. Rockchip RK3328 is not much more expensive, and have many benefits, except when it comes to 3D graphics performance, but it usually only matter if you plan to play games on the platform, the GPU is usually good enough for user interfaces. Allwinner H6 has more interfaces, a Mali GPU with OpenGL ES 3.1 and OpenCL support, and lightly more interfaces. The few devices that are based on the Allwinner processor are currently quite more expensive with all other features being equal.

 

Allwinner H6 Datasheet and User Manual Released

November 15th, 2017 19 comments

Putting aside the ill-fated Allwinner A80 SoC, Allwinner H6 is the first Allwinner processor with multiple high speed interfaces such as Gigabit Ethernet, USB 3.0 and PCIe, and also support 4K HDR with the company’s Smart Color Engine for video processing.  So far, it’s been found in some 4K HDR TV boxes such as Zidoo H6 Pro or Beelink GS1.

We’ve already known Shenzhen Xunlong was working on Orange Pi 3 Plus board with the processor for a few months,  but Pine64 appear to have joined the party, and will soon launch Pine64 H64 board according to their Wiki. No photos yet, but the company released various documents for the board including Allwinner H6 V200 datasheet (80 pages), and Allwinner H6 V200 user manual (965 pages).

Click to Enlarge

The documents should – for instance – allow sunxi-linux community to port drivers for the processor.

Some corrections have been made to the first list of specifications, for example video encoding is now limited to 1080p @ 60 fps instead of 4K @ 30 fps. and the wiki confirms the CPU frequency is limited to 1488 MHz instead of the 1.8 GHz reporting by CPU-Z or marketing materials, and X-Powers AXP805 will be the companion chip / PMIC for Allwinner H6 (V200).

Today we also got some more information about the Allwinner H6 development boards, none of which are available yet, with some photos from Shenzhen Xunlong‘s H6 Orange Pi One with Gigabit Ethernet, and H6 Orange Pi Lite with WiFi (RTL8189ETV) and one USB 3.0 port.

Click to Enlarge

That means we’ll have at least four Allwinner H6 SBCs around the beginning of next year. An Allwinner H6 SDK (RC4 – not final) with Linux 3.10. can also be found on MEGA. Another Linux 4.4 SDK should come in Q1 2018.

Allwinner SoCs with Mali GPU Get Mainline Linux OpenGL ES Support

September 26th, 2017 21 comments

OpenGL ES support in Linux for ARM SoC is usually pretty hard to get because of closed source binary blobs coupled with the manufacturers focus on Android. Workarounds include open driver projects such as Freedreno for Qualcomm Adreno GPU, Nouveau for Tegra, or Etnaviv for Vivante GPUs, as well as libhybris library that converts Linux calls into Android calls in order to leverage existing Android GPU binary blobs. Allwinner processors relies on either PoverVR or ARM Mali GPU, and the former does not have any open source project, while some work is still being going for the latter with Lima project, but it’s not ready yet.

That means so far, you’re only option was to use libhybris for either GPU family. The good news is that Free Electrons engineers have been working on OpenGL ES support for ARM Mali GPU for Allwinner processor, and have been allowed to release the userspace binary blobs. Not quite as exciting as an actual open source release, but at least, we should now be able to use OpenGL ES with mainline Linux on most Allwinner SoCs (the ones not using PowerVR GPUs).

If you want to try it on your platform, you’ll first need to add ARM Mali GPU device tree definitions to your platform’s DTS file if it is not already there, before building the open source Mali kernel module for your board:

This will install mali.ko module to your rootfs. The final step is to get the userspace drivers, either fbdev or X11-dma-buf depending on your setup, for example:

That should be all for the installation, and you should be able to test OpenGL ES using es2_gears or glmark2-es2 programs. Based on the github patchsets, this should currently work for Linux 4.6 to 4.14.

Update: On a separate note, somebody has recently released ffmpeg 3.3.4 with open source Cedrus driver for Allwinner video processing unit, and tested with Allwinner R40 and A64 SoC. Code and package can be found in github.

Allwinner A63 2K “Flat Panel” SoC Unveiled at APC 2017 Conference

June 26th, 2017 7 comments

Allwinner unveiled their latest A63 quad core Cortex A53 SoC for tablet at the APC 2017 conference in Zhuhai, Shenzhen, last week. The processor will be an upgrade to Allwinner A64 with a Mali-T760MP2 GPU, support for 2560 x 1600 displays, and a 6K H.265/VP9 video processing unit.

Some of Allwinner A63 key features:

  • CPU- Quad core Cortex A53 processor with 32KB L1 I-cache, 32KB L1 D-cache, shared 512KB L2 cache
  • GPU – ARM Mali-T760MP2 “high performance” GPU with OpenGL ES 3.2 support
  • VPU – 4K/6K VP9, H.265, and H.264 4K @ 30fps video decoder; Smartcolor 3.0 “video quality enhancement engine”
  • Memory I/F – DDR3, DDR3L, LPDDR3, LPDDR2
  • Storage I/F – eMMC 5.0; TLC/MLC/SLC/EF NAND flash with 80-bit ECC
  • Display I/F – Dual MIPI and eDP interfaces up to 2560 x 1600 resolution
  • Audio – Support for multi-microphone array, multi-channel analog voice signal input and stereo ADC, DAC
  • Package – 15 x 15 mm
  • Manufacturing Process – 28nm

Allwinner will provide an Android N GMS SDK for the processor, which beside tablets, is also expected to be used in point of sales, and digital signage applications. The processor also comes with audio capabilities to support voice commands / APIs like Amazon Alexa. The company has not setup a product page on their website yet, and I got most of the info from an article on Sohu.

Banana Pi BPI-M2 Berry Allwinner V40 Development Board, Allwinner Business Units & SDK/Software Management

May 29th, 2017 55 comments

SinoVoIP has unveiled yet another new board with Banana Pi BPI-M2 Berry this week-end. It’s actually quite similar to Banana Pi BPI-M2 Ultra board, by they replaced Allwinner R40 with Allwinner V40 processor, removed some features, and use Raspberry Pi 3 form factor. If we look at Allwinner V40 product brief we can see the specifications look almost identical, with V40 potentially exposing an extra CAN bus. The company’s announcement was very confusing since they show Banana Pi BPI-M2 Berry board with Allwinner R40 instead of Allwinner V40.

Banana Pi BPI-M2 Berry specifications:

  • SoC – Allwinner V40 quad Core ARM Cortex A7 processor with ARM Mali-400MP2 GPU
  • System Memory – 1G DDR3 SDRAM
  • Storage – micro SD slot, SATA interface
  • Connectivity – 1x Gigabit Ethernet port, 802.11 b/g/n WiFi and Bluetooth 4.0 (AP6212 module)
  • Video Output – HDMI 1.4 port up to 1080p60, 4-lane MIPI DSI display connector
  • Audio I/O – HDMI, 3.5mm headphone jack, built-in microphone
  • USB – 4x USB 2.0 host ports, 1x micro USB OTG port
  • Camera – CSI camera connector
  • Expansion – 40-pin Raspberry Pi compatible header with GPIOs, I2C, SPI, UART, ID EEPROM, 5V, 3.3V, GND signals.
  • Debugging – 3-pin UART for serial console
  • Misc – Reset, power, and u-boot buttons
  • Power Supply – 5V via micro USB port; AXP221s PMIC
  • Dimensions – 85mm x 56mm

The Wiki is also shared for BPI-M 2 Ultra/Berry boards. The company also showed a picture of BPI-M2 Ultra with Allwinner V40 confirming both processors are  pin-to-pin-compatible.

BPI-M2 Ultra Board with Allwinner V40 Processor

So why bother doing different processors since they are so similar? Last time, we were told Allwinner A64 and R18 had different SDKs, so it should be the same for R40 and V40. Allwinner has different family of processors dedicated to different market segments: A-series are application processors, H-series are for home entertainment, R-series for the IoT, and V-Series for video camera applications. In some ways, it makes sense to have different business units that specialize in specific market segments. If you customer wants to make an action camera redirect him to the V-series guys, a TV box that’s for H-series, and so on.

There’s been a long-ish discussion about Allwinner business units on CNX Software. What has apparently been happening is that some processors can be used across market segments, so they have duplicates (or close to it) with for example Allwinner A64/R18 that’s just the same chip but assigned to a different business unit. Each business unit work and release their own SDK, and based on different Linux and Android version for different SDK, there does not seem common work across business units, and they appear to have separate software teams.  The processors are differentiated by “CHIP ID”, and by default you can’t run firmware generated by R18 SDK on A64, and vice-versa, since the bootloader will detect the ID and prevent the software to run.  That also looks like a bad idea, since for example a software bug fixed on Allwinner R18 SDK, may go unnoticed on Allwinner A64 for years etc… So ideally all business units should get their software from a single team taking care of low level software (bootloader/kernel/drivers), middleware (Android/rootfs), while software developers’ part of a given business unit may work on the market specific software.

Jon had more insights on this business organization:

The R group is releasing a different SDK for the R18. They are not using the A64 one. That strongly suggests to me two sets of software people. A single software group would have simply added the R18 extras into the A64 SDK.

You want a centralized Linux and Android group. Then inside that group you develop specialists. For example the DMA person, the UART person, the Ethernet person, etc. That person is responsible for driver support over all of the CPUs Allwinner makes. They become experts on this piece of the SOC. The output of this group is a single SDK that supports all Allwinner processors. Like what mainline Linux is doing for Allwinner SOC currently. Not the single CPU kernels that AW keeps releasing.

Then you can give this central software group two instructions:
1) Add a new SOC to the existing base. Each specialist will extend their existing driver to add support for the new SOC. Not cut and paste then edit to make a new driver! That happens with separate groups.
2) Add support for a new kernel or Android release. Everyone in the group works together to bring all of the SOC support up to this new release. This is not that hard now since each expert in their niche will know exactly what the issues are.

The central group allows these vertical specialists to exist. Having the chip groups do it results in a lot of copy/paste/edit (which we see in spades) and many bugs because the work is having to be done by generalist assigned to the group. When the programmers belong to the hardware groups Allwinner is creating “port and forget” specialists.

and also mentioned it’s been tried before, and failed:

This awful management style was practiced by most of the US semiconductor industry in the 1990’s. Most have discovered that it was a really bad way to do things and have reorganized.

This management style occurs when chip people end up in top management at these SOC companies. They treat everything like a chip and software is definitely not a chip. But these “chip heads” don’t know much about software so they can’t see how bad this organization design is for long term support. You can’t blame the “chip heads” for acting this way, it is the only area they have worked in. What they are doing is the correct model for making chips.

Now I don’t have detailed internal org charts for Allwinner. But I used to work for US companies that had this exact management structure before realizing how messed up it was. Only after a couple of very expensive failed launches of new chips because the software supporting them didn’t work did management change.

Another not-directly related complain is that Allwinner will also release the source code as tarballs, and they don’t have a git (or other revision control system) repository accessible to customers, for example like Amlogic or Rockchip already do. Instead they release those large tarballs, and then linux-sunxi community may import the u-boot/Linux kernel part to github, and work on them, although those days, they may prefer to focus on mainline rather than on Allwinner SDK releases.

Banana Pi BPI-M64 Board Gets Allwinner R18 Processor with Google Cloud IoT Core Support

May 18th, 2017 30 comments

Banana Pi BPI-M64 board was launched with Allwinner A64 processor, but a few days ago, I noticed the board got an option for Allwinner R18. Both processors are likely very similar since they are pin-to-pin compatible, and Pine64 was first seen with Allwinner R18, so I did not really feel it was newsworthy. But today, Google announced Google Cloud IoT Core cloud service working with a few app partners such as Helium and Losant, as well as several device partners including ARM, Marvell, Microchip, Mongoose OS, NXP… and Allwinner, having just announced the release of an Allwinner R18 SDK with libraries supporting Google Cloud IoT Core.

Let’s go through the board specifications first which are exactly the same as for the original BPI-M64 board, except for the processor:

  • SoC – Allwinner R18 quad core ARM Cortex A53 processor with Mali-400MP2 GPU
  • System Memory – 2GB DDR3
  • Storage – 8GB eMMC flash (16, 32 and 64GB options), micro SD slot up to 256 GB
  • Video Output / Display interface – HDMI 1.4 up to 4K resolution @ 30 Hz, MIPI DSI interface
  • Audio – HDMI, 3.5 mm headphone jack, built-in microphone
  • Connectivity – Gigabit Ethernet + 802.11 b/g/n WiFi & Bluetooth 4.0 (AP6212)
  • USB – 2x USB 2.0 host ports, 1x micro USB OTG port
  • Camera – MIPI CSI interface (which I guess you support parallel cameras via some kind of bridge)
  • Security – Hardware security enables ARM TrustZone, Digital Rights Management (DRM), information encryption/decryption, secure boot, secure JTAG and secure efuse
  • Expansion – 40-pin Raspberry Pi 2 somewhat-compatible header
  • Debugging – 3-pin UART header
  • Misc – IR receiver; U-boot, reset and power buttons;
  • Power – 5V via power barrel; 3.7V Lithium battery header; AXP803 PMIC

So from hardware perspective, there’s no advantage of getting the board with the new R18 processor. But the SDKs are somehow different, and based on Allwinner’s press release, only R18 processor gets Google Cloud IoT Core support.

Cloud IoT Core Overview

Some of the key benefits of Cloud IoT Core include:

  • End-to-end security – Enable end-to-end security using certificate-based authentication and TLS; devices running Android Things or ones supporting the Cloud IoT Core security requirements can deliver full stack security.
  • Out-of-box data Insights – Use downstream analytic systems by integrating with Google Big Data Analytics and ML services.
  • Serverless infrastructure: Scale instantly without limits using horizontal scaling on Google’s serverless platform.
  • Role-level data control – Apply IAM roles to devices to control access to devices and data.
  • Automatic device deployment – Use REST APIs to automatically manage the registration, deployment and operation of devices at scale.

Both Foxconn/SinoVoIP and Pine64 can offer Allwinner R18 platforms compatible with Google Cloud IoT Core via their Banana Pi BPI-M64 and Pine A64+ boards respectively.