Archive

Posts Tagged ‘allwinner’

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.

Want a Free Banana Pi M2 Ultra Board? Upload a 2 Minutes Video about Your Allwinner Experiences and Plans

April 20th, 2017 40 comments

Banana Pi  BPI-M2 Ultra is a development board powered by Allwinner R40 quad core processor with a native SATA interface, as well as Gigabit Ethernet. If you are a developer, and would not mind getting a free sample, Allwinner is giving away boards to people uploading a 1 to 2 minutes video to YouTube.

The rules are detailed below:

Dear Developers of the World,

Allwinner Technology would like to thank you for your outstanding contribution to our open source community and invite you to join our video-shooting program. Please cover the following topics in your video:

  • Who are you and why did you choose Allwinner in the first place?
  • What did you do with your Allwinner powered development board?
  • What are your expectations for Allwinner’s latest open source platform, the R40?

It needs to be:

  • Shot in a video resolution of 720p or above
  • 1-2mins in length
  • Submitted between Apr 20th 2017 and May 1st, 2017

Please upload your video to Youtube and then send the link as well as your contact phone number, post code and address to [email protected] so that we can send you our latest R40 development board as a thank you gift.

The videos will be used both to get feedback, and in some cases they may be used in promotion materials. The video should preferably be in English, but I assume if you shoot it in your native language with subtitles in English, it’s also OK.

Allwinner H6 Processor for 4K HDR Set-Top Boxes Supports USB 3.0, PCIe, and Smart Card Interfaces

April 1st, 2017 40 comments

Allwinner H6 is a new quad core Cortex A53 processor designed for 4K set-top boxes. It will support “6K” video decoding for 10-bit HEVC, VP9, and H.264, integrate HDR10 and HLG video processing, support high speed interfaces like USB 3.0 and PCIe, as well as security features like two ISO7816 smart card interfaces and DRM solutions.

Click to Enlarge

Allwinner H6 specifications:

  • CPU –  Quad-core ARM Cortex A53 with NEON, hardware Java acceleration, and FPU
  • 3D GPU – Dual shader ARM Mali-T720 with support for OpenGL ES3.1/3.0/2.0/1.1, OpenCL 1.1/RenderScript, Microsoft DirectX 11 FL9_3
  • Memory I/F – DDR4/DDR3/DDR3L interface
  • Storage I/F – 1x eMMC 5.0 flash interface, 1x NAND Flash interface for SLC/MLC/TLC flash memory with up to 80-bit error-correcting code (ECC), 1x SPI NOR Flash interface, 1x SD Card 2.0
  • Multimedia via Allwinner Phoenix 3.0 VE Engine
  • Audio Encoding/Decoding
    • MPEG-1,MPEG-2(L1/L2/L3), MP3, AAC-LC, HE AAC V1/V2, APE, FLAC, OGG, AMR-NB, AMR-WB,G.711(u/a) decoding
      • G.711(u/a), AMR-NB, AMR-WB, AAC-LC encoding
      • Karaoke sound effects, supports automatic gain control, voice enhancement and echo/reverberation.
      • 3~5m far field sound acquisition, supports speech enhancement, acoustic echo cancellation and direction of speaker estimation.
      • Dolby Digital/Dolby Digital Plus decoding (option)
      • Dolby DMA2.0 audio effect (option)
      • DTS-HD decoding(option)
      • Dolby Digital/DTS transparent transmission
  • TS Demultiplexing/PVR
    • 4x TS inputs supporting 32 PID each
    • DVB-CSA/AES/DES descrambling
    • PVR,recording of scrambled and non-scrambled streams
  • Security/ DRM
    • Full Disk Encryption(FDE) with support for AES-ECB/CBC
    • 4K bits Efuse (OTP)
    • Protection for JTAG and other debugging port
    • HDCP 2.2/1.4 protection for HDMI outputs
    • Trusted execution environment(TEE)
    • Digital rights management(DRM)
    • Mainstream advanced CA
    • Secure boot, Secure Storage, Secure upgrade
  • Display Processing ((Smartcolor 3.0 DE Engine)
    • HDR10 and HLG HDR processing
    • HDR conversion between SDR
    • Dual independent display support
    • 16 layers, video and UI input layers to overlay
    • 3D video processing and display
  • Audio/Video Interfaces
    • Video Output
      • 1x HDMI 2.0a TX with HDCP 2.2 output
      • 1x CVBS interface , supports PAL/NTSC mode
      • 1x RGB interface up to1920x1080
    • Video Input – CSI camera (DVP)
    • Audio Interfaces
      • Analog audio input/output
      • Digital MIC interface
      • 2x I2S supporting 7.1 channel
      • S/PDIF audio interface
  • Other Interfaces
    • USB – 1x USB 3.0 host port, 1x USB2.0 OTG port, 1x USB 2.0 host port
    • 1x PCIe 2.0 interface
    • 1x SDIO 3.0
    • Ethernet – 1x 10/100 Mbps Ethernet with PHY, 1x Gigabit Ethernet MAC
    • 5x UART, 5x TWI/I2C, GPIOs
    • 2x ISO7816 Smart Card interfaces
    • IR receiver and keypad control interface
  • Misc
    • USB, SD card and flash boot supported
    • Adaptive voltage scaling (AVS)
    • Dynamic voltage and frequency scaling (DVFS)
  • Package – 15 x 15 mm BGA451 package

The CPU is not that important in TV boxes and set-top boxes, so there are no changes here except potentially a higher frequency (TBC). The dual shader Mali-T720 GPU should provide 3D performance in the same range as other competing solutions based on Mali-450MP and Mali-T820MP GPU, and includes OpenCL support for GPU compute applications. AFAIK it’s the first Allwinner processor to support HDR, so the company is mostly catching with competitors on the multimedia front. The video decoder supports 4K H.265 and VP9 at up to 60 fps, and 4K H.264 up to 30 fps, as well as 6K up to 30 fps. The processor can also support HD audio formats (as an option), while the transport stream (TS) interfaces to connect one or more more tuners, and Smart Card interfaces make it ideal for set-top box with free or premium content. The addition of USB 3.0 and PCIe will allow for fast storage options, with external PCIe to SATA chips potentially providing better performance than the SATA IP found in Allwinner R40, especially when it comes to write speed.

I found all this information in Allwinner H6 product brief published on linux-sunxi website. There’s no information anywhere else about H6 processor, even on Alibaba, so it will likely take many more months before products and boards are launched with the new SoC.

Emdoor EM-QL8170 is One of the First LTE Tablets Designed Thanks to Allwinner & Qualcomm Partnership

February 6th, 2017 10 comments

Allwinner and Qualcomm announced a partnership last year to help Chinese manufacturers design entry-level LTE tablets based on Qualcomm Snapdragon processors, and Allwinner collaborated with Emdoor one several designs including EM-QL8170 LTE tablet with a Snapdragon 210 processor and a 6.98″ display.

Emdoor EM-QL8170 specifications:

  • SoC – Qualcomm Snapdragon 210 (MSM8909) quad core Cortex A7 processor up to 1.3 GHz with Adreno 304 GPU @ 400 MHz
  • System Memory – 1 or 2 GB DDR3L
  • Storage – 8 or 16 GB flash + micro SD slot
  • Display – 6.98″ IPS touchscreen display with 1280×720 resolution
  • Connectivity – 802.11 b/g/n WiFi, Bluetooth 4.1 LE, and GPS
  • Cellular Connectivity – LTE Cat 4 with 2x micro SIM card slots
  • Camera – 2.0MP front-facing camera, 8.0MP rear camera
  • Audio – 1x microphone, 1x 3.5mm audio jack, likely some speaker somewhere…
  • USB – 1x micro USB port
  • Battery – 2850 mAh battery
  • Dimensions – 189.7 x 97.7 x 7.8 mm
  • Weight – 248 grams

The phone runs Android 5.1 and will cost a little over $70 (FOB), which could translate to $120 to $140 on sites like Aliexpress. Emdoor also has various other Qualcomm/Allwinner design all with Snapdragon processor, including a rugged smartphone as you’ll find out in Charbax’ video below.

Emdoor sells about 9 millions tablets (full designs and PCB) per year, mostly through partners, as they work with over 100 companies around the world, and around 50 local partners in mainland China to sell their devices, so you may end up buying an Emdoor tablet  under another brand name. You’ll find a few more details on Emdoor EM-QL8170 product page.

Allwinner V3s Dual Camera SoC Comes with 64MB DRAM

December 30th, 2016 11 comments

Most SoCs have a very limited amount of internal SDRAM just enough to load the bootROM code, but a few integrated a few MB of RAM on-chip such as Renesas RZ/A1H with 10MB on-chip DRAM, in order to reduce costs for some applications that may not require external RAM. Allwinner V3s, designed for dual camera solutions, appeared to be such an SoC with 64MB (512Mbit) on-chip DDR2 RAM, but the block diagram seems to imply it is a System-in-Package (SiP) instead. Nevertheless you still get a single chip with an ARM Cortex A7 processor, two ISPs, a video engine, 64MB RAM, and more.

Click to Enlarge

Click to Enlarge

Allwinner V3s main features & specifications:

  • CPU – ARM Cortex-A7 @ up to 1.2 GHz
  • Memory – Integrated 64MB DDR2 DRAM
  • Storage I/F – SD 2.0, eMMC 4.41, SPI NAND flash, SPI NOR flash
  • Audio Codec – 92dB audio codec supporting 2x ADC channels and 2x DAC channels, 1x low-noise analog microphone bias output, 1x microphone input and 1x stereo microphone output
  • Video Processing Unit
  • Video Input/Output
    • 8/10/12-bit parallel CSI and 4-lane MIPI CSI2
    • Up to 5M CMOS sensor
    • RGB/i80/LVDS LCD up to 1024×768 resolution
  • Peripherals
    • 3x SD card controllers
    • LRADC/SPI/TWI/UART/PWM
    • USB 2.0 OTG
    • EMAC+PHY
  • ISP
    • Integrated “Hawkview” ISP up to 5M pixels
    • Supports 2x channel outputs for display and encoding respectively
    • Supports various input and output formats
    • Supports AE/AF/AWB
    • Supports saturation adjustment/ noise reduction/ defect pixel correction/distortion correction
  • Package – 128-pin eLQFP

The processor supports Camdroid, a lightweight operating system based on Android, as well as Linux just like its more powerful sibling (minus the built-in memory) Allwinner V3.

Block Diagram for a Typical Allwinner V3s Dashcam with Two Cameras

Block Diagram for a Typical Allwinner V3s Dashcam with Two Cameras

Beside Allwinner V3s product page, and the datasheet, there’s no that much info and talk about V3s in the Internet. Searching a bit more, I found out that Q3H-2 Sports Action Camera is based on the processor, and somebody did a short review of the thing with photo and video samples. Some people also did some hacking of the previous Q3H model based on Allwinner V3, but I’m not sure how much of that is usable on Q3H-2.

The makers of Lichee Pi One board have also designed an Allwinner V3s board named Lichee Pi Zero to sell for $6 in China, but I don’t have the full details, and only know some members of linux-sunxi have started to work on it. That still means there may be decent Linux support for the processor in a few months time.