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 […]

Linaro 12.09 Release with Kernel 3.6 and Android 4.1.1

Linaro release 12.09 has just been announced, and includes Linux Kernel 3.6-rc6 and Android Jelly Bean. This release provides further improvement to Android Jelly Bean, Android benchmark characterization,  an ARMv8 OpenEmbedded image, UEFI bootloader support for Vexpress, origen and pandabords, and some improvement to big.LITTLE and power management. Here are the highlights of the release: Android All Linaro patches are now available on Jelly Bean. Accelerated graphics is now available on Snowball Jelly Bean build. AndEBench, AndEBench Java, Linpack, CaffeineMark, Antutu 2D and 3D, NBench, Quadrant, I/O Benchmark, Vellamo benchmark hotspot characterization available. An Origen tracking build is available and will be released this cycle as a Linaro Evaluation Build (LEB). Audio works on Origen running Jelly Bean (WAV file only). A Monkeyrunner script to run Streamline has been completed. First rev of the NI PXIe-4154 based power measurement system is created. See http://www.youtube.com/watch?v=9bKyuxLl4iw&feature=plcp In-tree AOSP tests have been automated. […]

Linaro 12.08 Release with Kernel 3.6 and Android 4.1.1 Jelly Bean

Linaro release 12.08 includes Linux Kernel 3.6-rc2 and is the very first release with Android Jelly Bean (4.1.1-R4). The Android platform team has managed to port Android Jelly Bean to all their main development platforms: Versatile Express, Versatile Express RTSM, Samsung Origen, TI PandaBoard, ST Ericsson Snowball, as well as Samsung Galaxy Nexus smartphone. They’ve also added TINY_ANDROID, a minimal Android build that can be used for kernel development, toolchain work and other development where users only need a console. It’s possible to get the source code, build it and access the shell within 10 minutes. U-boot-Linaro has been updated and is now based on the latest upstream release v2012.07. Next month, we might be able to see a preliminary port of Android on 64-bit platform (ARMv8). Here are the highlights of the release: Android Automated Methanol (http://gitorious.org/methanol) browser benchmarking in Linaro Android. Automated over 100 Jelly Bean AOSP tests. […]

Timesys Unveils LinuxLink BSP/SDK for MityARM-3359 SoM (TI AM335x)

Critical Link is an electronics product development company that provides “MityDSP” and “MityARM” System on Modules and Timesys is a software company working on Embedded Linux, which provides LinuxLink, a software development framework for embedded Linux application development. Both companies have partnered to offers LinuxLink BSP/SDK for MityARM-3359 SoM based on Texas Instruments Sitara AM335x Cortex A9 processor. LinuxLink (for MityARM-335x) comes in 2 versions: A free version which includes: A wizard-based interface that simplifies the selection of a Linux kernel, software packages and tools Kernel, toolchain and debugger Access to hundreds of open-source software packages Support by Timesys for build/boot issues. A PRO version (Starts at $5495 per developer) which includes extra “features” such as: TimeStorm IDE – A desktop-based development environment Tools for advanced customization and integration unmetered support Everything is built on Timesys servers, but the web interface makes it quite customizable and offers lots of options […]

15 Linaro OnAir Sessions about Android, Linux, Debugging and Software QA

Linaro has planned 15 virtual conferences between Monday, August 13 and Saturday, August 18, 2012. Those online events will deal with the work done at Linaro, including software optimization, software QA, Android and Linux kernel development, Open Embedded on ARMv8 and more. Those conferences are public and anybody can join. All times indicated below are GMT+07:00 (Bangkok), so you can either mentally convert the time (recommended), or click on the links below to get the date and time in your timezone. Exploring The Performance Impact of PGO and LTO on ARM– Mon, August 13, 5:00 PM Abstract: Profile guided and linked time optimisation (PGO and LTO) are two of GCC’s cross program optimisations that should improve both the startup and runtime of typical programs.  We know that they basically work on ARM but don’t know the potential speed up or the work involved in proper support. This session will cover […]

IAR Systems Releases Embedded Workbench for ARM Version 6.40

Earlier today, IAR Systems has announced the release of version 6.40 of Embedded Workbench for ARM. This new version introduces several new features, enhancements and optimizations. The enhancements include a new source browser and text editor, with functionality such as auto-completion, code folding, block selection, block indentation, bracket matching, and zooming. Word/paragraph navigation have also been improved. IAR Systems also enhanced the compiler with improvements to the stack usage analysis functionality that provides calculations of the maximum stack depth for each call graph root and new features such as support for C++ source code and  recursion. A new linker directive check can be used to calculate the stack usage at link time to verify that the used stack space does not exceed the allocated memory. The inline assembler has also been improved and expanded with a large number of new operand constraints and modifiers. In a previous post “Green Hills […]

Build Your Phone Android Distro with CyanogenMod Compiler 0.4 GUI (Cmc-pygtk) for Ubuntu

Lithid, a member of XDA Developers Forum, has recently released the 4th version of a GUI tool (Cmc-pygtk) to build Android for a given smartphone as long as it is supported by CM. The CyanogenMod Compiler is supported by Ubuntu 10.04 32/64-bit and greater, and you can either download a deb file or build it yourself by following the instructions below: Install dependencies:

Clone the source tree:

Generate a gpg key:

Delete the changelog or dpkg will use lithid key instead.:

Edit the EMAIL field in the Makefile and replace it with the one used to generated the gpg key. Build it for your version of Ubuntu. For Ubuntu 12.04 32-bit:

And install it:

Before using CyanogenMod Compiler (CMC) is installed, you need to install google repo tool:

Now that everything is setup, you can run CyanogenMod Compiler: cmc A disclaimer message telling […]

Cross-compiling the ARM Linux Kernel in Ubuntu 12.04 LTS

Yesterday I installed Ubuntu 12.04 ‘Precise’ Beta 1 in Virtual Box to give it a try (I could not manage to have HUD working btw), and today, I’ve noticed an article entitled “Ubuntu 12.04 ‘precise’ and cross compilation of ARM kernels” explaining how to build Linaro ARM kernel in Ubuntu 12.04. So I’ve decided to give it a try, especially it seems straightforward. I followed the instructions in the aforementioned link,  it basically worked except I had to install dpkg-dev package that also installed the build essentials (gcc, g++, etc…) and use sudo for some commands. You’ll notice the name change for the ARM gcc toolchain as it now uses hard-float by default which seems to provide quite a boost in performance for the Pandaboard. Here are the steps I followed: Install the ARM GCC cross compiler and the development package of dpkg:

Retrieve the kernel source:

Install […]