Tag Archives: omap

ARMology

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

Thumb

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…

ARM7

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.

ARM8

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.

ARM9

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.

ARMv4T

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)

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.

ARM10

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.

ARM11

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.

Cortex

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.

Cortex-A8

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

Cortex-A9

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.

Cortex-A5

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.

Cortex-A15

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.

Cortex-A7

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

Cortex-A12

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.

big.LITTLE

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.

ARMv8

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.

XScale

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

Marvell

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.

Qualcomm

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

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.

X-Gene

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.

Changelog

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.

Samsung will have big.LITTLE. So what?

Lot of services followed article on EETimes where it was announced that Samsung will present 8-core ARM cpu. What was skipped on some of them is that this is big.LITTLE design so it is made as 4xCortex-A7 + 4xCortex-A15 setup.

Good to know that there will be silicon from other vendors than ARM Ltd. Current development platform is Versatile Express TC2 (Test Chip 2) which shows that amount of A7 cores does not have to match A15 ones (it has 3xA7 + 2xA15).

But amount of cores is one thing. People usually complain about battery life and guess that such setup will suck power like crazy… when it is especially designed to save power.

Take a look at current “war” at mobile market. 2 years ago single core 1GHz Cortex-A8 cpu wit 512MB ram was high end. Then we got dual core cpu (usually Cortex-A9 based like Exynos4, OMAP4, Tegra2) and 512-1024MB of memory. Battery usually had similar capacity and lived similar time. During 2012 we saw move to quad core processors in mobile devices (Exynos4412, Tegra3) with 1-2GB ram. Space for battery was same or smaller. Next year will bring Cortex-A15 cpu (Exynos5, OMAP5, Tegra4) but this eats power…

So phones will probably get big.LITTLE processors to give users with lot of cpu power when needed and battery life otherwise. Cortex-A5/8/9/15 will not disappear from market — will land in normal and cheap devices.

I have dual core Cortex-A15 netbook now (Chromebook) and it works fast. Who knows, maybe in 2014 I will be able to replace it with something powered by 4xA7 + 4xA15 processor (unless ARMv8 will land at same time). And there is a work on getting ALL of cores running at same time…

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.

Bought Archos 80 G9 Turbo tablet

During last Linaro Connect I bought myself an Android tablet. After checking what is on market decided to buy Archos 80 G9 Turbo. According to Amazon product page it had to have 1.5GHz OMAP4460 cpu and 1GB of memory. But it did not…

Marketing droids from Archos company should be … and … then … and again … — after that … or … and finally … (put any ways of doing deadly harm into … and repeat any amount of times). Why? There is no such thing as “Archos 80 G9 Turbo” — nevermind that I have one of them on my desk. So far there are at least three models with this name:

  • OMAP4430 1.2GHz 512MB ram
  • OMAP4460 1.5GHz 512MB ram
  • OMAP4460 1.5GHz 1GB ram

You can easily buy first model. Best Buy has it, Adorama has it, J&R has it, Amazon sells it. Second model was expected to land on shelves in December 2011. According to XDA developers forum few of them were even sold as people have them. Last model is listed on Amazon (but first one is what you get) and according to one sources it will be released in March 2012, other says that there will not be such thing. Marketing mess is lightest description which I can write without swearing.

So I got first one. First though was “WTF?!?!!?!?!?!!!” as I got slowest option. Even started returning procedure but as all US shops had only this version I gave up and decided that even with this technical specification it is better tablet then I had before (which was Hannspad SN10T1). Fast cpu, 4:3 screen with 1024×768 resolution, quite good build quality, video output.

Tablet runs Android 3.2 ‘honeycomb’ and does it nicely. Upgrade to 4.0 ‘ice cream sandwich’ was announced to be done in this month. So from software perspective it is done properly. I had some problems with rooting procedure from XDA developers but once you do it in order (and take files from other thread to get 3.2.80 firmware) device will work just fine. Have to admit that system layout on device looks overcomplicated (175MB squashfs as / for example) but it works. Anyway I am waiting for developer firmware (I was told that they will be available ‘soon’ (for any definition of ‘soon’)).

During first days of using I noticed that some applications refuse to work properly on XGA screen, some are resized/rescaled but problems usually are with games or poorly written apps (like Facebook one). But it is visible that keeping Honeycomb under stone (aka ‘closed source’) resulted in many applications not ready to be used on tablets. Even Google+ looks like it does on a phone…

I am slowly moving to use Archos as a morning news device (Twitter, Facebook, Google+ and Google Reader) — it is perfect for it. Reading webpages in landscape or portrait modes is pleasure as device is easy to hold and screen is wide enough in any of them (which was my main complain with Hannspad).

Had to order miniHDMI -> HDMI adapter (normal size connector would even fit but it is too big for this form factor) cause they do not add it in a box. When it will arrive I will check how good movies are played after connecting to 42″ plasma capable of 1080p. OMAP4 cpu should decode any video at this resolution without problems but I wonder how device deals with 4:3 internal screen and 16:9 external one. Would be nice to watch Youtube videos fullscreen.

Playing games is fun. Fieldrunners finally does not need scrolling, Great Little War Game is also better than on my Nexus S. From “racing” games so far I tried Asphalt6 (available at XDA developers forum), Shine Runner and Reckless Getaway — all run and look cute but accelerometr based steering is not comfortable with tablet size. Also games like Mahjongg or Solitaire are possible (I consider such games unplayable on phone).

Battery life is better than on my Nexus S. Partially because lack of GSM and bigger battery, but I think that due to power management done better.

I will not tell how good it is when it comes to read e-books because I have Kindle for it already.

Back to hardware. There is USB socket for optional 3G stick. Plugged dongle from wireless keyboard/trackball combo there — not recognized due to not be USB 2.0 device. Plugged thumbdrive and got it recognized (first time I got some kernel oops and no access to storage, had to reboot tablet). Did not tried other devices.

There is just one speaker at back of device. Definitelly too small and lonely. Nokia N800 which was released 5 years ago had stereo speakers… So for gaming I strongly suggest headphones.

Ugly thing is that when you push back of case with left hand fingers screen will react to it — looks like something is pushing screen. It does not look professional…

Ending summary: so far I am satisfied. Maybe one day will try one of those crazy builds like Ubuntu ;D

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 :D

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).

How to detect PandaBoard version

Some time ago I got PandaBoard for my personal use. It is EA1 version but then there was a question which I heard countless times:

Which version of OMAP4430 did you got?

There are two possible answers: ES2.0 or ES2.1. During my return trip from UDS-N Nicolas Dechesne from TI asked me and instead of answering I just gave him board with “this one” answer. He looked and told “ES2.1″ and I did not asked more.

At home when I got it working I found PandaBoard Revisions wiki page which tells which GPIO lines should be checked. So I wrote simple test:

for gpio in 171 101 182;
do 
    cat /sys/class/gpio/gpio$gpio/value;
done

And got “0 1 1″ as an answer which according to table from wiki means “750-2152-010 (ES2.1, 8-layer board)-Production board/PandaBoard Rev. A1″. But sticker on mine says “750-2152-001 (D)” which (again according to table) means that I have “(ES2.0, 8-layer board)-Early Adopter Board/PandaBoard Rev. EA1″ one.

So who to believe? After some discussions on #pandaboard irc channel I prefer to trust Måns Rullgård and his skills in OMAP related area. He pointed me to OMAP4430 TRM section 1.5 which describes where version of silicon is written. What left was just one run of devmem2 tool:

root@localhost:~# devmem2 0x4A002204
/dev/mem opened.
Memory mapped at address 0x2aba9000.
Value at address 0x4A002204 (0x2aba9204): 0x1B85202F

And I got confirmation that I have real ES2.0 board. For those curious: ES2.1 has 0x3B95C02F value.

PandaBoard: Beagleboard XM killer?

It was known since previous UDS that there will be OMAP4 based PandaBoard available for developers. And some time ago pandaboard.org 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.