[OpenBIOS] PIC Passthough( VGA )
mark.cave-ayland at ilande.co.uk
Mon Dec 11 22:47:02 CET 2017
On 09/12/17 12:37, Jd Lyons wrote:
> I was hoping I could use PCI Passthrough with an old Apple OEM Geforce
> 6600 PCI-E card, as the display device, but I’m not having any luck.
Wow that's certainly an interesting project! There are, of course a few
things that need to be done first in order make this work...
> Openbios seems to have an error” Can not manage “VGA controller’ PCI
> device type ‘display’
> 10de 141 ( 3 0 0 )
This is just a warning - you will still be able to see the device node
in OpenBIOS, it just won't have a "friendly" node name.
> I’m assuming that Openbios is not reading the Option Rom of the card,
> but I’m not sure why.
Well... at the moment we actually cheat ;) Instead of reading the VGA
FCode ROM from the virtual display adapter, OpenBIOS embeds its own copy
of the FCode ROM and executes it unconditionally when it detects a VGA
display device. I must admit I hadn't considered that someone would be
interested in legacy device passthough to enable a device that isn't the
standard QEMU display adapter.
> I’m having trouble checking to see if Openbios can read the Rom of the
> card, I’m, sure I’m not doing it right, could someone offer a little
> >dev / ls
> >dev pci
> >dev @10
> >” ..” find-device open
> This is where, I think it should return ffffffff, however it returns -1.
> I was thinking “-1” was 0xffffffff?
Yes that's correct as qemu-system-ppc uses 32-bit numbers so -1 is equal
to 0xffffffff in this case.
> Here is where I’m getting stuck:
> >1180e config-b@ config-b@ undefined word.
> Can anyone offer what I’m doing wrong, should I have another value for
A couple of things here: 1180e is the address of the PCI device in
configuration space which you can derive from the "reg" property so
you'll need to check to make sure it is correct in OpenBIOS.
The main problem with config-b@ is that OpenBIOS's PCI routines are all
written in C rather than Forth and so you'd need to work out which Forth
words are required in order to execute your FCode ROM and write
appropriate wrappers for them.
As a starting point I'd suggest that if you still have the old hardware
lying around, you can use the article above to extract the ROM from a
real Mac and then run the resulting code through fcode-utils detok which
effectively "decompiles" the ROM and therefore give us an idea as to how
many Forth words need to be implemented.
More information about the OpenBIOS