Late in 2003, I bought a full-featured SH3 embedded development kit, a pair of LCD panels for salvage on eBay, a $3 shelf from IKEA, and a handful of power connectors at Radio Shack.
The vendor company claimed to offer Linux support for the device and peripherals, but, that claim turned out to be untrue, so I've been working on getting the Linux kernel compiled and running. I've started tooling around with a specific configuration fork of the latest Linux kernel and will hopefully be able to fully flesh out support for all of the devices on the board.
One great tool that has helped immensely in getting started is Dan Kegel's Crosstool, which removes a lot of the difficulties in getting a working GNU cross compiler toolchain (compiler, assembler, linker) set up for your target embedded system.
Another resource I'm using is the LinuxSH mailing list, which is hosted at Sourceforge.
As I've been working on the framebuffer driver, I've been jotting down development notes which can be read here. It mostly documents my paper chase through a half dozen tech reference manuals and snippets of kernel source.
Write framebuffer driver for on-chip LCD controller.
Write SMSC 91C111 ethernet chip driver
Set up NFS root.
Write OHCI-compliant USB driver
Write CompactFlash MTD interface driver
Have the kernel recognize more than 4MB of memory (should be 32MB).
Kernel Boot: 06/10/04 - 18:58:28
jumping to: 8c800000... Linux version 2.6.6 (email@example.com) (gcc version 3.3.2) #2 Thu Jun 10 18:54:51 EDT 2004 initrd extends beyond end of memory (0x60f89ed9 > 0x0c400000) disabling initrd On node 0 totalpages: 1024 DMA zone: 1024 pages, LIFO batch:1 Normal zone: 0 pages, LIFO batch:1 HighMem zone: 0 pages, LIFO batch:1 Built 1 zonelists Kernel command line: console=ttySC1,115200 PID hash table entries: 16 (order 4: 128 bytes) SH RTC: invalid value, resetting to 1 Jan 2000 CPU clock: 309.60MHz Bus clock: 51.60MHz Module clock: 51.60MHz Interval = 129000 Console: colour dummy device 80x25 Memory: 2960k/4096k available (816k kernel code, 1112k reserved, 118k data, 44k init) Calibrating delay loop... 77.20 BogoMIPS Dentry cache hash table entries: 1024 (order: 0, 4096 bytes) Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) CPU: SH7729 POSIX conformance testing by UNIFIX Linux NoNET1.0 for Linux 2.6 fb0: Hitachi HD64461 frame buffer device SH Virtual Bus initialized HD64461 configured at 0xb0000000 on irq 36(mapped into 80 to 95) devfs: 2004-01-31 Richard Gooch (firstname.lastname@example.org) devfs: boot_options: 0x1 Console: switching to colour frame buffer device 80x25 SuperH SCI(F) driver initialized ttySC0 at MMIO 0xfffffe80 (irq = 25) is a sci ttySC1 at MMIO 0xa4000150 (irq = 59) is a scif ttySC2 at MMIO 0xa4000140 (irq = 55) is a irda RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx ide: SuperH generic IDE interface ide-sh: Attempting to register ide2 when only 1 interfaces are available. mice: PS/2 mouse device common for all mice
On the first boot, the system didn't output this message, which it has done on a number of subsequent occasions: "Kernel panic: VFS: Unable to mount root fs on ram0" This is a good sign. I'm putting together a initial ramdisk (initrd) and will see if I can get the kernel to boot properly into it.