Archive

Posts Tagged ‘allwinner’

Allwinner V3 SoC Targets 1080p60 Action Cameras, Supports Linux or Camdroid OS

April 2nd, 2015 15 comments

I’ve previously written about Allwinner V10 and V15 SoC for video applications such as cameras, digital video recorder, and so on. So far, I’ve not found devices based on these, but Allwinner already announced another V-series processor with Allwinner V3 designed for Action camera recording up to 1080p resolution at 70 frames per second.

Allwinner_V3Key specifications are listed below:

  • CPU – ARM Cortex-A7 @1.2GHz
  • Memory
    • 16-bit DDR3/LPDDR3/DDR3L SDRAM controller, up to 1333Mbps
    • 16-bit DDR2 up to 800Mbps, 16-bit LPDDR2 up to 1066Mbps
    • up to 2GB RAM
  • Video / Picture
    • Up to 1080p@60fps or 2-channel 1080p@30fps H.264 video encoding
    • 8M JPEG encoding
    • H.264 1080p@60fps decoding, MJPEG 1080@30fps decoding
  • Integrated ISP up to 8M pixels (HawkView ISP)
    • 2 channel outputs for display and encoding respectively
    • Supports various input and output formats
    • Supports AE/AF/AWB
    • Saturation adjustment, 2D/3D noise reduction,  defect pixel correction, and distortion correction
  • Audio Codec
    • Integrated 92dB audio codec
    • 2x ADC channels and 2x DAC channels
    • 3x MIC-in, stereo Line-in, headphone output and stereo line-out output
  • Interfaces – 4-lane MIPI CSI, parallel CSI, RGB/LVDS LCD controller, EMAC with PHY
  • Supports WiFi or 3G/4G connectivity

The company provides Linux or Camdroid OS, a lightweight port of Android by Allwinner.

The first Allwinner V3 based action cameras should hit the shelf before summer.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Allwinner CedarX Media Codec Library GPL/LGPL Compliance Update

March 23rd, 2015 27 comments

Last month, I wrote about potential open source licenses and VP6 copyright infringement by Allwinner with their CedarX media codec library, and then since there’s been a few developments.
Allwinner_GPL_LGPL

First, Allwinner sent me an email saying they’ve now updated Cedarx library and referring my previous article. Here’s an extract:

Here, I have some update of the Allwinner’s open-source status.

We have done a lot of discussion with the developers from the linux-sunxi communication about the software license of CedarX. For each question or requirement asked by the developers, Allwinner has identify and try to give the best solution.

Now, we believe Allwinner’s CedarX license is fully compliant and resolves concerns from the community. And you can take the announcement https://www.mail-archive.com/[email protected]/msg10597.html as a reference.

Allwinner is always supporting the open-source, and try to do better and better. You can see some update on the github https://github.com/allwinner-zh, and some feedback from developers: https://github.com/allwinner-zh/bootloader/issues/5.

It’s difficult to make everyone happy, but we believe Allwinner will do better and better, and give more and more help to the developers, and we believe Allwinner will be accepted by more and more developers.

The announcement claims “the CedarX media codec framework is now released with full open source code under the LGPL license”. That actually means there’s an open source API to access the closed source binaries that’s released under the LGPL license. The good news is the VP6 code that could infringe on On2/Google copyrights has now been removed and they are using ffmpeg instead.

So I asked on linux-sunxi IRC channel to find out if there was real progress made, and soon after some more details were released on linux-sunxi mailing list, and the part that looks really bad is:

264FillDefaultRefList() and a lot of code around it is straight out of the libavcodec h264 decoder. The original name for that function is ff_h264_fill_default_ref_list() in libavcodec/h264_refs.c: https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/h264_refs.c#L115 This is new, as some totally different code for h264 was available in the previous versions of the cedarx binaries.

This looks like Allwinner reached a new low, as it would mean Allwinner purposely renamed some function from LGPL code to make it look like it was their own. However, another email on arm-netbook mailing list by a soon-to-be Allwinner’s software engineer gives some more light to what actually happened here:

I can explain the whole process in a whole detail, because I was directly involved in the process of this decision and I can tell where this is going right now:

The rename was done to fix the LGPL violations by adding a wrapper for the GPLed libraries which will be LGPLed and published. This way we have Binary<->LGPLed open source code<->GPL libraries

Next step will be to drop the whole “we ship our own SDK”-thing and move over to stream our code into the existing open source alternatives.

But until the FOSS libraries have all the functionality from the shipped SDK we can not just stop supporting our customers in China. Also we can not suddenly make it open source for the following reasons:

  • Some engineers and managers do not fully comply with the GPLing of their code yet.
  • The code has awful coding style and my armcc refuses to compile at least 2/3 of the code because of the Chinese comments.
  • Also some of the engineers obviously have never heard the term “revision control” which makes it even harder to locate the actual version of the source code from which the binary was compiled from… -.-‘

So Allwinner has not make it right just yet, but at least they are trying, and even hiring western engineers to try fixing the licensing issues. I’m just not sure the current plan for binary<->LGPL wrapper<->GPL is actually valid, but at least they have longer term plan to upstream changes to open source project, at least that’s the way to understand the email above. Beside legal and technical work, moving from closed source “license infringing” code to properly licensed code is also a social engineering task, as all stakeholders in the company and possibly their customers must be convinced proper licensing is the way to go, and not the business as usual “just copy code from the net” and ignore licensing terms as Allwinner and many other companies have done in the past.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

(Most of) FOSDEM 2015 Videos Are Now Online

March 12th, 2015 4 comments

FOSDEM 2015 took place on between the 31st of January and 1st of February, and while some sessions were not recorded on videos, most of them were, and the organizers are now slowly processing and uploading 402 videos to their server. So far 210 videos have been uploaded, including the Embedded Devroom.

Fosdem_2015

You can follow the upload status to check out when your preferred track/devroom sessions are uploaded. For example, “internet of things” videos have not been uploaded so far, so you’d need to be a bit more patient for this topic.

One of such videos is “Upstream Allwinner ARM SoC (A10 / sunxi) support status”  by Hans de Goede, which includes the slides on the left and video of the right. This makes the presentation easy to follow (despite the slides being cropped), but probably explains why it takes so long to process the videos.

http://video.fosdem.org/2015/devroom-embedded/allwinner_upstream__CROPPED_PRES.mp4

You can also download presentation slides separately by going to the list of talks, clicking on the talk you want to checkout, and finally the presentation slides (if any) in the “Attachments” section. Direct link to the presentation above: allwinner_fosdem_2014.pdf.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Allwinner’s New Media Codec Library (CedarX) May Infringe on Open Source Licenses and Copyrights

February 26th, 2015 8 comments

Allwinner has had to good idea to open allwinner-zh github account last September in order to release source code, binary libraries, and documentation for these ARM processors. Yesterday, the company released a new version of their closed source CedarX library used to decode and encode video streams. But Luc Verhaegen (libv), known for his reverse-engineering work on ARM Mali-400 (lima driver) and now Mali-Txxx GPU (Tamil driver), analyzed the binary and claimed  the library is not compliant with LGPL licenses, and may also infringe on On2 copyrights.

Allwinner_GPL_LGPLLuc wrote his concerns on sunxi-linux mailing list, and Allwinner promised to look into it.

Two libraries are involved:

  • ffmpeg which includes both LGPL and GPL licenses, but the contention seems to be about the LGPL part, since only optional features are GPL’ed in ffmpeg. It’s perfectly fine to include LGPL libraries into your binaries, as long as you don’t modify the open source libraries, but if you do, the source code modifications must be released under an LGPL license.
  • libvp62 an open source implementation of On2 VP6 codec released in 2006 that was taken down due to copyright infringements since it was allegedly “anti-compiled from Java”

I can imagine the timeline for the latter happened that way:

  1. Management to customer: “OK, we’ll get you a VP6 demo next week”
  2. Management to engineering team: “I need VP6 for next week to show to our most important customer”
  3. Engineering team: Open jaw first, then look for code on Baidu, and find it on pudn (Sight of relief)
  4. VP6 demo is implemented and successfully demo’ed to customer
  5. Management, customer and engineers are all happy! Mission accomplished.

On2 is now owned by Google, so Allwinner could have a problem or two if the copyright infringement is confirmed, and Google takes action. Luckily VP6 video decoding is also supported by ffmpeg, so they may be able to sort this out.

It’s also interesting to read the full thread on sunxi-linux mailing, as people explains what kind of issues they had with closed source project, including a canceled project using Allwinner A20, and potential security issues.

Via Phoronix

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linux 3.19 Release – Main Changes, ARM and MIPS Architectures

February 9th, 2015 4 comments

Linus Torvalds released Linux Kernel 3.19 yesterday:

So nothing all that exciting happened, and while I was tempted a couple of times to do an rc8, there really wasn’t any reason for it.

Just as an example, Sasha Levin used KASan and found an interesting bug in paravirtualized spinlocks, but realistically it’s been around forever, and it’s not even clear that it can really ever trigger in practice. We’ll get it fixed, and mark it for stable, and tempting as it was, it wasn’t really a reason to delay 3.19.

And the actual fixes that went in (see appended shortlog) were all fairly small, with the exception of some medium-sized infiniband changes that were all reverting code that just wasn’t ready.

So it’s out there – go and get it. And as a result, the merge window for 3.20 is obviously also now open.

Linus

Linux 3.18 improved performance of the network stack, received BTRFS and EXT-4 file systems improvements, introduced overlayfs for live CDs, and more.

Some changes made to Linux 3.19 include:

  • Btrfs: support scrubbing and fast device replacement in RAID 5&6Btrfs  – Added support for fast & live device replacement (see btrfs-replace), much faster and efficient than adding the new device and removing the old one in separated commands. This feature could not fast-replace devices from file systems using RAID 5 & 6, this release has removed that limitation. Support for the process of scrubbing a btrfs filesystem (with btrfs-scrub) has also been added for RAID 5&6 file systems.
  • Support for Intel Memory Protection Extensions – Intel’s Memory Protection Extension (MPX) is a set of CPU instructions which brings increased robustness to software by checking pointer references usurped maliciously at runtime by buffer overflows. This Linux release adds support in the Linux kernel, although CPUs with MPX support are not sold yet (To be introduced with Intel Skylake and Goldmont microarchitectures). LWN article: Supporting Intel MPX in Linux
  • SquashFS adds LZ4 Compression Support
  • Work on year 2038 bug – do_settimeofday(), timekeeping_inject_sleeptime(), and mktime() now have 2038-safe replacements
  • The networking layer has a new subsystem for offloading switching and routing duties to suitably capable hardware
  • Audio – Intel Baytrail-based audio devices, Samsung Exynos7 I2S controllers, NXP Semiconductors TFA9879 amplifiers, and Texas Instruments TS3A227E headset chips.

Some of the new features and improvements specific to the ARM architecture include:

  • Allwinner:
    • Simple Framebuffer and USB phy driver support for usb0  for Allwinner A10 / A10s / A13 / A20 / A31 / A23
    • NAND Flash driver for Allwinner A10 & A20
    • DMAengine driver for Allwinner A23 (Shared with A31)
    • Allwinner A80 – initial machine support, basic clocks and reset, pinctrl driver, extra UART, I2C, LEDS
    • New boards: Mele M3, LeMaker Banana Pi, Merrii A80 Optimus Board, Olimex A20-OLinuXino-Lime2
  • Rockchip
    • RK3288 – Basic SMP support
    • Device tree for MarsBoard RK3066
    • Added support for rk3066-tsadc variantof rockchip_saradc
    • Add support for the mmc clock phases using the framework
  • Amlogic
    • Added DTSI for Meson8 SoCs
    • Driver for Meson IR remote control
    • Support for Meson SPIFC
  • Mediatek
    • Basic support for MT6592, MT8127 and MT8135
    • DTS for 8127 Moose board, MT8125 evaluation board, and MT6592-EVB
  • ARM64
    • Added Device tree for Juno and AMD Seattle platform
    • Added framework for legacy instruction emulation, secomp suport, SMBIOS/DMI support, etc…
  • Atmel AT91 architecture has gotten rid of board files, and is now fully converted to device tree
  • Other new device tree files: Altera Arria10 SoC, Synology DS213j/DS414, Braodcom BCM5301X devices (Asus RT-N18U, Buffalo WZR-1750DHP, Buffalo WZR-600DHP2, Netgear R6300 V2 ), DLink DIR665, Raspberry Pi model B+, Freescale LS1021A, TBS2910 Matrix ARM mini PC, NHK15 board (nomadik)

Some changes have been listed for MIPS architecture too:

  • BMIPS: Add PRId for BMIPS5200 (Whirlwind)
  • Enable VDSO randomization
  • Loongson-3 –  Add PHYS48_TO_HT40 support, Add RS780/SBX00 HPET support, Add oprofile support
  • Loongson1B – Add a clockevent/clocksource using PWM Timer
  • Loongson –  Allow booting from any core
  • Support for hybrid FPRs
  • ath25 – Add basic AR2315 SoC support, add AR2315 PCI host controller driver, add basic AR5312 SoC support
  • bcm3384 – Initial commit of bcm3384 platform support
  • ralink – add mt7628an support, add rt2880 pci driver, add support for MT7620n

A more detailed changelog for Linux 3.19 will soon be available on Kernelnewbies.org. You can also checkout ARM architecture and drivers sections for more details about changes related to ARM, MIPS and other platforms.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Snappy Ubuntu Core is an IoT Linux Distribution for ARM and x86

January 21st, 2015 14 comments

Canonical has announced a version of Ubuntu specifically designed for IoT devices running Linux, with a low hardware requirements, and a new package manager called snappy, replacing apt-get for this version of Ubuntu, which provides simpler, faster, and more reliable updates, stronger security, and allows roll-backs in case something goes wrong. Easy firmware updates are something missing in most connected device, which means they are more vulnerable to potential hackers, but with snappy security updates should be able to make it regularly, so that if something like heartbleed occurs again, you know your router, home automation gateway, connected washing machine, or robot will be soon patched automatically.

Snappy Ubuntu Core Logo

Snappy Ubuntu Core Logo

Let’s go through the hardware requirements first:

  • Processor – 600 MHz processor (ARMv7 or greater, or x86)
  • System Memory – 128 MB RAM or greater (The system itself uses 40 MB RAM)
  • Storage – 4GB flash / storage for factory reset and system rollback

So the hardware requirements are not quite as low as something as OpenWRT, but still lower than what you’d expect from Ubuntu, so you could use an old laptop or PC as a development platform, and Canonical also recommends BeagleBone Black or ODROID-C1 ARM based development boards. The Raspberry Pi board won’t work with Snappy, because Broadcom BCM2835 processor is using an older architecture (ARMv6) not supported by Ubuntu.

Snappy Architecture

Snappy Architecture

Twenty one companies and organization have partnered with Canonical on Snappy Ubuntu Core:

  • Home automation – Ninjablocks (Ninjasphere), Openhab (smarthub framework), Trasibot
  • Robotic – OSRF – ROS robots, , Erle Robotics with Erle-Copter
  • Development Boards – Hardkernel ODROID-C1, Beagleboarg community’s Beaglebone Black, Lemaker (Banana Pro), Udoo, LinkSprite (PCDuino), and Parallella
  • Silicon Vendors – Allwinner
  • IoT frameworks – Kaa, DeviceHive, IoTSys, Resin.io, OpenSensors.io
  • Misc- Riot-OS, Nwave, Fairwaves,  Docker with Weave

As mentioned in the introduction, apt-get is no where to be found in Snappy, as the distribution is using snappy instead, but the command line options remain familiar in some aspects:

$ sudo snappy install docker
docker      4 MB    [=====================================================]   OK
Part          Tag         Installed        Available        Fingerprint       Active
docker        edge        1.3.2.004        -                788b0787b18b1c    *

with various new/different options like info, search, versions and more:

$ snappy versions -a
PART               TAG      INSTALLED           AVAILABLE   FINGERPRINT   ACTIVE
ubuntu-core        edge     14.11.1-20141130    -           4e8c32456ab10
ubuntu-core        edge     14.12.1-20141201    -           7611de9a73923 *
docker             edge     1.1.21              -           34b32c359a08e *
hello-world        edge     1.0                 -           27e98ab23492c *

You can see in the list above two version of ubuntu-core, with one ACTIVE and the previous available for roll-back with the command:

$ sudo snappy rollback ubuntu-core
rolling back ubuntu-core -> (edge 14.11.1-20141130 8337ce7b64821)
Reboot to use the new ubuntu-core.

You can find more example in Ubuntu Developer’s snappy page, and find out snappy can also be used to build software packages from source.

There’s also a work-in-progress web interface called WebDM (Web Device Manager) used to configure the device and install packages. It can be installed with sudo snappy install webdm, but Canonical warns it should not be enabled in production devices for now, as access control is not implemented yet.

WebDM

WebDM

If you want to try it, you don’t even need extra hardware, as a Snappy Ubuntu Core instances can be launched from Azure, GCE or Amazon EC2  cloud services, or run in a Virtual Machine with KVM, OVA (VMWare, VirtualBox,…) or Vagrant. All you have to do is follow the instructions provided here. Complete instructions and a preview image are also available for the BeagleBone Black. There does not seem to be pre-built images yet for the other ARM boards mentioned in this article.

Via LinuxGizmos

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

So This is How Allwinner A80 Cheats at Antutu Benchmark…

January 11th, 2015 9 comments

Ever since Allwinner A80 was released, the Antutu scores did not add up with some devices getting around 30,000 points, while other devices scoring close to 50,000 or even higher. But what about 143,430 points? Now that would be impressive, and that’s exactly what Byron got in his Tronsmart Draco AW80 box, after changing a single parameter.

Draco_AW80_Antutu_Score

Draco AW80 Antutu Score (Click to Enlarge)

The screenshot above reports a Nexus 10 because he must be using one of Freatab ROM, where they often change the device name for better Google Play compatibility. Nevertheless what kind of sorcery is that? How could he achieve this?

It turns out build.prop, as a key called ro.sys.hiritsu. It’s set to 30 in the stock firmware, but if you change this to 95, some magic happens, and you get the very high score above. Byron reported his box got pretty hot with this setting, so it’s probably better not to try a high value… Hiritsu (ひりつ) is a Japanese word meaning “ratio, proportion, percentage”, and in this case It looks like it just set the Antutu cheating ratio… Manufacturers may decide to adjust it just a bit to show a very good score, but not too high or it’d look suspicious.

What happens if you remove ro.sys.hiritsu from build.prop? Freaktab member fess tried it, and the score falls down to 36,185, which should be closer to reality, and similar to the score (36,903) I got using Antutu X. Another member try to adjust the setting to 30 and 35 and run both Antutu and GFXBench. Antutu score goes up from one setting to the other, but GFXBench stays put at 476. GFXBench is a graphics intensive score, and maybe a CPU intensive benchmark, might have a slightly higher score, but certainly in the order of magnitude shown in Antutu.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

AllWinner A64 is a $5 Quad Core 64-bit ARM Cortex A53 SoC for Tablets

January 8th, 2015 8 comments

Allwinner already announced H64 octa-core Cortex A53 processor for OTT boxes together with Nobel64 development board in the last quarter of last year, and the Chinese silicon manufacturer has now introduced Allwinner A64 quad core Cortex A53 processor for entry-level tablets, as the processor will only cost $5 per unit in large quantities.

Allwinner_A64As usual, Allwinner only provided a subset of information for their first announcement, and some technical details like the GPU are unknown.

Key features listed for Allwinner A64:

  • 64-bit Cortex-A53 architecture
  • Supports H.265/H.264 video decoding in hardware, and supports HDMI 4K display
  • Supports various DDR memory types, making the BOM cost more competitive
  • Supports eMMC 5.0 for better IO performance and enhanced data throughput capacity
  • Allwinner SmartColor display technology for more vivid and eye-pleasing visual experience
  • Supports Trusted Firmware security architecture from ARM

The company is finally moving to a device tree enabled kernel with Linux 3.10, and Allwinner 64-bit ARM tablets will also run Android 5.0 Lollipop. Hopefully, this processor implements proper H.265 hardware decoding, not GPU accelerated decoding as in Allwinner A80 processor. Interestingly neither Allwinner A64, nor Rockchip RK3368 announced recently, support VP9, despite it being the codec of choice for YouTube 2160p content.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter