Hi,
I noticed that for video initialization I need to keep a copy of the video rom in the system rom for execution. This definitely makes sense for onboard graphics, but for other devices it would be nice to just use the option roms held on expansion cards. (Like Video cards, SCSI controllers, network cards, etc)
Is this just a matter of mapping the roms into address space, or is there some higher magic preventing this to happen?
Stefan.
On Thu, 17 Jul 2003, Stefan Reinauer wrote:
I noticed that for video initialization I need to keep a copy of the video rom in the system rom for execution. This definitely makes sense for onboard graphics, but for other devices it would be nice to just use the option roms held on expansion cards. (Like Video cards, SCSI controllers, network cards, etc)
that works. In other words, for linuxbios vga support, the vga startup code will find an option room for a VGA device and use it. That code could be extended for arbitrary expansion roms.
I'm not sure you want to always do that. Some of these expansion roms for disk cards want to interact with you on bootup, which is crazy for a cluster node (crazy in general, as far as I'm concerned).
I think the ADLO code works the way it does because it was set up on an SIS 630 which had built-in graphics.
Is this just a matter of mapping the roms into address space, or is there some higher magic preventing this to happen?
The only real issue is expansion roms that break the rules. Some VGA roms (e.g. older Nvidia) con't quite follow the rules, and that is hard to fix.
But all the bits are there in linuxbios to support arbitrary expansion roms. Let me know if you hit trouble.
ron
* ron minnich rminnich@lanl.gov [030717 16:09]:
On Thu, 17 Jul 2003, Stefan Reinauer wrote:
I noticed that for video initialization I need to keep a copy of the video rom in the system rom for execution. This definitely makes sense for onboard graphics, but for other devices it would be nice to just use the option roms held on expansion cards. (Like Video cards, SCSI controllers, network cards, etc)
that works. In other words, for linuxbios vga support, the vga startup code will find an option room for a VGA device and use it. That code could be extended for arbitrary expansion roms.
I'm not sure you want to always do that. Some of these expansion roms for disk cards want to interact with you on bootup, which is crazy for a cluster node (crazy in general, as far as I'm concerned).
It is, but it would allow to boot off any scsi controller you put into such a box. Since quite some systems around have scsi only or in addition to IDE, this would be very nice to have.
I think the ADLO code works the way it does because it was set up on an SIS 630 which had built-in graphics.
So with the LinuxBIOS builtin code this is different?
The only real issue is expansion roms that break the rules. Some VGA roms (e.g. older Nvidia) con't quite follow the rules, and that is hard to fix.
Have an example? I assume you need a workaround for these specific cards then? I know that pretty well from the Alpha days :-(
But all the bits are there in linuxbios to support arbitrary expansion roms. Let me know if you hit trouble.
I was playing around with ADLO on the K8, and I could get it to load grub, but grub hung right after loading stage2 every time. Video did not work at all. I'll give the builtin stuff a try.
Stefan
On Thu, 17 Jul 2003, Stefan Reinauer wrote:
So with the LinuxBIOS builtin code this is different?
only in that you have to copy the code into the linuxbios image, since there is no expansion flash part for it to live in. Most of the rest of should be pretty much the same.
Have an example? I assume you need a workaround for these specific cards then? I know that pretty well from the Alpha days :-(
yes, one nvidia card we had just assumed that it was the only thing in the universe that mattered -- it did not call PCI BIOS or even walk the bus itself, or even take the busdevfn parameter you pass to the VGA rom when you call it. This broke a bit when there were two of them -- IIRC the bios from one card initialized -- but it initialized the other card! Other cards we've seen do similar strange things, such as assume they are mapped at 0xc0000, etc.
I am pretty sure the builtin stuff is solid on EPIA, and we're going to to what is needed to make it more solid, so keep in touch.
ron
On Thu, 17 Jul 2003, Stefan Reinauer wrote:
I'm not sure you want to always do that. Some of these expansion roms for disk cards want to interact with you on bootup, which is crazy for a cluster node (crazy in general, as far as I'm concerned).
It is, but it would allow to boot off any scsi controller you put into such a box. Since quite some systems around have scsi only or in addition to IDE, this would be very nice to have.
me thinks you might be able to get away with using linux kernel+kexec instead of the scsi bios. I guess depends on quality of drivers in kernel.
Forgot to mention, david will probably be starting the P4/Nvidia work next week.
ron