I bought an i.MX53 development board a while ago, and just got it sorted out and running nicely. I picked this board over other options because it has SATA. I’ve now attached a 40GB SSD to it, so it has fast local storage.
This development board by default boots from a micro-SD card. You can change the boot option but it involves soldering. I didn’t want to risk breaking the board (and it looks like you’d need steady hands; tiny pads) so I’m using a micro-SD to hold uBoot and the kernel/initrd, and am booting the root filesystem from the SSD.
Linaro is pretty easy to get going. There were some tricks to getting it going on this board, so I thought I’d share them. I’m no expert on Linaro and your mileage may vary; use caution!
You’ll need a machine running Ubuntu/Natty. I used a VM running under Fusion on my Mac, with the card in a USB reader shared to the VM. I installed the latest 11.05-daily image with the ‘linaro-media-create’ command. I had to get the latest version of linaro-image-tools from bzr; the package in the Linaro PPA doesn’t know about the mx53loco architecture. In my case the magic command was:
linaro-media-create --rootfs ext3 --mmc /dev/<card> \ --binary linaro-natty-alip-tar-20110527-0.tar.gz \ --hwpack hwpack_linaro-lt-mx53loco_20110527-0_armel_supported.tar.gz \ --dev mx53loco
That’ll take a while to run, and I had to type ‘y’ once to approve apt installing some packages without known GPG signatures. Don’t run the above while logged in graphically, you’ll hit problems with things automatically mounting filesystems (I think this is devkit-disk or whatever it’s called this week). That’ll stop the kernel re-reading the partition table when Linaro’s scripts change things. I just ran it from a text vty while logged out in the GUI and everything worked OK.
Chuck the card in the i.MX53 and turn the board on. You should see it boot normally if you watch the serial port.
I wanted to get the SSD going as the rootfs. All I had to do was make a filesystem on the SSD, rsync my install over onto it, then create a file /boot/boot.script and chuck this in it:
setenv bootcmd 'fatload mmc 0:2 0x70000000 uImage; fatload mmc 0:2 0x72000000 uInitrd; bootm 0x70000000 0x72000000' setenv bootargs 'console=tty0 console=ttymxc0,115200n8 root=/dev/sda1 rootwait ro' boot
I then ran `flash-kernel’. At time of writing this aborts with an error about mismatched subarchitectures. I edited the `flash-kernel’ script in vi and took the check out and everything worked fine.
Now I have a completely silent setup with a 1GHz ARM, SSD, 1GB of memory, audio, VGA, … nice!