Unified Extensible Firmware Interface (UEFI) is a specification detailing an interface that helps hand off control of the system for the pre-boot environment (i.e.: after the system is powered on, but before the operating system starts) to an operating system, such as Windows or Linux. UEFI aims to provides a clean interface between operating systems and platform firmware at boot time, and supports an architecture-independent mechanism for initializing add-in cards. UEFI will overtime replace vendor-specific BIOS. It also allows for fast boot and support for large hard drives (> 2.2 TB). There are several documents fully defining the UEFI Specification, API and testing requirements: The UEFI Specification (version 2.3.1) describes an interface between the operating system (OS) and the platform firmware. It describes the requirements for the following components, services and protocols: Boot Manager Protocols – Compression Algorithm Specification EFI System Table Protocols – ACPI Protocols GUID Partition Table (GPT) […]
Pandaboard Benchmark: Android (Pandroid) vs Linaro Android
Here’s a video with two Pandaboards (powered by TI OMAP 4) running Android. On the right, there’s Google’s Android, built with the gcc 4.4 toolchain provided by Google and the Pandroid kernel. On the left, there is a Linaro build, using Linaro’s gcc 4.5 toolchain and Linaro’s 3.0 kernel for the Panda board. There is a noticeable difference in the time taken by both boards to execute the demo. (Android Linaro being faster). The demo (Benchmark by 0xlab) uses software decode on both boards. They also showcase the Freescale i.MX53 and ST Ericsson Snowball development boards. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com
Low Cost Development Board Samsung Origen based on Exynos 4210
Late May, Samsung and Linaro announced Samsung Origen, a low cost development board (199 USD) based on Samsung Exynos 4210, that will use Linaro software and related development tools. This development board is mainly targeted for the development of products such as tablets, smartbooks, IVI, smartphone and other consumer products. Here are the technical details of the board: Cortex-A9 1.0 GHz Dual Core & NEON with leading GHz ARM Technology Samsung Exynos 4210 Advanced Low Power 45nm Application Processor Lower-BOM cost access to Exynos4210 processor with 1GB DDR3 RAM Multimedia Core with H/W Multi Format Codec provides 1080p@30fps HDMI, LCD / Touch screen support, WLAN/Bluetooth and camera. Extreme 3D Graphics Performance accelerated by Mali400 MP4. Wider Memory Bandwidth for Smartphone and Tablet Scenario. Richer Peripherals & High Speed Interface for system: 8ch I2C, HDMI, SATA, PCI Express, USB 2.0 HOST/OTG, 2x SD/MMC Card Slot Debugging Interfaces: JTAG, Serial/RS-232 port Dimensions: […]
Linaro 11.07 Release with Linux Kernel 3.0
Linaro has just released version 11.07, the first version that makes use of Linux 3.0. Here are the highlights of the release: Linaro Evaluation Build (LEB) for Android on PandaBoard is built on Linux 3.0 kernel with gcc-linaro 4.6 as the default compiler which is used for all official Linaro Android Platform builds. This Linaro Android monthly release exhibits the first official Linaro Android Toolchain release based on the most recent gcc-linaro 4.6, and the first Linaro Android release for ST Ericsson Snowball using Landing Team kernel based on linux-linaro-android. On top, Linaro Android 11.07 comes with the more advanced more visually appealing Launcher2 by default. Android GCC benchmark results for 11.07 release can be found on http://wiki.linaro.org/Platform/Android/AndroidToolchainBenchmarking/2011-07 Linaro Evaluation Build (LEB) for Ubuntu also uses the most recent linux-linaro kernel based on Linux 3.0 and includes the latest Linaro Cross Toolchain available for Ubuntu Lucid and Natty. ARM DS-5 […]
Calao Snowball Development Boards Are now Available
Earlier in February, ST Ericsson had announced the availability of development boards running Linaro based on their Nova A9500 processor. 4 different development kits based on this platform can now be purchased online on Calao store: SKY-S9500-ULP-C22 (SNOWBALL SDK LITE – Without WLAN/BT/GPS) – 155.73 Euros SKY-S9500-ULP-C32 (SNOWBALL PDK LITE – Without WLAN/BT/GPS) – 226.22 Euros SKY-S9500-ULP-C12 (SNOWBALL SDK) – 164.59 Euros SKY-S9500-ULP-C02 (SNOWBALL PDK) – 241.47 Euros The differences between the SDK (Software Development Kit) and PDK (Production Development Kit) are that the former has no expansion connectors, no battery backup for RTC and only support serial over USB port (for Linux console). Finally, the PDK has a larger e-MMC (8GB vs. 4GB). The price mentioned above exclude VAT (if applicable) and shipping costs. Please note that the boards can be shipped to many countries but not anywhere worldwide (e.g. Shipping is not available to Thailand) and you’ll need to […]
Compile with ARM Thumb2 to Reduce Memory Footprint and Improve Performance
ARM claims that Thumb-2 instructions (for ARM Cortex cores and all ARMv7 processors) provides performance improvements and code size optimization: Thumb-2 technology is the instruction set underlying the ARM Cortex architecture which provides enhanced levels of performance, energy efficiency, and code density for a wide range of embedded applications. For performance optimized code Thumb-2 technology uses 31 percent less memory to reduce system cost, while providing up to 38 percent higher performance than existing high density code, which can be used to prolong battery-life or to enrich the product feature set. Thumb-2 technology is featured in the processor, and in all ARMv7 architecture-based processors. Dave Martin (Linaro) has recently posted a message entitled “ARM/Thumb-2 kernel size comparison” on Linaro mailing list:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
The question of the size impact of building the kernel in Thumb-2 came up to day, so I extracted some quick numbers: $ size vmlinux-* text data bss dec hex filename 8420507 463356 826928 9710791 942cc7 vmlinux-arm 6715539 463260 826928 8005727 7a285f vmlinux-thumb2 This is for a recent mainline kernel built with the linaro omap config. In this case we save about 20% for code and read-only data (i.e., text) and 17.5% overall -- which accounts for a little under 2MB saved in this example. This doesn't take loadable modules into account; we can probably expect to see a similar size ratio there. |
The results provided by Linaro at not as high as those claimed by ARM, but a 20% code size reduction is still impressive. If you want to use Thumb2 to compile […]
Installing Linaro ARM Cross Toolchain on Ubuntu
You can easily install Linaro arm cross-compiler on Ubuntu 10.04 (Lucid), 10.10 (Maverick) and 11.04 (Natty) as follows: sudo apt-get install gcc-arm-linux-gnueabi This will install Linaro cross-toolchain version 4.4 on Ubuntu 10.04 and 10.10, and version 4.5 on Ubuntu 11.04. You can check the installation worked by checking the cross-compiler version jaufranc@CNX-TOWER:~$ arm-linux-gnueabi-gcc -v Using built-in specs. Target: arm-linux-gnueabi Configured with: ../src/configure -v –with-pkgversion=’Ubuntu/Linaro 4.4.4-14ubuntu4′ –with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs –enable-languages=c,c++,fortran,objc,obj-c++ –prefix=/usr –program-suffix=-4.4 –enable-shared –enable-multiarch –enable-linker-build-id –with-system-zlib –libexecdir=/usr/lib –without-included-gettext –enable-threads=posix –with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.4.5 –libdir=/usr/lib –enable-nls –enable-clocale=gnu –enable-libstdcxx-debug –enable-objc-gc –disable-sjlj-exceptions –with-arch=armv7-a –with-float=softfp –with-fpu=vfpv3-d16 –with-mode=thumb –disable-werror –enable-checking=release –program-prefix=arm-linux-gnueabi- –includedir=/usr/arm-linux-gnueabi/include –build=i686-linux-gnu –host=i686-linux-gnu –target=arm-linux-gnueabi –with-headers=/usr/arm-linux-gnueabi/include –with-libs=/usr/arm-linux-gnueabi/lib Thread model: posix gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu4) You can also install the latest version 4.5 (recommended) on Lucid and Maverick: sudo add-apt-repository ppa:linaro-maintainers/toolchain sudo apt-get update sudo apt-get install gcc-4.5-arm-linux-gnueabi If you are using an ARM platform running Ubuntu 10.10 or higher, you could also use the native GCC compiler. sudo apt-get install […]
Qemu Linaro Versatile Express Image on Ubuntu 10.10
I’ve installed qemu-linaro and run an ARM image based on the instructions on https://wiki.linaro.org/PeterMaydell/QemuVersatileExpress. I used Ubuntu 10.10 desktop edition. First, install the Linaro images tools: sudo apt-get install linaro-image-tools Download the Linaro release and versatile hardware pack: wget http://releases.linaro.org/platform/linaro-n/nano/alpha-3/linaro-natty-nano-tar-20110302-0.tar.gz wget http://releases.linaro.org/platform/linaro-n/hwpacks/alpha-3/hwpack_linaro-vexpress_20110302-0_armel_supported.tar.gz You can download another hwpack for omap3, i.mx51, pandaboard, beagleboard, ST U8500, etc.. if needed at http://releases.linaro.org/platform/linaro-n/hwpacks/alpha-3/ Download the source, extract it, then configure, build and install qemu linaro: wget http://launchpad.net/qemu-linaro/trunk/2011.03-1/+download/qemu-linaro-0.14.50-2011.03-1.tar.gz tar xzvf qemu-linaro-0.14.50-2011.03-1.tar.gz cd qemu-linaro-0.14.50-2011.03-1 ./configure –prefix=/usr make sudo make install Make sure the prefix is set to /usr in order to overwrite any previous version of Qemu (It installed qemu linaro in /usr/local/ instead in my case). Failure to do so may generate the following error during linaro-media-create: qemu: fatal: cp15 insn ee1d6f70 Instead of compiling qemu, you can install qemu-linaro with apt-get (this will avoid possible version issues between linaro-media-create and qemu): sudo add-apt-repository ppa:linaro-maintainers/tools […]