When last time I was in Cambridge we had a discussion about ARM processors. Paweł used term “ARMology” then. And with recent announcement of Cortex-A12 cpu core I thought that it may be a good idea to write a blog post about it.

Please note that my knowledge of ARM processors started in 2003 so I can make mistakes in everything older. Tried to understand articles about old times but sometimes they do not keep one version of story.

Ancient times

ARM1 got released in 1985 as CPU add-on to BBC Micro manufactured by Acorn Computers Ltd. as result of few years of research work. They wanted to have new processor to replace ageing 6502 used in BBC Micro and Acorn Electron and none of existing ones did not fit their requirements. Note that it was not market product but rather development tool made available for selected users.

But it was ARM2 which landed in new computers — Acorn Archimedes (1987 year). Had multiply instructions added so new version of instruction set was created: ARMv2. Just 8MHz clock but remember that it was first computer with new CPU…

Then ARM3 came — with cache controller integrated and 25MHz clock. ISA was bumped to ARMv2a due to SWP instruction added. And it was released in another Acorn computer: A5000. This was also used in Acorn A4 which was first ARM powered laptop (but term “ARM Powered” was created few years later). I hope that one day I will be able to play with all those old machines…

There was also ARM250 processor with ARMv2a instruction set like in ARM3 but no cache controller. But it is worth mentioning as it can be seen as first SoC due to ARM, MEMC, VIDC, IOC chips integrated in one piece of silicon. This allowed to create budget versions of computers.

ARM Ltd.

In 1990 Acorn, Apple and VLSI co-founded Advanced RISC Machines Ltd. company which took over research and development of ARM processors. Their business model was simple: “we work on cpu cores and other companies pay us license costs to make chips”.

Their first cpu was ARM60 with new instruction set: ARMv3. It had 32bit address space (compared to 26bit in older versions), was endian agnostic (so both big and little endian was possible) and there were other improvements.

Please note lack of ARM4 and ARM5 processors. I heard some rumours about that but will not repeat them here as some of them just do not fit when compared against facts.

ARM610 was powering Apple Newton PDA and first Acorn RiscPC machines where it was replaced by ARM710 (still ARMv3 instruction set but ~30% faster).

First licensees

You can create new processor cores but someone has to buy them and manufacture… In 1992 GEC Plessey and Sharp licensed ARM technology, next year added Cirrus Logic and Texas Instruments, then AKM (Asahi Kasei Microsystems) and Samsung joined in 1994 and then others…

From that list I recognize only Cirrus Logic (used their crazy EP93xx family), TI and Samsung as vendors of processors ;D


One of next cpu cores was ARM7TDMI (Thumb+Debug+Multiplier+ICE) which added new instruction set: Thumb.

The Thumb instructions were not only to improve code density, but also to bring the power of the ARM into cheaper devices which may primarily only have a 16 bit datapath on the circuit board (for 32 bit paths are costlier). When in Thumb mode, the processor executes Thumb instructions. While most of these instructions directly map onto normal ARM instructions, the space saving is by reducing the number of options and possibilities available — for example, conditional execution is lost, only branches can be conditional. Fewer registers can be directly accessed in many instructions, etc. However, given all of this, good Thumb code can perform extremely well in a 16 bit world (as each instruction is a 16 bit entity and can be loaded directly).

ARM7TDMI landed nearly everywhere – MP3 players, cell phones, microwaves and any place where microcontroller could be used. I heard that few years ago half of ARM Ltd. income was from license costs of this cpu core…


But ARM7 did not ended at ARM7TDMI… There was ARM7EJ-S core which used ARMv5TE instruction set and also ARM720T and ARM740T with ARMv4T. You can run Linux on Cirrus Logic CLPS711x/EP721x/EP731x ones 😉

According to ARM Ltd. page about ARM7 the ARM7 family is the world’s most widely used 32-bit embedded processor family, with more than 170 silicon licensees and over 10 Billion units shipped since its introduction in 1994.


I heard that ARM8 is one of those things you should not ask ARM Ltd. people about. Nothing strange when you look at history…

ARM810 processor made use of ARMv4 instruction set and had 72MHz clock. At same time DEC released StrongARM with 200MHz clock… 1996 was definitively year of StrongARM.

In 2004 I bought my first Linux/ARM powered device: Sharp Zaurus SL-5500.


Ah ARM9… this was huge family of processor cores…

ARM moved from a von Neumann architecture (Princeton architecture) to a Harvard architecture with separate instruction and data buses (and caches), significantly increasing its potential speed.

There were two different instruction sets used in this family: ARMv4T and ARMv5TE. Also some kind of Java support was added in the latter one but who knows how to use it — ARM keeps details of Jazelle behind doors which can be open only with huge amount of money.


Here we have ARM9TDMI, ARM920T, ARM922T, ARM925T and ARM940T cores. I mostly saw 920T one in far too many chips.

My collection includes:

  • ep93xx from Cirrus Logic (with their sick VFP unit)
  • omap1510 from Texas Instruments
  • s3c2410 from Samsung (note that some s3c2xxx processors are ARMv5T)


Note: by ARMv5T I mean every cpu never mind which extensions it has built-in (Enhanced DSP, Jazelle etc).

I consider this one to be most popular one (probably after ARM7TDMI). Countless companies had own processors based on those cores (mostly on ARM926EJ-S one). You can get them even in QFP form so hand soldering is possible. CPU frequency goes over 1GHz with Kirkwood cores from Marvell.

In my collection I have:

  • at91sam9263 from Atmel
  • pxa255 from Intel
  • st88n15 from ST Microelectronics

Had also at91sam9m10, Kirkwood based Sheevaplug and ixp425 based NSLU2 but they found new home.


Another quiet moment in ARM history. ARM1020E, ARM1022E, ARM1026EJ-S cores existed but did not looked popular.

UPDATE: Conexant uses ARM10 core in their next generation DSL CPE systems such as bridge/routers, wireless DSL routers and DSL VoIP IADs.


Released in 2002 as four new cores: ARM1136J, ARM1156T2, ARM1176JZ and ARM11 MPCore. Several improvements over ARM9 family including optional VFP unit. New instruction set: ARMv6 (and ARMv6K extensions). There was also Thumb2 support in arm1156 core (but I do not know did someone made chips with it). arm1176 core got TrustZone support.

I have:

  • omap2430 from Texas Instruments
  • i.mx35 from Freescale

Currently most popular chip with this family is BCM2835 GPU which got arm1136 cpu core on die because there was some space left and none of Cortex-A processor core fit there.


New family of processor cores was announced in 2004 with Cortex-M3 as first cpu. There are three branches:

  • Aplication
  • Realtime
  • Microcontroller

All of them (with exception of Cortex-M0 which is ARMv6) use new instruction sets: ARMv7 and Thumb-2 (some from R/M lines are Thumb-2 only). Several cpu modules were announced (some with newer cores):

  • NEON for SIMD operations
  • VFP3 and VFP4
  • Jazelle RCT (aka ThumbEE).
  • LPAE for more then 4GB ram support (Cortex A7/12/15)
  • virtualization support (A7/12/15)
  • big.LITTLE
  • TrustZone

I will not cover R/M lines as did not played with them.


Announced in 2006 single core ARMv7a processor core. Released in chips by Texas Instruments, Samsung, Allwinner, Apple, Freescale, Rockchip and probably few others.

Has higher clocks than ARM11 cores and achieves roughly twice the instructions executed per clock cycle due to dual-issue superscalar design.

So far collected:

  • am3358 from Texas Instruments
  • i.mx515 from Freescale
  • omap3530 from Texas Instruments


First multiple core design in Cortex family. Allows up to 4 cores in one processor. Announced in 2007. Looks like most of companies which had previous cores licensed also this one but there were also new vendors.

There are also single core Cortex-A9 processors on a market.

I have products based on omap4430 from Texas Instruments and Tegra3 from NVidia.


Announced around the end of 2009 (I remember discussion about something new from ARM with someone at ELC/E). Up to 4 cores, mostly for use in all designs where ARM9 and ARM11 cores were used. In other words new low-end cpu with modern instruction set.


The fastest (so far) core in ARMv7a part of Cortex family. Up to 4 cores. Announced in 2010 and expanded ARM line with several new things:

  • 40-bit LPAE which extends address range to 1TB (but 32-bit per process)
  • VFPv4
  • Hardware virtualization support
  • TrustZone security extensions

I have Chromebook with Exynos5250 cpu and have to admit that it is best device for ARM software development. Fast, portable and hackable.


Announced in 2011. Younger brother of Cortex-A15 design. Slower but eats much less power.


Announced in 2013 as modern replacement for Cortex-A9 designs. Has everything from Cortex-A15/A7 and is ~40% faster than Cortex-A9 at same clock frequency. No chips on a market yet.


That’s interesting part which was announced in 2011. It is not new core but combination of them. Vendor can mix Cortex-A7/12/15 cores to have kind of dual-multicore processor which runs different cores for different needs. For example normal operation on A7 to save energy but go up for A15 when more processing power is needed. And amount of cores in each of them does not even have to match.

It is also possible to make use of all cores all together which may result in 8-core ARM processor scheduling tasks on different cpu cores.

There are few implementations already: ARM TC2 testing platform, HiSilicon K3V3, Samsung Exynos 5 Octa and Renesas Mobile MP6530 were announced. They differ in amount of cores but all (except TC2) use the same amount of A7/A15 cores.


In 2011 ARM announced new 64-bit architecture called AArch64. There will be two cores: Cortex-A53 and Cortex-A57 and big.LITTLE combination will be possible as well.

Lot of things got changed here. VFP and NEON are parts of standard. Lot of work went into making sure that all designs will not be so fragmented like 32-bit architecture is.

I worked on AArch64 bootstrapping in OpenEmbedded build system and did also porting of several applications.

Hope to see hardware in 2014 with possibility to play with it to check how it will play compared to current systems.

Other designs

ARM Ltd. is not the only company which releases new cpu cores. That’s due to fact that there are few types of license you can buy. Most vendors just buy licence for existing core and make use of it in their designs. But some companies (Intel, Marvell, Qualcomm, Microsoft, Apple, Faraday and others) paid for ‘architectural license’ which allows to design own cores.


Probably oldest one was StrongARM made by DEC, later sold to Intel where it was used as a base for XScale family with ARMv5TEJ instruction set. Later IWMMXT got added in PXA27x line.

In 2006 Intel sold whole ARM line to Marvell which released newer processor lines and later moved to own designs.

There were few lines in this family:

  • Application Processors (with the prefix PXA).
  • I/O Processors (with the prefix IOP)
  • Network Processors (with the prefix IXP)
  • Control Plane Processors (with the prefix IXC).
  • Consumer Electronics Processors (with the prefix CE).

One day I will undust my Sharp Zaurus c760 just to check how recent kernels work on PXA255 ;D


Their Feroceon/PJ1/PJ4 cores were independent ARMv5TE implementations. Feroceon was Marvell’s own ARM9 compatible CPU in Kirkwood and others, while PJ1 was based on that and replaced XScale in later PXA chips. PJ4 is the ARMv7 compatible version used in all modern Marvell designs, both the embedded and the PXA side.


Company known mostly from wireless networks (GSM/CDMA/3G) released first ARM based processors in 2007. First ones were based on ARM11 core (ARMv6 instruction set) and in next year also ARMv7a were available. Their high-end designs (Scorpion and Krait) are similar to Cortex family but have different performance. Company also has Cortex-A5 and A7 in low-end products.

Nexus 4 uses Snapdragon S4 Pro and I also have S4 Plus based Snapdragon development board.


Faraday Technology Corporation released own processors which used ARMv4 instruction set (ARMv5TE in newer cores). They were FA510, FA526, FA626 for v4 and FA606TE, FA626TE, FMP626TE and FA726TE for v5te. Note that FMP626TE is dual core!

They also have license for Cortex-A5 and A9 cores.

Project Denver

Quoting Wikipedia article about Project Denver:

Project Denver is an ARM architecture CPU being designed by Nvidia, targeted at personal computers, servers, and supercomputers. The CPU package will include an Nvidia GPU on-chip.

The existence of Project Denver was revealed at the 2011 Consumer Electronics Show. In a March 4, 2011 Q&A article CEO Jen-Hsun Huang revealed that Project Denver is a five year 64-bit ARM architecture CPU development on which hundreds of engineers had already worked for three and half years and which also has 32-bit ARM architecture backward compatibility.

The Project Denver CPU may internally translate the ARM instructions to an internal instruction set, using firmware in the CPU.


AppliedMicro announced that they will release AArch64 processors based on own cores.

Final note

If you spotted any mistakes please write in comments and I will do my best to fix them. If you have something interesting to add also please do a comment.

I used several sources to collect data for this post. Wikipedia articles helped me with details about Acorn products and ARM listings. ARM infocenter provided other information. Dates were taken from Wikipedia or ARM Company Milestones page. Ancient times part based on The ARM Family and The history of the ARM CPU articles. The history of the ARM architecture was interesting and helpful as well.

Please do not copy this article without providing author information. Took me quite long time to finish it.


8 June evening

Thanks to notes from Arnd Bergmann I did some changes:

  • added ARM7, Marvell, Faraday, Project Denver, X-Gene sections
  • fixed Cortex-A5 to be up to 4 cores instead of single.
  • mentioned Conexant in ARM10 section.
  • improved Qualcomm section to mention which cores are original ARM ones, which are modified.

David Alan Gilbert mentioned that ARM1 was not freely available on a market. Added note about it.

Death to Raspberry/Pi — Beaglebone Black is on a market

As guys from/around Texas Instruments promised there is new Beaglebone Black on a market. Faster, cheaper, with video output and other extras. For me it looks like Raspberry/Pi killer done right.

What is on board?

There is a lot of goods:

  • 1GHz TI AM355x cpu with ARM Cortex-A8 core supporting ARMv7-a instruction set
  • PowerVR GPU with OpenGL ES support (closed source driver)
  • HDMI output (with audio)
  • 512MB ram
  • 2GB eMMC
  • 92 expansion pins
  • USB Host
  • USB device
  • Ethernet
  • microSD slot
  • user controlled LEDs
  • serial port header

And it still supports (most of) expansion boards from the original Beaglebone which can add extra functionality so possibilities are uncountable. All that for only 45$.

But why it is better?

  1. ARMv7-a cpu core. It means that you can run any Linux distribution on it. Think Ubuntu/armhf, Debian/armhf, Fedora/armhf. No need to reinvent a wheel (aka armhfv6 done for Raspbian distribution).

  2. No dependencies on closed source components. You can boot board and use it with what ever you want and still have control on all sources used. Sure, there are some binary blobs for OpenGL ES but if you do not need this then you are fine. Try to boot R/Pi without binary blobs…

  3. Texas Instruments level of support. Sure, we heard that they abandoned mobile market but Sitara line of processors is still in development, there are new CPUs and they provide documentation and source code for product. Also amount of work done in mainline kernel is not something to be ignored.

  4. Expansion headers. Compare 26 pins of R/Pi with 92 of Beaglebone… Then add capes to this.

So which one to choose?

Beaglebone Black of course ;D

As people on IRC told there are other cheap devices made in China with faster cpus and more memory. But for me Beaglebone is not ‘yet another ARM computer’ but rather ‘yet another microcontroller on ultra steroids’ and this is where the true power of this board resides.

Let’s compare some cpu ;)

When I bought Samsung Chromebook friend started “nbench” on it. So I did same on my conference laptop. None of devices won…

Idea of testing cpu power was sitting somewhere at back of my head and finally I decided to just run one simple command available on nearly every GNU/Linux based system: “openssl speed”. Sure, on some systems it will use hardware accelerators, on others (or not) some options enabled to get more speed (like ARM assembly version which is not enabled in Debian/Ubuntu systems). But it is something what anyone can run at home.

Table may be hard to decipher so I also give it as Google Docs. It also has few more devices listed and whole tables (one below is for 8192 size samples).

Devices in table are:

  • my Intel Core i7-2600K desktop
  • my Intel U7300 (ultra low voltage) conference laptop
  • Exynos5 Dual powered Samsung ARM Chromebook
  • Exynos4 Dual powered Tizen development platform (got rid of it today)
  • i.mx515 powered Efika MX Smartbook
  • Beaglebone with AM335x cpu
  • Sheevaplug (as only armv5te device which can compare with other entries)

Devices were running different versions of OpenSSL under different systems. It is listed in Google Docs document.

CPU Core i7 U7300 Exynos 5250 Exynos 4210 i.mx515 AM335x Feroceon 88FR131
Architecture x86-64 x86-64 armv7a (a15) armv7a (a9) armv7a (a8) armv7a (a8) armv5te
MHz 3400 1300 1700 1000 800 720 1200
OpenSSL version 1.0.1c 1.0.1c 1.0.1c 1.0.0f 1.0.1a 1.0.0i 1.0.0d
md4 1111896 393198 328471 205906 143746 103068 119367
md5 693969 249301 224040 148089 85401 53365 86518
hmac(md5) 686511 248859 225839 149153 86728 54981 87651
sha1 721528 222770 147739 71233 49525 35446 38123
rmd160 247453 93500 106935 57790 40188 26318 30803
rc4 894615 225660 153949 86829 63770 29364 45036
des cbc 73703 27191 37811 21299 14966 8601 8829
des ede3 28091 10578 14183 7806 5526 3005 3130
seed cbc 78204 31181 39002 24361 17650 11671 13087
rc2 cbc 44327 13839 23691 15494 10897 7393 10699
blowfish cbc 133455 52004 49471 37540 23536 15654 20584
cast cbc 118852 49162 55326 31738 22848 15298 20590
aes-128 cbc 127378 95955 65360 22386 16477 10876 11697
aes-192 cbc 106141 81002 55973 18653 13912 9221 9968
aes-256 cbc 90487 69148 48564 16419 12091 7981 8677
camellia-128 187958 44403 58698 15447 23325 15507 14197
camellia-192 141346 33180 45867 12090 18300 12261 11138
camellia-256 141422 33272 45927 12050 18383 12247 11131
sha256 216766 86791 64334 23427 18148 12022 13040
sha512 336729 135935 31126 8877 5321 2484 3221
whirlpool 121211 47920 27820 4602 3840 2262 3085
aes-128 ige 122085 43018 63218 22126 15590 10469 11219
aes-192 ige 102133 36107 54269 18696 13355 8904 9647
aes-256 ige 87514 31001 47636 16307 11635 7735 8433
ghash 1938609 168034 35479 12136

Most interesting columns are U7300 and Exynos 5250 ones — 3 years old laptop which I bought for conferences compared to Chromebook. Looks like for next conferences/events I will rather go with Chromebook not UL30A. This will give me one or two hours of battery life less but it is much lighter device at same time. But have to test it first for few days to check is it comfortable enough for daily use.

What interest me in ARM world

When I published my last post about ARM boards there were many questions and suggestions with interesting devices. Thank You all for it.

But there were also suggestions about ARM9 or ARM11 based devices. So I decided that it is good time to write what interest me now in ARM world.

But first some inventory. I had/used/have several devices with ARM cpu:

  • StrongARM (armv4) one:

    • Sharp Zaurus SL-5500 (which took me to ARM world)
  • ARM920 (armv4t) ones:

    • Openmoko GTA01 bv3, bv4 (s3c2410)
    • EDB9301 (EP9301 cpu)
    • Sim-One (EP9307)
  • ARM926 (armv5te) ones:

    • Sharp Zaurus sl-5600 (pxa250)
    • Sharp Zaurus c760/sl-6000 (pxa255)
    • Sharp Zaurus sl-c3000 (pxa272)
    • Sheevaplug (kirkwood)
    • Atmel devboards (at91sam9263, at91sam9m10)
    • ST-Microelectronics/ST-Ericsson NDK-15, NHK-15 (st88n15)
    • Nokia 770 (omap1710)
    • Linksys NSLU2 (ixp425 iirc)
  • ARM1136 (armv6) ones:

    • Nokia N810 (omap2430)
    • Bug r1.0, r1.2 (i.mx31)
  • Cortex-A8 (armv7a) ones:

    • Beagleboard B7, B7, C3 (omap3430)
    • Nokia N900 (omap3430)
    • Nexus S (exynos3)
    • Genesi Efika MX Smartbook (i.mx51)
    • Freescale Quickstart (i.mx53)
  • Cortex-A9 (armv7a) ones:

    • Pandaboard EA1, A1 (omap4430)
    • Archos G9 80 (omap4430)

All of that during last 8 years. Most of my ARM live so far was around ARM926 based devices (some of them still can not be listed here) and I do not want to go there again. Kirkwood core was fastest one with 1.2GHz clock and 512MB of RAM it was really fast machine. I only missed Serial ATA in my Sheevaplug (rev 1.0) but even with hard drive on USB it was nice improvement.

Then I played a bit with ARM11 processors. Ok, they were faster than most of ARM9 cpus but I already had experience with Sheevaplug. And after few months first Cortex-a8 board landed on my desk — I got Beagleboard B7 from Bug labs as test platform for their new device. This was improvement!

I still remember my reaction when connected it to normal LCD monitor and saw it used at 720p resolution (1680×1050 was a bit hard for omap3). Moved to Nokia N900 few months later and found that fast cpu means nothing when paired with slow storage and not enough memory for system.

So today I prefer to not look below Cortex-A9 (or comparable cores like ones from Qualcomm or Marvell). Hope to play one day with Cortex-A5 (which should replace ARM926 one day) just to see how low-end armv7a cpu behave.

And wait for ARMv8 to hit market.

I am tired of Raspberry/Pi

Please people… stop asking me about Raspberry/Pi. I do not want it, do not plan to buy one (when they will be finally available for normal people) and for sure do not plan to support it.

Raspberry/Pi may look as interesting hardware to you but it does not have to mean same to others. Want to run desktop? 256MB of memory means really crippled one (last time I saw this amount of RAM in desktop computer right before opening it to add 512MB stick). Sure, for 25-35 USD it is proper range as memory is probably the most expensive part. Device may be good for using it in more embedded environment where GPIO/I²C/I²S/SPI/UART matter — expansion connector provides those signals.

But I would rather buy BeagleBone to play with peripherials connected to such pins. Someone may ask “why? it is more expensive”. Reason is simple — it is in production, already has expansions which adds things like video output, touchscreens. And it has ARMv7 cpu which allows me to run any ARM distribution available today — so Debian ‘armel/armhf’, Ubuntu, Fedora, OpenSUSE, Ångström (which is preinstalled with great IDE to play with device already) or anything other.

I do not need small device which can run XMBC or Quake — have private PandaBoard which can do that too and has few things more than Raspberry/Pi.

And I do not think that companies which do software should start working on <100USD hardware like article at Techblaze suggests.

SD cards die

So called ‘low cost’ developer boards (like BeagleBoard xM, PandaBoard, Snowball, MX53 Quick Start) do not have NAND flash on them so people are using SD/MMC cards as boot media and storage. So we, developers, went to shops and bought SD cards. Some got class4 ones cause budget was low already, some grabbed class10 ones hoping that they will be fast, other took class6.

I got some 4GB Transcend class10 ones. They worked, gave me 15MB/s on read and were fine. Until recently they started giving strange kernel output, MMC timeouts, I/O errors which resulted in filesystem going into read only mode. As I prefer to have working board then wondering how much time it will survive I trashed both cards. Good that I had some spare unknown 8GB microSD ones. But in last ~year I had to throw away 4 SD cards…

One of solution for it is moving rootfs to some more reliable storage. I did that with MX53 Quick Start — it has 320GB Serial-ATA harddrive connected. So for PandaBoards I could use 8-16GB thumb drives or USB connected hard drives. I had this in past when there was no mx53 hardware at my desk. But this means extra costs, additional cables, probably even another set of power cables…

Will have to check market for good reliable SD cards soon. 8-16GB ones so there will be space available for doing builds. Or will switch to old school NFS root which requires only 64MB cards — just to load bootloader, kernel, initrd. Other option is a network storage like NBD, AoE or iSCSI but this requires more configuration.

Square board with five edges

Some time ago I got yet another developer board from Linaro — this time it was i.mx53 Quickstart also known as mx53 LOCO. At that time I only found time to power it on and check does it work at all.

Yesterday I booted it with Ubuntu desktop image from Linaro but without connecting to display (I have HDMI addon so can use VGA and HDMI outputs). Lot of lights (voltage controls mostly) appeared on board — funny thing is that to power some of them all you need is VGA or HDMI cable connected.

Today I went shopping… Board comes with power supply (did not used), USB cable and 8GB microSD card. Last item is important as mx53loco boots from it by default — I do not know does it checks SD card too. What I lacked was Serial ATA -> E-SATA cable for my external hard drive. Yes… SATA->ESATA as board has standard connector for connecting drives directly but as it lacks SATA power connector (about which I wrote already) I had to use external case. Good thing is that local electronics shop had those cables available. Disk speed is quite nice:

Serial ATA disk speed
Serial ATA disk speed
Same disk on USB
Same disk on USB

Compare it with SD card:

SD card speed
SD card speed

Which interface you prefer for storage? 🙂 I hope that new Efika MX53 from Genesi will have some good Serial ATA storage inside.

But then I got hit by other issue… Mounting of board started to be a problem. I hope that next version of board will be bigger. This one is too packed — and HDMI addon makes it even worse at it adds 5th edge to square board. In past I wrote a post about perfect developer board and some points apply here. What I do not like:

  • too small amount of space around mounting holes — hard to reach with 5mm key
  • VGA and RS232 connectors forced me to use very tiny screws to be able to mount board to my board plate
  • Power button is hidden behind screw and hard to reach
  • HDMI addon makes use of Reset and Power buttons very hard — have to use pen or stylus instead of finger when cable is connected
  • leds are too bright — will have to put some duct tape on them

Is there something I like? Of course — I do not want to only complain 😉 This is the only cheap developer board from Linaro supported ones with native Serial ATA interface (iirc Samsung cpu could have it but Origenboard does not have connector). Two SD interfaces allow to prototype devices which require extra expansions in case of Beagleboard or Pandaboard. And this is smallest devboard I ever used (cause I never played with Gumstix — but even they usually run in some carrier boards). And compare to Texas Instruments boards it comes with cables and power supply. I plan to make small distcc/icecream farm from my ARM boards and this one will be for use one of nodes.

PandaBoard: my story

It was 24th March 2010 when one friend asked me do I want to be added to beta testers list for new omap hardware. One of questions was “what would you like to have on board” so I replied:

  • hdmi out (does not care much about vga/svideo/composite out)
  • 2xSD slots (SD or microsd type)
  • ethernet (but rather not on usb)
  • serial on db9/icd10 + serial/jtag by miniusb (think sheevaplug)
  • OTG is not needed but can be present
  • BT would be nice but not required as I have 5 micro dongles here
  • few usb ports — if possible (not omap3530) on more then one hub
  • few leds (multicolor?) would be nice (bug 2.0 has 2xblue + 2xmulticolor)
  • few buttons including power/reset ones
  • and 5V 2.1/2.5mm power jack. I do not need power-on-otg because it require 500mA ports
  • onboard lcd+ts is not needed for me
  • ah… and mounting holes like in beagleboard so board can be mounted anywhere
  • connector with i2c/spi/gpio/etc/etc
  • I missed audio in/out
  • battery for rtc

And suggested to place most of connectors on 2 edges as it helps to organize desk. Atmel’s at91sam9m10 was given as example cause it has all connectors on top and left edge.

And time passed… At UDS-M TI people said that there will be cheap OMAP4 based board named PandaBoard. During dinner (later same day) I got added second time to early adopters list. I wonder how Rob Clark reacted when he saw me on a list already 😀

And again time passed… Ubuntu/ARM people were playing with prototypes of PandaBoard (ES1.0, ES2.0 6-layer etc) and I had occasion to play with boards during Ubuntu/Linaro platform sprint in Prague. It looked nice (if you did not looked at ES1.0 one) and was more or less working fine.

And finally at 15th September I was told that at the end of month there will be production run from which several boards will be shipped to early adopters and few selected projects. Board travelled half of the world, then got back to US and at the end of UDS-N I got it.

Arrived home, powered BeagleBoard C3 off and started to assemble new board. Panda got several accessories connected:

  • +5V 3.5A power supply
  • powered USB hub
  • small USB keyboard
  • wireless USB mouse
  • 20″ LCD monitor with 1680x1050px resolution (this is also connected to my desktop)
  • 320GB Serial-ATA hard drive in SATA->USB enclosure

Also connected Ethernet, serial (by usb-serial dongle + 2 usb extenders) and used one of floating SD cards to have place for bootloaders and kernel. Config is much nicer then it was when I used BeagleBoard.

As operating system I am using Ubuntu 11.04 ‘natty’ as this is current development version and I have some things to check under it. Anyway I plan to move backwards and install 10.10 ‘maverick’ as primary system cause this will allow me to test omap4 hardware acceleration of graphics and audio/video decoding.

What I am using it for? Package building and testing. So far rebuilt whole KDE4 but it was segfaulting all the time on EfikaMX Smartbook so I am waiting for official ones (as there are some things to fix there first).

I got Efika MX Smartbook from Genesi

Yesterday Konstantinos Margaritis from Genesi USA was giving out about 40 Efika MX Smartbooks and few Efika MX Smarttops. I had that luck to became owner of one of those Smartbooks.

That’s nice device. Powered by 800MHz Freescale i.MX515 cpu with 512MB ram has enough juice to be used as web/email netbook. After charging I got nice message from kernel’s power supply subsystem: 427 minutes of battery life — nice value for just 3-cell battery (6-cell is an option according to box informations and website). What else inside:

  • 10.1″ TFT-LCD, 16:9 with LED backlight, 1024 x 600 resolution
  • 3D Graphics Processing Unit
  • Multi-format HD video decoder and D1 video encoder
  • 16GB Nand Flash
  • External MMC / SD card slot (up to SD v2.0 and MMC v4.2)
  • Internal MicroSD slot
  • 802.11 b/g/n WiFi (with on/off switch) – Ralink chipset
  • Bluetooth 2.1 + EDR
  • 2 x USB 2.0 ports
  • Phone jack for headset (audio in / out)
  • Built-in 1.3MP video camera
  • Built-in microphone
  • Built-in stereo speaker

That “16GB Nand Flash” in reality is 15GB Flash-on-module connected to PATA controller. According to “hdparm” tests it makes 22-24MB/s which is quite for this type of devices. My class 10 SD card managed to get 14MB/s (compare it with 5.3MB/s in BeagleBoard) so storage options are nice. Ah… there is also MicroSD slot behind the battery but I did not tested how fast it is.

Note one thing: by default Smartbook boots from internal PATA drive but if there is SD card in slot then it is used for booting. This allows to test development kernels without need of getting to U-Boot. I got hit once by that because card which I used to transfer some data had OMAP3 kernels on it… As you can imagine it did not booted properly…

After I think hour or two I got it upgraded from Ubuntu 10.10 “maverick” to “natty” and got hit by some modifications done by Genesi. After copying “/boot/” from other Efika MX I got it working again. Next days will bring me working KDE 4.5.2 desktop (will have to rebuild some packages for it).

My plans for it? Mobile ARM test platform + laptop replacement for events where I do not need more then email + web + IM.

PandaBoard: Beagleboard XM killer?

It was known since previous UDS that there will be OMAP4 based PandaBoard available for developers. And some time ago was started (for now with temporary website). Boards are still not available at distributors but there are some of them in different projects (like Ubuntu/ARM), some are on a way to new users (mine for example).

When final price was announced many people said that PandaBoard is BeagleBoard XM killer due to same (179USD) price. But is it? Let have a look.

First group of users for such boards are software developers. If they do not work for hardware companies then usually want to get more power for same price. So they will choose PandaBoard.

Second group would be companies which want to produce own hardware based on OMAP3/4. Here it depends on how soon OMAP4 chips will be available in small orders. As OMAP3 can be bought now and BBXM is available to buy many will choose it as this allow to get own hardware ready to market in less then year with having working platform for own developers so final device will start with ready software. One of such is BUG 2.0 which I used at prototype phase. It was designed after using BeagleBoards with BUGBoard extension as base for hardware development.

And Beagleboard XM is available to buy today — with fast CPU, 512MB ram, Ethernet, few USB ports it is big update to previous versions. I never used it — BB C3 is still my primary ARM development system. But in 2-3 weeks situation will change and BB will meet another C3 and one B7 versions in a box due to arrival of PandaBoard.