On 15/12/17 22:39, Programmingkid wrote:
If someone wanted to enhance OpenBIOS to load a FCode ROM from a video card, what would need to be changed?
My theory is this line in the pci.c file's vga_config_cb() function would need this line changed:
feval("['] vga-driver-fcode 2 cells + 1 byte-load");
I think the vga-driver-fcode word is what points to the generic driver. Would this be a correct assumption?
Yes, that's correct - the above Forth finds the address of vga-driver-fcode (which is the target of the compiled VGA driver FCode), adds 2 cells to skip the CFA/LFA and then executes byte-load on the resulting address.
What really needs to be done is to generate a proper PCI option ROM and then include the binary in QEMU as similar to the QEMU,cgthree and QEMU,tcx FCode ROMs. The main reason it was done this way was until now no-one was no other user other than QEMU so it didn't really matter that much (and it's easier to get code changes merged into OpenBIOS than QEMU).
ATB,
Mark.