Reader “Mark” recently left a comment saying the NDA on Freescale i.MX6 resources was lifted and documentation and source code were now available for the platform. So it’s time for me to look into it, and provide an overview of Freescale i.MX6 features, list available development platforms, and have a closer look at the documentation, source code and tools for the platform. Freescale i.MX6 Processors In 2011, Freescale initially announced 3 processors in the i.MX6 series for consumer, industrial and automotive markets, but added 2 lite SoC in 2012, and there are now 5 members in the family: Freescale i.MX6SoloLite – Single Cortex A9 processor up to 1 GHz with 256KB L2 Cache, 32-bit DDR3 and LPDDR2 memory support, and 2D graphics accelerator (Vivante GC355 + GC320) Freescale i.MX6Solo – Single Cortex A9 core up to 1 GHz with 512KB L2 Cache, 32-bit DDR3 and LPDDR2 memory support, and 2D & […]
Learn How to Write a Driver for Linux 3.x With The Linux Driver Template
A Linux Driver Template (LDT) has been published to help new Linux kernel developers writing hardware device drivers. Constantine Shulyupin posted the Linux Driver Template (LDT) on the Linux mailing list in order to merge it into the mainline Linux kernel. The code can be used as as a starting point for new drivers, and shows how to use several Linux facilities such as module, platform driver, file operations (read/write, mmap, ioctl, blocking and nonblocking mode, polling), kfifo, completion, interrupt, tasklet, work, kthread, timer, simple misc device, multiple char devices, Device Model, configfs, UART, hardware loopback, software loopback and ftracer. This sample has been added to other device drivers samples in eLinux.org. And if you want to learn further there’s always the Linux driver bible: “Linux Device Drivers, Third Edition” which can be downloaded for free as PDF, although it’s for 2.6.10 kernel and many parts may not be up-to […]
XBMC for Linux on AllWinner A10 Devices? It Works! (Sort of)
Following the lack of support by AllWinner for the video engine libraries (CedarX), I had more or less given up on hope XBMC for Linux would ever run properly on AllWinner A10/A13 hardware. But recently, I found out some progress had been made using existing libs, and saw the Pengpod Tablet video showing XBMC running in Linux fairly smoothly. So I decided to cross-compile XBMC by following the instructions available at http://linux-sunxi.org/XBMC and trying to run it in Linaro ALIP 12.04 rootfs in my Mele A1000. Finally, I managed to cross-compile XBMC, but the performance was very poor in the GUI (6 to 12 fps) and I was unable to play videos and my serial console was flooded with messages like:
1 |
[DISP] not supported image0 pixel sequence:216 in img_sw_para_to_reg |
[Update: I managed to have XBMC Linux running & playing videos on Mele A1000 by using j1nx image (rootfs + kernel). I would first exhibit the exact same […]
Getting Started with 64-bit ARM Development: Hello World and Linux on ARMv8 Fast Models
At the end of last year, ARM announced ARMv8, the first ARM 64-bit ARM archtecture, and last week at ARM Techcon 2012, ARM announced the first ARMv8 cores: Cortex A53 and A57. But since there’s no silicon at the moment, what if you wanted to develop code running on ARMv8 before the hardware is available? The answer is: Fast Models, a Virtual Platform (VP) to accelerate software development. This is especially important for ARMv8 since hardware is not expected to be available for another year. In this post, I’ll first show how to run “Hello World!” in ARMv8 fast models, then we’ll run ARM Linux 64-Bit (Aarch64) in the virtual platform. ARMv8 Foundation Model In order allow the developer’s community to program for ARMv8 (Cortex A53/A57 cores), ARM has made ARMv8 Foundation Model, a virtual platform, available free of charge. This v8 Foundation model provides a basic ARMv8 platform environment […]
Rockchip RK3066/RK30xx Processors Documentation, Source Code and Tools
Rockchip RK3066 (part of RK30xx family) is a Chinese dual ARM Cortex A9 SoC targeting multimedia products such as tablets (e.g. Cube U30GT), mini PC (e.g UG802, MK808) and in theory set-top boxes, but I can’t find any products based on this Rockchip processor. It seems mini PCs/ HDMI TV sticks have taken over this market. RK3066 Processor The processor features two ARM Cortex A9 clocked at up to 1.6 Ghz with a quad core Mali-400MP GPU. It can support 1080p (3D) encoding/decoding, provides HDMI 1.4a, VGA, composite, component and LVDS video outputs (Dual display support), USB 2.0 Host and OTG ports, a MAC interface (Ethernet), and much more… Here are the key features of Rockchip RK3066 processor: Dual Core A9 + Quad Core Mali-400MP GPU 2 banks, 8/16 bit Nor flash / SRAM interface 8 banks, 8/16 bit async NAND flash, LBA NAND flash and 8-bit sync ONFI NAND […]
WM8850-MID Tablet Firmware Files and Root Instructions
I’ve bought a noname tablet described as W8850-MID in the Android Settings that did not come rooted, and after several attempts trying to find how to root the tablet I had more or less given up, as tools such as UnlockRoot or OneClickRoot did not work with the device. After not using my tablet for 2 months, I started it again, but it just showed the Android animation forever, and failed to boot to the home screen. So I had to do something and finally managed to find firmware files for the device and root it. I’ll explain the whole process I went through in this post, but basically all you have to know is that if you have the same WM8850-MID tablet as I have (WM8850_MID7_PuZhi_W01_8223), it is fully compatible with Eken W70 and you can just install the latest W70 firmware (v1.10) from Eken support site that comes […]
Building Kernel Modules for AllWinner A10 Android Devices (e.g. Joystick Support)
Reader JP has enabled Joystick support in Android 4.0.4 on its Mele A1000, this now works with a Playstation2 joystick via USB adapter, a Huskee PC joystick, and 2 other unbranded joysticks. In order to enable Joystick support he had to build a kernel module, and encountered a few issues, so he wrote an how-to which shows what challenges he went through and what solutions he found to those issues.I’m sharing today a slightly edited version of this how-to. This How-to assumes that you have a valid Linux environment where you can build allwinner A10 kernel. The toolchain used was “Sourcery CodeBench for ARM GNU/Linux Lite“ which can be downloaded here: http://www.codesourcery.com/sgpp/lite/arm/portal/package7853/public/arm-none-linux-gnueabi/arm-2010.09-50-arm-none-linux-gnueabi.bin To install it, simply run:
1 |
sudo ./arm-2010.09-50-arm-none-linux-gnueabi.bin |
You’ll also need the latest Allwinner A10 kernel source:
1 |
git clone git://github.com/amery/linux-allwinner.git |
Then follow the usual procedure:
1 2 |
make ARCH=arm sun4i_crane_defconfig make menuconfig ARCH=arm |
I then selected the modules needed for different kind of joysticks namely:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
--- Networking support <*> Bluetooth subsystem support ---> <M> HIDP protocol support Bluetooth device drivers ---> <M> HCI USB driver [*] HID Devices ---> Special HID drivers ---> <M> Sony PS3 controller <M> DragonRise Inc. game controller [*] DragonRise Inc. force feedback <M> Pantherlord/GreenAsia game controller [*] Pantherlord force feedback support <M> GreenAsia (Product ID 0x12) game controller support [*] GreenAsia (Product ID 0x12) force feedback support <M> SmartJoy PLUS PS2/USB adapter support [*] SmartJoy PLUS PS2/USB adapter force feedback support |
I saved the […]
How to Root UG802 Rockchip RK3066 mini PC
If you follow this blog (and others), you should already know there’s a new dual core Cortex A9 Android mini PC in town based on Rockchip RK3066. Deadhp1, a reader of this blog, bought one and left a short review about the device, including his first impressions and an Antutu benchmark (6801). He also noticed that the device is not rooted by default, and followed the instructions for Window N90 II tablet (source: Slatedroid) to root the device: Download Moborobo Download a modified version of SuperOneClick – Short Fuse (Originally found in Slatedroid link above). Install Moborobo and start the program Make sure USB Debugging is enabled on your mini PC(Settings –> Developer Options) Connect your UG802 mini PC (using the microUSB port) to your PC Wait for Moborobo to detect the device Extract the contents of SuperOneClick Run SuperOneClick.exe Click on Root It will says the device is already […]