On 13 Oct, Stefan Reinauer wrote:
Hi...
On Tue, 13 Oct 1998 daniel.engstrom@riksnett.no wrote:
Here is what I thought: A free Open Firmware implementation that runs on my PC would be utterly cool and the Right Thing To Do <tm>.
This is generally correct I would say. But what could/should be discussed is whether we should really implement what is IEEE Std 1275-1994 (Official Name of Sun's OpenFirmware). I am a bit in fear that we might get problems implementing a forth interpreter in 128k together with the whole stuff we need to get a machine running. (This may be because I am not familiar with Forth, though) :)
Some boards have 4MBit (256k byte) flash these days... And IO though one could use compression. The gunzip object code in linux is 14k bytes and the kernel compresses about 2.5:1 which means that if we total 16k uncompressed code we have 112k left in the PROM. If we get 2.5x as well it will give 280k. If we only get 2x it will still be 224k binary code.
I am more worried about NVRAM space, the standard RTC only have 64 bytes of which 50 bytes are general purpose. Ofcuse most board have RTC versions with more RAM up to 4k, but we will need compression or some token based system to fit the needed boot variables.
My idea of boot sequence (with my limited knowledge on what IEEE1275 says)...
1: Initialize DRAM controller and check 1st 64k DRAM 2: Enter PM 3: Load segments, TSS, stuff 4: Initialize rest of memory, set DRAM timing CONSERVATIVE, 5: Uncompress main firmware 6: Initialize PIC, DMA, Super IO chip and VGA (If boot console is VGA) 7: Parse NVRAM 8: Scan for FORTH code 9: Execute any FORTH code 10: Boot system
The boring part is that I believe the Open Firmware specs cost money.
They are available as a book. I ordered it today :-) It's ISBN Number 1-55937-426-8 IEEE Std 1275-1994: IEEE Standard for Boot Firmware.
What did they charge?
In order to to this one fist should get the specs (anyone here who has them?) And then make an architecture addendum for the i386 and submit it to the Open Firmware folks. (Las time I checked their web site there were none for the i386, the web site is unresponsive at the moment.)
I found http://playground.sun.com/1275/home.html which might be interesting as a starting point, but I haven't had a closer look at it.
Thats the page I remember looking at.
They have "Instruction Set Architecture Supplement"s for Sparc, PPC and ARM. So if we choose that path we'll need to specify Open Firmware for IA-32 and the PC platform. Everything else (PCI, ISA, VGA, etc, seems to be specified already for CHRP I suppose.)
.signature: No such file or directory
:)
/Daniel --