Porting uClinux

For anyone contemplating porting uClinux to a new hardware platform, I have put together an approximate timeline for my Prisma port. It is difficult to say exactly how much time I have spent on it altogether but I would estimate that I have been spending roughly 2 or 3 evenings a week on it, sometimes more, sometimes less and some weeks none at all.

Timeline: 1999 to 2001

December 1999

Realise that the Minix non-blocking listen() problem is not going to be easy to solve. Start to seriously consider porting uClinux as an alternative OS platform. Check web sites for current status.

January 2000

Download the 5th January ColdFire release and start work on the low-level startup code, interrupt handlers and serial console.
First attempt to boot the kernel gets as far as the message "Calibrating delay loop.." . After much debugging of the interrupt handler and the serial driver, get a working shell prompt on 31st January.

February 2000

Network driver (based on the Amiga A2065 code) working on 1st February.
VNC client working on 7th February.
Prisma web pages updated 11th February.

March 2000

Started work on a Microwindows port, this mainly involves a new screen driver to talk to the Prisma's graphics card. Ported the VNC viewer to Microwindows, this helps with stress testing the screen driver.

April 2000

VNC viewer for Microwindows uploaded on 4th April, web pages updated to add it to the uClinux downloads.

May 2000

On holiday, not much done

June 2000

Updated VNC viewer for Microwindows uploaded on 13th June, web pages updated

July 2000

Working on colour handling for Microwindows VNC viewer.

August 2000

Diffs for Microwindows on uClinux uploaded on 21st August. Updated VNC viewer for Microwindows uploaded on 28th August. Web pages updated.

September 2000

Updated my uClinux source to the ColdFire release dated 6th July.

October 2000

Uploaded the updated diffs for uClinux to the web site. Started work on the Prisma 40, trying to deduce the hardware configuration and write drivers for uClinux.

November 2000

November 3rd, First successful boot of uClinux on the Prisma 40 with networking and root on NFS. The serial interface was going to be hard to figure out so I had to have network support from day one in order to be able to download test programs to help me explore the shared-memory interface. November 18th, first trial of Microwindows using framebuffer driver. November 26th, web pages updated with Prisma 40 information.

December 2000

Attempt to dis-assemble the I/O processor ROM but the two PROM programmers I have access to both fail to copy the contents correctly. I do get the first 4K which at least gives me the initialization code and lets me work out the memory map.

January 2001

Guess that the problem with the ROM is that I have a 32-pin PLCC chip and the programmers are expecting the 28-pin DIP variant. Order parts to build my own PLCC to DIP adapter.

February 2001

Build adapter and finally get a good dump of the I/O processor ROM. Run it through the dis-assembler and start trying to make sense of 6000+ lines of 68k assembler!

March 2001

Further testing of the serial ports suggests that there is a hardware fault with the Mouse port. Configure kernel serial driver to use the joystick port for a serial mouse. Succeed in getting serial mouse to work on 17th March. Do a quick port of Microwindows 0.89pre7 to test framebuffer and mouse interfaces. Successful test with VNC client on 29th March. Web pages updated 30th March


[Home]