How to Extract a Device Tree File from Android Firmware Files

Up to now, all our cheap Android devices were based on older Linux kernel (3.0.x, 3.4.x) that still used board files (arch/arm/board, but we’ve recently seen companies like Amlogic and Rockchip release source code with Linux kernel 3.10.x. One of the key differences between these version are the move from board files to flattened device tree and multi-platform support. If it is fully implemented, a single kernel image should be able to boot multiple hardware platforms, and all low level configuration handled by the device tree file. Since I’ve connected the serial port of Tronsmart Vega S89 for debugging, and it’s a slow news day, I thought I might try to boot the Linux kernel I compiled myself, but one of the challenge was to get the device tree file. I’ll show how to extract it from the firmware. It should also be possible to get it directly from the flash, but “cat /proc/mtd” does not show a complete list …

Linux Kernel Source Code and Chromium OS Overlay for Rockchip RK3288

A few days ago, we’ve seen Chromium OS running on Rockchip RK3288 development platform. I’ve been informed the source code could have already been released via the newly registered rkchrome github account with Linux kernel 3.10.30 and the overlay files to build Chromium OS for RK3288. There’s also a u-boot repository but it is currently empty.  This Linux kernel can also boot Rockchip RK3188 based Radxa Rock development board, but more tests are needed to see if it’s really usable. I’ll have a look at the Linux kernel, and try to build it, and leave the Chromium OS part for later or other people. Let’s retrieve the source code: We’ve got two kernel config files related to Rockchip in arch/arm/config: But since this is a recent 3.10 kernel with support for Flattened Device Tree support, and multi-platform support, there’s not much to be seen in these files, and we have to go to arch/arm/boot/dts/ where we can find several rk3188 …

Linaro Connect Asia 2014 Opening Keynote – Status and Future of ARMv8 Linux & Android [Video]

Linaro Connect Asia 2014 has just started in Macau today and will take place until Friday. You can follow the sessions live and/or their recordings via Linaro OnAir YouTube Channel. I’ve watched the opening keynote, and embedded the video at the bottom of this post. The keynote focuses on ARMv8 for Linux and Android on servers, mobile devices, digital home, and more, and involves two main speakers: George Grey, Linaro CEO , and Jon Masters, Chief ARM Architecture at Red Hat. The speaker beginning of the video provides some practical information and the schedule for Linaro Connect. The keynote itself really starts around 15:50 with George Grey who spends the first 10 minutes introducing the latest Linaro members: Qualcomm, Mediatek, ZTE, AllWinner and Comcast. He then talks about the new Mobile sub-committee (MOBSCOM) that will focus on big.LITTLE, Android optimization and Android on ARMv8, as well as the soon-to-be-announced Linaro Digital Home Group composed of AllWinner, ARM, Comcast, Fujitsu, HiSilicon, …

Embedded Linux Conference Europe 2013 Schedule – Build Systems, Security, Device Tree, Debugging & Profiling Techniques, and More

Embedded Linux Conference Europe 2013 will conveniently start right after LinuxCon 2013, last 2 days (October 23-24), and take place at the same location: the Edinburgh International Conference Center, Edinburgh, United Kingdom. The Linux Foundation has published the schedule for the conference, so I’ll make my own virtual schedule with sessions that I find particularly interesting. Thursday – 24th of October 9:30 – 10:10 – Timeline For Embedded Linux by Chris Simmonds, Consultant, 2net Limited Today, Linux is woven into the fabric of our technology. Things such as printers, routers, TVs and phones all have their own “Inner Penguin”. Yet it was never originally intended to be used beyond desktop and server PCs. A lot of things had to happen before Linux could break out of the PC environment and make its way in the world as a jobbing jack-of-all-trades. Since the early beginnings of embedded Linux in the late 1990’s many people have contributed time and know-how that has resulted in today’s Linux based embedded …

Hardkernel is Working on ODROID-XU Development Board Based on Exynos 5410 Octa Core Processor

Hardkernel have already done a good job at bringing low cost, high performance development boards based on Exynos 4 Quad processor with boards such as ODROID-X, ODROID-U2, or ODROID-X2. But it appears they are not stopping here, and have recently committed code to support ODROID-XU development board based on Exynos 5410, the 8-core big.LITTLE SoC from Samsung, used in devices such as Galaxy S4. The committed code linked above point the device tree files in arch/arm/boot/dts/ (exynos5410-odroidxu.dts and exynos5410-pinctrl.dtsi) where we can see the board will have 2 GB RAM, and the Cortex A15 cores with be clocked at 1.6 GHz. Exynos5410-odroidxu.dts has been removed from 3.11 branch, so the link above points to an earlier commit. Exynos 5410 might have been the first big.LITTLE processor ever available, but it comes with a major flaw, as it only supports cluster migration (all 4 Cortex A15 or all 4 Cortex A7 enabled at the same time), whereas big.LITTLE processing also allows …

Supporting 200 Different Expansions Boards: The Broken Promise of Device Tree – ELCE 2012

Koen Kooi, software engineering manager at Circuitco Electronics and lead developer of the Angstrom distribution, explains that device tree does help with the ARM Linux kernel, but brings all the complexity to the bootloader(s), taking the variety of Beaglebone capes as example, at the Embedded Linux Conference in Barcelona, Spain, on November 6, 2012. Abstract: Devicetree is marketed as the one ring to rule them all when it comes to non-discoverable hardware for Linux on ARM. The problem with devicetree is that the complexity gets removed from the kernel and put into the bootloader. Koen first gives an overview of device tree, and provides an example (am33xx.dtsi) to show device tree data structure. Then time for some Beaglebone and capes promotion overview,  before moving to the core of the problem: Pinctrl Resource tracking EVM/bone split uboot/uimage/dtb lockstep pdata only Keycodes and other non-hardware bits You can also download the presentation slides for this talk. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software …

Your New ARM SoC Linux Support Check-List – ELCE 2012

Thomas Petazzoni, embedded Linux engineer and trainer at Free Electrons, describes the steps he followed to add a new Marvell SoC to the mainline kernel at ELCE 2012. Abstract: Since Linus Torvalds raised warnings about the state of the ARM architecture support in the Linux kernel, a huge amount of effort and reorganization has happened in the way Linux supports ARM SoCs. From the addition of the device tree to the pinctrl subsystem, from the new clock framework to the new rules in code organization and design, the changes have been significant over the last one and half year in the Arm Linux kernel world. Based on the speaker’s experience on getting the support for the new Marvell Armada 370 and Armada XP SoC support in the mainline Linux kernel, we will give an overview of those changes and summarize the new rules for ARM Linux support. We aim at helping developers willing to add support for new ARM SoCs …

Device Tree and its Stumbling Blocks – ELCE 2012

Wolfram Sang, kernel developer for embedded systems at Pengutronix, talks about Device trees and conflicts and pitfalls he experienced as a kernel developer and I2C subsystem maintainer. This is one of several talks about Device trees at ELCE 2012. Abstract: Since ARM started to use device trees, their impact on various subsystems in the kernel has been increasing significantly. Because they became the de-facto standard, everybody wants them soon. Because they need a ton of conversions and adaptions, a lot of questions are still unresolved. This carries potential for conflicts.Wolfram has dealt with device trees already on PowerPC and still does on ARM. Additionally, he co-maintains the I2C subsystem which is affected by device tree conversions, too. Knowing both sides, as developer and as maintainer, he will talk about stumbling blocks experienced so far, e.g. typical pitfalls when inventing bindings or the high pace. A number of examples will be given with suggestions how to avoid common mistakes as well …