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.
At FOSDEM 2009 I grabbed one Vortex86SX based device — Koala Nano PC which is available at Koan software. Device came with Ångström distribution and was running 2.6.26 kernel. I wanted to get something more fresh on it and after some fighting I booted 2.6.29-rc5 kernel today.
Device use Vortex86SX SoC which is based on 486SX core. Yes — this is x86 machine without FPU. Overall speed of that is… nearly not existing.
First benchmark which came to my mind was “hdparm -T /dev/sda”. Results were dramatic: 9-13 MB/s for cached reads (with 133MHz memory and 300MHz cpu). I decided to compare against other devices:
But remember that this test is not so good for benchmarking — I am preparing better set of tests to really compare speed of devices. So far it contains openssl speed and MP3 encoding/decoding.
But device has also few nice things. Everything is integrated so 12x12cm box is enough to keep everything inside. It has ATA controller, FastEthernet, graphics based on XGI core (with accelerated framebuffer able to do 1680×1050 resolution) and working USB. There is a place to put 2.5″ HDD inside (normally it boots from CompactFlash card), second Ethernet or WiFi are available options…
But what is use for such slow device? There are lot of ARM based ones which offer similar (or better) functionality and are faster… But wait — there is one use: event displays as this machine has nicely working framebuffer (I got even 1680×1050 resolution).
UPDATE: added results from iBook G3 300MHz and some other machines.
kirkwood reference board uses same cpu as SheevaPlug device. ↩
Koen’s post about AVR32 Network Gateway and few posts on usenet reminded me that many people still think that small devices are crap and lack power to do anything.
Do they? I think that not. Here I use two small embedded devices:
Linksys NSLU2 as NFS server (plans are to add TFTP, Samba, CUPS and Bluetooth AP)
Linksys WRT54GS as router/firewall
Both do their work without any problems, both runs Linux and opensource distributions (OpenSlug and OpenWRT).
Soon will add something based on one of AT91 devboards but more to experiment with software then normal usage. And as I have 20 pin header soldered to OpenMoko debug board it can even be bricked (JTAG port was already tested with other device then Neo1973).
Great thing is that systems like AT91SAM9263EK, Gateway or STK1000 (another AVR32 devboard from Atmel) can be used to produce many different devices — I remember talk with one guy who shown his developer board (about A4 size) and final device (small rugged mobile device with barcode scanner) and told that this devboard was used to create about 10 misc models.
My friend made a project of own device based on AT91 ARM cpu with few peripherials. Total cost was less then 100 EUR and it can be used to different tasks and also give possibility to learn how to write kernel code (to handle all addons).
As Cliff Brake wrote: you cannot afford to not use Linux in your own projects. There are too many drivers and ready to use code to not make use of them. You can even get nice modules for less then 100 dollars (ARM, AVR32, x86 based) if you do not want to design own one. Then next step is OpenEmbedded and you have problem which software to choose as there is too much to choose :)