Thomas Petazzoni is Bootlin's co-owner and CEO. Thomas joined Bootlin in 2008 as a kernel and embedded Linux engineer, became CTO in 2013, and co-owner/CEO in 2021. More details...
A little bit more than one year after 0.9.31, the uClibc project has recently released a new version of the famous C library, uClibc 0.9.32. For the record, uClibc is an alternative standard C library for embedded Linux systems, which features a smaller size than the usual glibc or eglibc, a high-level of configurability and support for non-MMU architectures. uClibc usage is mandatory on non-MMU architectures running a Linux kernel since the traditional glibc or eglibc do not support non-MMU architectures. On architectures with MMU, uClibc may also be interesting for its reduced size, and has been used in a large number of systems over the last years.
The 0.9.32 release brings one major new feature : the support of the Native Posix Threads Library for the most common architectures (ARM, MIPS, PowerPC, x86, x86_64, SuperH and SuperH 64). NPTL is a different way of implementing the pthread userspace API than the one previously used in Linux, called LinuxThreads. The kernel mechanisms needed to implement NPTL have been added in 2.6 and support in glibc has been added a long time ago. uClibc was lagging behind in this area, and the new release fills this gap. This feature does not bring any visible API change, but completely changes the internal implementation of the threading mechanism, with better performance and a behavior that is more similar to the one we have on glibc based hosts. For more details about the differences about NPTL and LinuxThreads, one can check Ulrich Drepper and Ingo Molnar’s paper on this topic: NPTL Design paper.
Another new feature of the 0.9.32 release is support for the C6x architecture, which is a DSP architecture from Texas Instruments, capable of running a Linux kernel (see http://linux-c6x.org). Having upstream support in uClibc allows this architecture to benefit from a nice standard C library.
As expected with the time-based releases, Buildroot 2011.05 has been released just a few days ago. We have already published many blog posts about Buildroot, but to summarize for our new readers, Buildroot is a tool that automates and simplifies the process of building an embedded Linux system. You define your system configuration and components in a menuconfig/xconfig interface similar to the one the kernel uses, then hit make, wait a bit, and you have your embedded Linux system ready to run on your device. At Bootlin, we appreciate the simplicity of Buildroot, and many of our customers also appreciate it for the same reason. Of course, we also contribute significantly to Buildroot and we have started a commercial support offering on Buildroot.
The 2011.05 release
The 2011.05 release cycle was a little bit more quiet than usual, so the number of new features or major changes is not as large as it was for past releases. Amongst the interesting things:
Until now, Buildroot was only capable of building systems using a static /dev, in which device files are statically listed in a device table and created at system build time. The 2011.05 has added a configuration option to select how the /dev directory on the target should be handled. It can be handled in four different ways:
with a static /dev, just as before
with just devtmpfs. It allows to have a dynamic /dev without any other userspace components, which is really nice.
with devtmpfs and mdev. In addition to having a dynamic /dev, it allows allows to execute arbitrary scripts when device are added/removed and to customize the owner, group and permissions for the device files.
with devtmpfs and udev. This is the full solution, as used in desktop distributions.
There has been an internal infrastructure change on support for external toolchains, and this change will make those toolchains slightly easier to use. In Buildroot terminology, an external toolchain is a toolchain that hasn’t been built by Buildroot, but which Buildroot uses to compile code for the target platform. It allows to re-use existing toolchains such as the CodeSourcery toolchains, or toolchains generated externally with Crosstool-NG. To support those toolchains, we rely on the sysroot mechanism that the GCC compiler provides since the 4.x era. This mechanism allows Buildroot to make a complete copy of the C library binaries, C library headers and kernel headers into a staging directory, and then tell the toolchain utility (compiler, linker, etc.) to use this new directory as their sysroot. This means that a --sysroot option needs to be passed at every invocation of those tools. As this was not very convenient, especially to use the Buildroot toolchain as a SDK to build applications not packaged in Buildroot, the 2011.05 has added wrappers for the toolchain tools, which makes this completely transparent. So one can now just use $(O)/host/usr/bin/arm-linux-gcc as usual, and it will do the right thing.
A few new packages have been added: bonnie++ (a block device benchmark), can-utils (userspace utilities for the famous industrial CAN bus), gdisk (a sort of fdisk program, but for the new GPT partition table format), htop (a nice top alternative to watch the activity of processes), input-event-daemon (a simple daemon that executes arbitrary command in reaction to input events), libexif (a library to read the contents of EXIF tags in pictures), libraw (a library to decode pictures in various RAW formats), libv4l (the library to interact with Video4Linux devices), ngircd (an IRC server).
Many packages have been upgraded: the Gtk stack, the U-Boot and Barebox bootloaders and the internal toolchain components (gcc and uClibc), with experimental gcc 4.6 support.
Buildroot in the Linux Journal
The Linux Journal has published an issue, numbered 206, dedicated to Embedded Linux. This issue has several articles around Embedded Linux related topics:
Hexapod, a Linux powered robot
Debugging Embedded Linux platforms with Python and GDB
Breaking free the Gumstix DSP
Speech I/O for Embedded Applications
CyanogenMod 7.0, Gingerbread in the house
Tiny Core Linux
Roll your own Embedded Linux System with Buildroot, written by Alexander Sirotkin, which gives a good introduction to what Buildroot is and how to use it.
It is great to see articles about Buildroot in a such widely read magazine, and it should definitely help increasing the awareness about this build system.
Since early 2009, our training sessions have been using the USB-A9263 board from Calao Systems as the hardware platform for the practical labs. However, this AT91-based platform was getting older, and we therefore started the process of switching our training sessions to a new hardware platform, the IGEPv2 board from ISEE.
The IGEPv2 platform is very similar to the popular BeagleBoard and BeagleBoard-XM platforms, and has the following technical characteristics :
TI DM3730, which is the latest OMAP3 processor from Texas Instruments, clocked at 1 Ghz, and including a DSP for signal processing, an IVA block for audio/video decoding and the PowerVR SGX for 3D/OpenGL. This processor offers far more possibilities than the AT91 one, especially for multimedia applications.
512 MB of RAM and 512 MB of OneNAND flash.
Integrated Ethernet connector, Wifi and Bluetooth connectivity.
One USB OTG port and one USB host port.
A microSD connector.
A DVI-D connector (HDMI), stereo input and ouput
RS232 connector
Multiple expansion ports to access LCD, camera, I2C, SPI, JTAG, etc. signals
Compared to the BeagleBoard-XM, this board has the following advantages:
it has a OneNAND Flash device, which allows us to demonstrate and practice the usage of MTD and Linux flash-specific filesystems such as JFFS2 and UBIFS in our training sessions. Even though block-based storage such as SD and eMMC is more and more popular in consumer-electronic devices, usage of raw NAND flash is still very common in industrial applications, and we therefore wanted to keep presenting those devices and their usage in embedded Linux
ISEE, the company manufacturing the IGEPv2, is located in Spain, which makes it easier for us to regularly order boards from them, since we are also located in Europe
the board provides Bluetooth and Wifi connectivity, which is nice
We have already given two sessions of our Embedded Linux system development training with the IGEPv2, and all our future sessions of this training will use this hardware platform, so the participants will benefit from a more modern platform, with far more capabilities than our previous AT91-based training hardware. This is also the board we are now giving to the participants to our public training sessions, so those participants come back home with a very nice and powerful platform which allows countless experiments around embedded Linux. Note that we also intend to port our Embedded Linux kernel and driver development training session to the IGEPv2 platform in the near future.
Just after the Embedded Linux Conference 2011, the first edition of the Android Builders Conference took place in San Francisco, on April 13th and April 14th 2011. This is the first, and to date, probably the first, conference entirely dedicated to Android low-level components and on how Android systems are built and modified. The number of resources, documentation and conferences on Android application development is already huge, but the amount of system-level information about Android is still relatively limited. This conference comes to fill in this gap, allowing engineers working on Android-based systems to share their experience. With a single track of talks for the first half-day, and two tracks for the second full day, it was a very nice first edition, and the co-location with the Embedded Linux Conference was well-appreciated. Interestingly enough, no talks were given by Google engineers, despite the fact that they are the primary designers and developers of the Android system.
Just as we did for the Embedded Linux Conference a few days ago, we are also publishing below the videos of all talks given during this Android Builders Summit. Of all the presentations, the ones we found the most interesting are certainly:
Karim Yaghmour’s talk about « Android Internals » and «Porting Android to new hardware»
Aleksander “Sasa” Gargenta’s talk «A walk through the Android stack». Unfortunately, the speaker had way too much contents for the one hour slot, but the content presented was very, very interesting.
Mark Brown’s talk «Linux audio for smartphones»
Mike Woster Linux Foundation Android Builders Summit Introduction Video (2 minutes): full HD (31M), 450×800 (11M)
Christy Wyatt Motorola Motorola: innovation rising Video (36 minutes): full HD (454M), 450×800 (142M)
Mark Charlebois Qualcomm Innovation Center From the alliance to the evolution: the history and future of Android innovation Video (26 minutes): full HD (332M), 450×800 (103M)
Greg Burns QuIC AllJoyn and the new era of peer-to-peer-technology Video (55 minutes): full HD (680M), 450×800 (209M)
Mark Brown Wolfson Micro Linux audio for smartphones Slides Video (46 minutes): full HD (560M), 450×800 (173M)
Karim Yaghmour Opersys Android Internals Slides Video (58 minutes): full HD (793M), 450×800 (245M)
Mark Gross Intel Device provisioning anad over the air updates for Android-2011 Slides Video (48 minutes): full HD (847M), 450×800 (214M)
Peter Vescuso Black Duck Software Managing Android and the complexity inside Video (35 minutes): full HD (375M), 450×800 (121M)
Hansung Chun ETRI I/O performance improvement, using ext2 in Android-2011 Slides Video (44 minutes): full HD (915M), 450×800 (210M)
Magnus Bäck Sony Ericsson Using the Debian package manager to assemble Android-based phone software systems Video (45 minutes): full HD (357M), 450×800 (134M)
Tim Bird Sony Network Entertainment Trying to improve Android boot time with readahead Slides Video (38 minutes): full HD (833M), 450×800 (194M)
Bruce Beare Intel Living with Gerrit Slides Video (42 minutes): full HD (404M), 450×800 (137M)
Karim Yaghmour Opersys Porting Android to new hardware Slides Video (43 minutes): full HD (822M), 450×800 (209M)
Marko Gargenta Marakana Beyond the phone Slides Video (44 minutes): full HD (682M), 450×800 (193M)
Neil Trevett NVIDIA Open API standards as a foundation for Android innovation Video (42 minutes): full HD (523M), 450×800 (173M)
Vitaly Wool, presented by Mark Gross Sony Ericsson WiFi and Android: powersave saga Video (31 minutes): full HD (544M), 450×800 (136M)
Aleksander “Sasa” Gargenta Marakana A walk through the Android stack Video (60 minutes): full HD (689M), 450×800 (234M)
Armijn Hemel gpl-violations.org Licensing pitfalls in Android and how to avoid them Video (44 minutes): full HD (662M), 450×800 (183M)
Tim Bird Sony Network Entertainment Android System Programming Tips and Tricks Slides Video (42 minutes): full HD (459M), 450×800 (153M)
The Embedded Linux Conference 2011 took place between April, 11th and April, 13th in its now usual place, the Kabuki hotel in San Francisco, California. It was the first edition organized since the merge of the CE Linux Forum into the Linux Foundation. During three days, three parallel tracks of talks and BoFs about technical topics around embedded Linux : kernel support, power management, build systems, file systems, real-time, and more.
As usual, part of the Bootlin team was at this Embedded Linux Conference, in order to keep up with the latest developments from the embedded Linux community. Gregory Clement (left on the picture), Maxime Ripard (right on the picture) and myself (center on the picture) were present, and we recorded all talks of the conference. And just a little bit more than one month later, we are ready to announce that all videos are now available online, in 1080p high-definition, and in a lower 450p resolution, encoded with the new VP8 codec.
Amongst all the conferences below, each of us have selected the three ones we thought were the most interesting ones (note that the top three for each us is necessarily composed of distinct talks, as none of us have seen the same talks since we had to record talks from three different sessions in parallel) :
For Gregory Clement, the top three is: Yoshiya Hirase talk about Faster Resume For More Energy Savings on MeeGo, Arnd Bergmann talk about Optimizations For Cheap Flash Media (which follows Arnd article on the same topic in LWN) and a set of three related talks about the video infrastructure in the Linux kernel, that Gregory recommends to watch in this order: Media Controller Framework (MCF) For OMAP2+ Display Subsystem (Sumit Semwal), Video4linux: Progress, New videobuf2 Framework and the Future (Hans Verkuil) and Bringing up HDMI Display for OMAP4 Panda Board – Design, Challenges and Lessons Learned (Mythri pk).
For Maxime Ripard, the top three is: John Stultz talk about Android for servers, Mike Anderson talks about ARM NEON and GPU programming, Wolfram Sang talk about Helping the process
For myself, the top three is: Jesse Barker talks about the ARM Graphics ecosystem which gives a nice overview of the state of this topic, Hai Shalom talk about PCD (which is an original and interesting replacement for init), Dave Stewart talk about The Yocto Project and its Application Development Toolkit (because it gives details on how Yocto is supposed to be used for application development, a topic I’m interested in as a Buildroot developer)
It is also worth noting that this Embedded Linux Conference was co-located with the first edition of the Android Builders Summit, for which we will soon publish videos as well. The next embedded Linux conference will take place in Europe, in Prague from October 26th to 28th, co-located with the first edition of LinuxCon Europe and just after the Kernel Summit. Prague will really be full of Linux developers during this end of October, it’s time to book this week on your agenda as well !
Finally, the list of all videos of Embedded Linux Conference 2011, along with their corresponding slides :
Tim Bird Sony Network Entertainment Welcome Keynote Video (10 minutes): full HD (131M), 450×800 (43M)
Dirk Hohndel, Richard Purdie Intel, Linux Foundation The Yocto Project Video (35 minutes): full HD (458M), 450×800 (140M)
Keshava Munegowda Texas Instruments Power Fail Safe FAT File Systems Slides Video (48 minutes): full HD (693M), 450×800 (203M)
Frank Rowand Sony Identifying embedded real-time issues: I-cache and locks Slides Video (46 minutes): full HD (471M), 450×800 (147M)
Bruno Cardoso Lopes University of Campinas LLVM, Clang and Embedded Linux Systems Slides Video (50 minutes): full HD (593M), 450×800 (164M)
Steven Rostedt RedHat Kernel Shark Tutorial Video (49 minutes): full HD (743M), 450×800 (215M)
Kang Dongwook ETRI Snapshoot Booting on Embedded Linux Slides Video (33 minutes): full HD (284M), 450×800 (95M)
Khem Raj State of OpenEmbedded Internal Toolchain and SDKs Slides Video (41 minutes): full HD (289M), 450×800 (119M)
David Rusling Linaro Linaro: a year of change Slides Video (50 minutes): full HD (529M), 450×800 (173M)
Hai Shalom Atheros Control, recover and debug your embedded product with PCD Slides Video (50 minutes): full HD (470M), 450×800 (160M)
Gene Sally Zigbee Networking and Linux Video (53 minutes): full HD (262M), 450×800 (139M)
Xi Wang Broadcom Solving real-time scheduling problems with RT_PREEMPT and deadline-based scheduler Slides Video (43 minutes): full HD (422M), 450×800 (141M)
Mike Anderson The PTR Group ARM Neon instruction set and why you should care Slides Video (53 minutes): full HD (527M), 450×800 (169M)
Darren Hart Intel Yocto Project: Practical Kernel Development Tutorial Video (52 minutes): full HD (551M), 450×800 (196M)
Arnd Bergmann IBM Optimizations for cheap flash media Slides Video (49 minutes): full HD (482M), 450×800 (160M)
Wolfram Sang Pengutronix Developer’s diary: helping the process Slides Video (39 minutes): full HD (315M), 450×800 (112M)
Rajesh Lal Nokia Fun with QML and Javascript Slides Video (39 minutes): full HD (250M), 450×800 (108M)
Thomas Gleixner Linutronix RT-Preempt: what’s the state and why there is no roadmap Slides Video (46 minutes): full HD (447M), 450×800 (149M)
Jason Kridner Texas Instruments High-level web interface to low-level I/O on the BeagleBoard Slides Video (36 minutes): full HD (370M), 450×800 (115M)
Arnd Bergmann IBM Becoming part of the Linux kernel community Slides Video (34 minutes): full HD (376M), 450×800 (126M)
Paul Mundt Renesas Working with hardIRQs: life beyond static IRQ assignments Slides Video (36 minutes): full HD (330M), 450×800 (113M)
Amit Kucheria Linaro Powerdebugging inside Linaro Slides Video (46 minutes): full HD (309M), 450×800 (136M)
Mike Anderson The PTR Group High-performance computing using GPUs Slides Video (57 minutes): full HD (615M), 450×800 (185M)
Paul Larson Canonical Linaro automated validation on ARM Video (51 minutes): full HD (581M), 450×800 (184M)
Dave Stewart Intel The Yocto project and its application development toolkit (ADT) – The answer to effective embedded application development Video (42 minutes): full HD (362M), 450×800 (139M)
Damian Hobson Garcia, Katusya Matsubara, Takanari Hayama, Hisao Munakata Igel Integrating a Hardware Video Codec into Android Stagefright using OpenMAX IL Slides Video (55 minutes): full HD (564M), 450×800 (177M)
Koen Kooi Texas Instruments Integrating OpenEmbedded and Yocto Slides Video (52 minutes): full HD (465M), 450×800 (159M)
Mark Gross Intel How to power tune a device running on a Linux kernel for better suspend battery life Slides Video (49 minutes): full HD (273M), 450×800 (129M)
Remi Lorriaux Adeneo Embedded Real-time audio on embedded devices Slides Video (44 minutes): full HD (437M), 450×800 (138M)
Magnus Damm Runtime PM: upstream I/O device power management Slides Video (53 minutes): full HD (486M), 450×800 (164M)
Jesse Barker Linaro Linux graphics meets the ARM ecosystem Slides Video (50 minutes): full HD (329M), 450×800 (147M)
David Anders Texas Instruments Board bringup: open-source hardware and software tools Slides Video (38 minutes): full HD (376M), 450×800 (118M)
John Williams PetaLogix Dynamic co-simulation of FPGA-based systems on chip Slides Video (57 minutes): full HD (567M), 450×800 (198M)
Summit Semwal Texas Instruments Media Controller Framework (MCF) for OMAP2+ display subsystem Slides Video (49 minutes): full HD (518M), 450×800 (155M)
John Stultz IBM Android for servers? Slides Video (37 minutes): full HD (425M), 450×800 (137M)
Anand Gadiyar Texas Instruments Tools and techniques for debugging embedded systems Slides Video (30 minutes): full HD (139M), 450×800 (81M)
Hans Verkuil Cisco Video4linux: progress, new videobuf2 framework and the future Slides Video (56 minutes): full HD (534M), 450×800 (171M)
Yoshiya Hirase Nokia Faster resume for more energy saving on MeeGo Slides Video (58 minutes): full HD (727M), 450×800 (218M)
Jake Edge Linux Weekly News What embedded Linux developers should know about IPv6 Slides Video (46 minutes): full HD (266M), 450×800 (122M)
Grégoire Gentil Always Innovating Hot multi-OS switch: how to run Ubuntu, ChromiumOS, Android at the same time on an embedded device Video (61 minutes): full HD (515M), 450×800 (174M)
Xi Wang Broadcom Controlling memory footpring at all layers: Linux kernel, applications, libraries and toolchain Slides Video (38 minutes): full HD (511M), 450×800 (152M)
Tom Zanussi, Saul Wold Building custom embedded images with Yocto Slides Video (49 minutes): full HD (500M), 450×800 (173M)
Philip Balister Open SDR A high performance interface between the OMAP3 and a FPGA Slides Video (51 minutes): full HD (347M), 450×800 (149M)
Jean Pihet NewOldBits.com The evolution of tracing and profiling for power management and accelerators Slides Video (40 minutes): full HD (428M), 450×800 (133M)
Elizabeth Flanagan Intel Delivering predictability: the Yocto project autobuilder, automated sanity testing, license collection and build statistics tracking Slides Video (48 minutes): full HD (241M), 450×800 (133M)
Mythri pk Texas Instruments Bringing up HDMI display for OMAP4 Panda board: design, challenges and lessons learned Slides Video (40 minutes): full HD (363M), 450×800 (122M)
Khem Raj Debug/develop uClibc with QEMU Slides Video (35 minutes): full HD (226M), 450×800 (98M)
Gunter Ravi Sankar Samsung What are and how to find a program’s unused DSOs Slides Video (49 minutes): full HD (453M), 450×800 (143M)
As every year, FOSDEM, the largest community-driven open source conference in Europe, took place early February in Brussels. And again, Bootlin was around with its HD camcorder, to record the conferences of interest for embedded developers. They are now available for download!
The Libre Software Meeting (Rencontres Mondiales du Logiciel Libre in French) is a community-driven event that takes place every year in France, and covers a wide range of topics in the free and open source software domain. Each year, an Embedded systems and free hardware topic is proposed, which in 2010 was lead by Florian Fainelli, Pierre Ficheux and myself.
While most of the talks took place in French, a few talks were given in English and as we recoded videos from those talks, we thought it’d be a good idea to highlight them to the english readers of our blog. We found it especially important since amongst those videos, there are two particularly interesting presentations from Sarah Sharp, a kernel developer from Intel, about USB3 and its support in Linux. As usual, all our videos are published under the Creative Commons Attribution – ShareAlike Licence version 3.0 license.
In just two weeks from now, the Embedded Linux Conference will start in San Francisco, followed by the Android Builders Summit, at the usual Hotel Kabuki location, where the conference is taking place for the third consecutive year.
The program of the Embedded Linux Conference has been announced recently, and as usual, features a wide set of technical embedded Linux talks:
Filesystem/storage: Power Fail Safe FAT File System, Optimizations For Cheap Flash Media, from Arnd Bergmann, who has also recently published a very interesting article on the same topic.
Power management: Faster Resume For More Energy Savings on MeeGo, Powerdebug(ging): A Linaro Perspective, How to Power Tune a Device Running on a Linux Kernel for Better Suspend Battery Life, The Evolution of Tracing and Profiling for Power Management and Accelerators, Runtime PM: Upstream I/O Device Power Management
Real-time: Solving Real-Time Scheduling Problems with RT_PREEMPT and Deadline-Based Scheduler, Real-time Audio on Embedded Devices, Identifying Embedded Real-Time Latency Issues: I-Cache and Locks
Build system, with a huge number of Yocto-related talks, but no other build systems represented: State of OpenEmbedded Internal Toolchain and SDKs, Yocto Project: Practical Kernel Development Tutorial, Building Custom Embedded Images with Yocto, The Yocto Project and its Application Development Toolkit (ADT) – The Answer to Effective Embedded Application Development, Yocto Project Community BoFs, Delivering Predictability: The Yocto Project Autobuilder, Automated Sanity Testing, License Collection, and Build Statistics Tracking
Multimedia: Fun with QML and JavaScript, Integrating a Hardware Video Codec into Android Stagefright using OpenMAX IL, Media Controller Framework (MCF) For OMAP2+ Display Subsystem, Video4linux: Progress, New videobuf2 Framework and the Media Controller, Bringing up HDMI Display for OMAP4 Panda Board – Design, Challenges and Lessons Learned, Linux Graphics Meets the ARM Ecosystem
FPGA: Dynamic Co-simulation of FPGA-based Linux Systems-on-Chip, A High Performance Interface Between the OMAP3 and an FPGA
Networking: What Embedded Linux Developers Should Know About IPv6, Zigbee Networking & Linux
Debugging: Kernel Shark Tutorial and Tools and Techniques for Debugging Embedded Systems
Optimization: Snapshot Booting on Embedded Linux, ARM Neon Instruction Set and Why You Should Care, Controlling Memory Footprint at All Layers: Linux Kernel, Applications, Libraries and Toolchain, High-Performance Computing using GPUs, What Are and How to Find a Program’s Unused DSOs
Low-level: Board Bringup: Open Source Hardware and Software Tools, Working with HardIRQs: Life Beyond Static IRQ Assignments, Genie in the Bottle: Linux Drivers for the AM1808 PRU
And many other talks on various topics: LLVM, Clang and Embedded Linux Systems, Linaro: A Year of Change, Control, Recover and Debug Your Embedded Product with PCD, Developer’s Diary: Helping the Process, High-Level Web Interface to Low-Level Linux I/O on the Beagleboard, Linaro Automated Validation on ARM, Crowd Sourcing and Protecting the Open Source Community, Android for Servers?, Hot Multi-OS Switch: How to run Ubuntu, ChromiumOS, Android at the Same Time on an Embedded Device.
This edition will be the first one organized since the merge between the CE Linux Forum into the Linux Foundation, and will therefore be a great opportunity to see if this merge had any impact on the technical quality of the conference.
My colleagues Maxime Ripard (who joined Bootlin just a week ago) and Gregory Clement as well as myself will be present at the Embedded Linux Conference and the Android Builders Summit, and we will as usual record all talks of both of these conferences and will put them online, as we have done recently for the talks that took place during the Embedded Linux Conference Europe 2010 in Cambridge. Do not hesitate to meet us in San Francisco!
Barebox is a bootloader started about two years ago for embedded systems of various architectures. It plays the same role as U-Boot, which is the best known project in this area, but has several advantages over U-Boot. First, it has a much better configuration and compilation system, based on the one used by the Linux kernel: instead of the rusty include/configs/myboard.h configuration headers in U-Boot, Barebox provides a nice menuconfig/xconfig/defconfig based configuration system, that everyone is familiar with. Second, Barebox has a source code organization very similar to the one of the Linux kernel and has replicated the device/driver model of the kernel. This allows to have a nice separation between device drivers and their instantiation, and a source code that looks familiar to anyone that already does kernel development.
Of course, as Barebox is newer than U-Boot, the number of architectures and platforms is more limited, but it is growing rapidly. It already supports ARM, PPC, Blackfin, x86 and a testing sandbox architecture. On ARM, the supported platforms are AT91, EP93xx, iMX, Nomadik, OMAP, S3C24xx and Versatile. On PPC, a single mpc5xxx platform is supported. Patches to add support for the NIOS architecture have also been posted recently (NIOS is a soft-core architecture from Altera).
As a young but fast-growing project, Barebox has chosen a quick development cycle: new releases are made each month, and Barebox 2011.03 has been released a few days ago. It has many ARM and generic improvements, but is also the first release with contributions from Bootlin :
Gregory CLEMENT (3):
BMP: Add support for 32bpp video frame buffer
ARM STM/i.MX: Add possibility to choose the bit per pixel for STM video driver
fb i.MX23/28: Add the reset control of LCD
My colleague Gregory Clement has contributed several improvements to framebuffer support on the i.MX platform. Those improvements were made in the context of a customer project, for which Barebox was used as a way of showing immediately after the device start-up a nice logo on the screen, while the system continues to boot in the background. Initially, the user had to wait 20+ seconds to see a logo on the screen showing that the system was booting. With our Barebox based solution, a logo is now visible on the screen less than 2 seconds after the power on button is pushed.
The success of the BeagleBoard platform, a low-cost development platform, that has greatly contributed to the success of Texas Instruments OMAP3 processor in the embedded Linux industry, seems to have inspired another processor manufacturer: ST Ericsson. They have recently unveiled Snowball, a low-cost development platform for their AP9500 processor, which features a dual Cortex A-9 ARM core and a Mali 400 GPU.
The development board is designed and produced by our partner Calao Systems, and offers the following features:
The AP9500 processor, dual Cortex-A9 and Mali 400 GPU
4 to 8 GB of e-MMC storage
1 GB of LP-DDR2 RAM
Micro-SD slot
Ethernet connector, Wifi and Bluetooth
HDMI output, composite video output
Audio in/out
USB On The Go
Battery charger
On-board battery to keep time
Serial port connector, JTAG connector, MiPi 34 debug connector
Builtin GPS
3-axis accelerometer, magnetometer and gyrometer, one pressure sensor
Expansion connectors to access SPI, I2C, LCD, MiPi devices, GPIO, UART, etc.
Last but not least, the board can be powered via USB (through a regular cable or through a Y one if power hungry devices like Wifi are used.)
The technical documentation page has a few more details, but at this time, they isn’t a lot of public information available about the AP9500 processor. I hope that ST Ericsson will fully understand how open source works and will soon release datasheets for the AP9500 in an open way. Interestingly, the AP9500 does not use the traditional PowerVR SGX 3D graphics core designed by Imagination Technologies and found in many other ARM processors, but instead uses the Mali graphics core, which is designed directly by ARM. It seems ARM has already open-sourced the kernel side bits of their graphic drivers, but it looks like a proprietary binary blob in userspace is still present.
The board will be available in two variants:
A Product Development Kit variant for 241 Euros.
A Software Development Kit variant for 165 Euros. My understanding is that the only difference between the two are the expansion connectors, present on the PDK variant but not on the SDK variant.
The board should be widely available at the end of Q2 2011, i.e around June, though at Bootlin, we will receive our first samples by the end of March thanks to our partnership with Calao Systems. The Snowball platform is supported by the Igloo Community, which hosts mailing-lists, an IRC channel, documentation and will also provide Meego and Android builds for the Snowball in the future.
Stay tuned on this blog. As soon as we get our own boards, we will write about our experiments with them.