Archive for February, 2010

armv4l/armv4tl/armv5tel/armv6j/armv7a Gentoo stages

February 23, 2010
  • armv4l-unknown-linux-gnu
    For the Rebel NetWinder, HP Armada and other devices having an ARMv4 processor, which is only capable of running the old ABI. Nevertheless it should work on newer CPUs.
  • armv4tl-softfloat-linux-gnueabi
    For the OpenMoko FreeRunner and other devices using an ARMv4T processor. Uses the new ARM EABI and software floating point by default.
  • armv5tel-softfloat-linux-gnueabi
    For almost all ARM NAS, devices based on the Marvell Orion and Marvell Kirkwood, Marvell Sheevaplug, Marvell OpenRD, Guruplug, Dreamplug, QNAP TS109/TS209/TS409/TS119/TS219/TS419, Buffalo Linkstation/Kurobox PRO, HP mv2120, HP iPAQ, Linksys NSLU2 and other devices using an ARMv5TE processor. Uses the new ARM EABI and software floating point by default.
  • armv6j-unknown-linux-gnueabi
    For Nokia N800/N810, Smart Q7, OMAP2-based devices and other multimedia devices using an ARMv6 CPU and VFP. Uses the new ARM EABI and hardware floating point by default
  • armv7a-unknown-linux-gnueabi
    For OMAP3-based devices(Beagleboard, IGEPv2, Devkit8000, AlwaysInnovating Touchbook, Nokia N900), OMAP4-based devices(Pandaboard), Freescale i.MX515-based devices(Efika MX, Babbage Board, Lange Board…) Marvell Dove/Armada, Nvidia Tegra2-based devices(Toshiba AC100, Toshiba Folio), ST-Ericsson NOVA A9500-based devices(Snowball) and other devices using an ARMv7-A processor. Uses the new ARM EABI and generic(not NEON) hardware floating point by default
  • armv7a-hardfloat-linux-gnueabi
    The same as armv7a-unknown-linux-gnueabi, but this one uses hardfloat instead of softfp. Read more about it here: http://wiki.debian.org/ArmHardFloatPort

You can find them on your favourite mirror or clicking on the links above.

ARMv7 SoCs: Freescale i.MX51 Babbage, TI OMAP3, Marvell Dove/Armada, Qualcomm Snapdragon…

February 14, 2010

This is a continuation of the ARMv7 post i wrote last year.

(WARN: long post)

I find some searches that arrive to my blog regarding Marvell Dove boards, which I believe are because Ubuntu announcing support for them while Marvell didn’t even released them. So since some months ago I was in the same position, not knowing what kind of devices were it, i’m going to try explain what ARMv7 SoCs are available/announced and which hardware is using them. All the info I’m going to write is publicly available on the net(I will link to the sources) and i definitely could be wrong. Feel free to send corrections to me.

Let’s start with the one that has less info on the net.

  • Marvell Dove/Armada
    The Armada SoCs are a continuation of the Marvell Orion and Kirkwood(this one is used by the popular Sheevaplug/OpenRD) SoCs. The Marvell Dove is the codename of a SoC of the Marvell Armada series which features an ARMv7-compliant processor. However not all the Armada SoCs are ARMv7-compliant…As far as i’ve been told, the Dove is the Armada 500 series. One of the cons of Armada 500 is that it lacks NEON support.

    So what is a Marvell Dove board Ubuntu talks about? It’s just a developer board, that contains a video chip, SATA controller, SD slot and audio. It also seems it runs at 800MHz(WARN: big file, grep for cpuinfo) and has 512MB or 1GB of RAM. In other words, is a smartbook development platform. In fact there was a Marvell smartbook for display at CES2010 running Ubuntu.
    Hope that makes it clear. It’s simply a developer board for a product that you can’t buy yet.

    Devices using it: Prototype

  • Freescale i.MX51
    This one is also a continuation of the i.MX SoCs, while the previous i.MX3 SoCs were ARMv6, the i.MX51 are ARMv7 Cortex-A8.

    Ubuntu also announced support last year for the Babbage board, which is also a development board for a smartbook platform. It runs up to 800MHz. But like the Marvell Dove, there aren’t any smartbooks using this SoC(yet), just prototypes/reference designs. One exception is the Sharp Netwalker. At CES2010 there was also a “Smartbook Reference Design” which could be converted into a tablet.
    Devices using it: Prototype, Efika MX, Sharp Netwalker.

  • Qualcomm Snapdragon
    The Qualcomm Snapdragon is also an ARMv7-compliant SoC which is very popular and i can’t say why. A lot of manufacturers are using it: Lenovo with the Lenovo Skylight, Google with the Nexus One… and a lot of smartbook manufacturers which showed their devices at CES2010, yet none of them is for sale at the moment.

    According to the cpuinfo of the Nexus One, it has NEON support and also has a FPU. The ARMv6 processors of Qualcomm lacked FPU, so thats a nice step 🙂

    Devices using it: Lenovo Skylight, Google’s Nexus One, HP Smartbook, HTC Dragon…

  • TI OMAP3
    This is a pretty popular one, since there are a lot of devices that use it. Its mostly famous for being the SoC the Beagleboard uses, which has been in the market for some years already. There’s only one smartbook as far as i know, the Always Innovating Touchbook which can also be converted on a tablet.

    Devices using it: Always Innovating Touchbook, Nokia N900, Beagleboard, Devkit 8000, IGEP v2, Motorola Droid, Palm Pre, Bug Labs Bug2.0, Archos 5/7, Gumstix Overo(and other Gumstix boards)…

  • Nvidia Tegra
    Since as far as I know, Nvidia is not interested on Linux, i won’t talk about this one. However latest reports(thanks Arie) say that Nvidia is working on Linux support…we’ll see…

Probably we’re going to see more stuff at the Mobile World Congress 2010, and definitely during the rest of the year, or so say the manufacturers. And by the way, anyone has a Mobile World Congress pass for me?

Update: Added Motorola Droid, Palm Pre, Bug Labs Bug2.0, Archos 5/7 to OMAP3 devices. Thanks Jason!
Update 2: Added Nvidia Tegra links and possible Linux support. Thanks Arie!

>=emacs-23 fails to compile on ARM EABI (Update: Fixed upstream)

February 14, 2010

As what the subject says, >=emacs-23 fails to compile on ARM EABI.

The error happens with a clean system, and happens on Gentoo and Debian. So you can’t say its Gentoo’s problem, like people tend to say 🙂

The problem is this one:
armv4tl-softfloat-linux-gnueabi-gcc -nostdlib `./prefix-args -Xlinker -z
nocombreloc` -Wl,-O1 -Wl,-znocombreloc -o temacs pre-crt0.o /usr/lib/crt1.o
/usr/lib/crti.o dispnew.o frame.o scroll.o xdisp.o menu.o window.o charset.o
coding.o category.o ccl.o character.o chartab.o cm.o term.o terminal.o xfaces.o
emacs.o keyboard.o macros.o keymap.o sysdep.o buffer.o filelock.o insdel.o
marker.o minibuf.o fileio.o dired.o filemode.o cmds.o casetab.o casefiddle.o
indent.o search.o regex.o undo.o alloc.o data.o doc.o editfns.o callint.o
eval.o floatfns.o fns.o font.o print.o lread.o syntax.o unexelf.o bytecode.o
process.o callproc.o region-cache.o sound.o atimer.o doprnt.o strftime.o
intervals.o textprop.o composite.o md5.o terminfo.o lastfile.o vm-limit.o
-lgpm -lncurses -lm -lgcc -lc -lgcc /usr/lib/crtn.o
/usr/lib/gcc/armv4tl-softfloat-linux-gnueabi/4.3.4/libgcc.a(bpabi.o):(.ARM.exidx+0x0):
undefined reference to `__aeabi_unwind_cpp_pr0'
/usr/lib/gcc/armv4tl-softfloat-linux-gnueabi/4.3.4/libgcc.a(_divdi3.o):(.ARM.exidx+0x0):
undefined reference to `__aeabi_unwind_cpp_pr0'
/usr/lib/gcc/armv4tl-softfloat-linux-gnueabi/4.3.4/libgcc.a(_udivdi3.o):(.ARM.exidx+0x0):
undefined reference to `__aeabi_unwind_cpp_pr0'
collect2: ld returned 1 exit status
make[1]: *** [temacs] Error 1
make[1]: Leaving directory
`/var/tmp/portage/app-editors/emacs-23.1-r2/work/emacs-23.1/src'

Builds fine on ARM OABI.

I found a patch from an openembedded repository(thanks to whoever did it!), and it works fine. Gentoo developer Ulrich Müller (ulm), who is part of the Gentoo Emacs team, applied the patch and now we have >=emacs-23 stable on ARM.

I filed a bug upstream as well, with no answer so far:

http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=5518

Update: upstream has fixed it