larry.panzer@excel.net said:
Could you post some more info on your i960 board, is it a custom design? It may make a good testbed platform on which to try the OpenBIOS, when the time arrives. It might make some sence to do a pro/ con list of the different design techniques for this BIOS.
Well, OK. The card I refer to is the Picture Elements Imaging Subsystem Engine (ISE). There is information about it on our web page. It may not be of any real use to this list because they cost more then some cheaper PCI motherboard. However, it does have lots of PCI stuff to fuss with and has taught me the issues of BIOS management of PCI busses. Still interested? Read on.
ISE is a full-size PCI card that has an i960RD on board. Internally, the board has a PCI bus connected to the secondary bus side of the i960RD. There is a DEC PCI-to-PCI bridge that adds another PCI bus.
The board has daughter card positions that are electrically PCI. The daughter cards use typical interface chips (i.e. PLX PCI9080) to do the bus manipulation. Therefore, the cards appear to software like standard PCI devices.
I have written code for the i960 that does the job that the BIOS32 does on a PC, namely it locates the PCI devices, probes their registers and assigns interrupt numbers and address space. It is this little bit that may be most interesting to this list.
I have also ported TCL 7.6 to this environment. I have given TCL access to the PCI space by a "bios32" extension (load {} bios32) that adds commands to read/write configuration space registers.
The software for the ISE board is fairly generic, and available for free from our FTP site. ftp://ftp.picturel.com/pub/source/ucr/ UCR Version 1.0 is sitting there now, I'll be making a 1.1 release (and updating the TCL port) in a month or so. People are free to look at the PCI stuff to see what I had to go through, and the code may be used under GPL terms.
(The TCL source has its own license that allows free use.)
Some portions of uCR are known to work under i386 with gcc, as I have built and linked programs to run under Linux, using uCR in place of the C library. This is for simulation purposes, but may provide a decent test bed for embedded software.
Anyhow, there you go. In a month or so, things will settle down enough that I can port uCR to i386/PC board if there is interest.