As it stands the Qemu_VGA is a pci device, and Qemu loads an Option rom, but it’s the VGA Bios and Opennbios doesn’t probe for option roms. Openbios has the Fcode for the Qemu-Vga device and there is a NDRV that gets loaded from a file.
What we really need is to make a proper FCode Rom image with the NDRV for the Qemu_VGA device, we could make a hybrid Bios/Fcode rom and not have to change the code in Qemu at all, I don’t think.
Here are some instructions on setting up and building Openbios on OS X Intel.
\ *****************************************************************************
\ * Copyright (c) 2004, 2008 IBM Corporation
\ * All rights reserved.
\ * This program and the accompanying materials
\ * are made available under the terms of the BSD License
\ * which accompanies this distribution, and is available at
\ *
\ * Contributors:
\ * IBM Corporation - initial implementation
\ ****************************************************************************/
my-space pci-class-name type
my-space pci-device-generic-setup
pci-io-enable
pci-mem-enable
30 config-l@ pci-find-fcode execute-rom-fcode
: check-display ( nodepath len -- true|false ) \ true if display found and "screen" alias set
\ check if display available, set screen alias
2dup find-node \ ( path len phandle|0 ) find node
?dup IF
\ node found, get "display-type" property
s" display-type" rot get-property ( path len true|propaddr proplen 0 )
0= IF
( path len propaddr proplen ) \ property found, check if the value is not "NONE"
s" NONE" 0 char-cat ( path len propaddr proplen str strlen ) \ null-terminated NONE string
str= 0= IF
( path len ) \ "display-type" property is not "NONE" so we can set "screen" alias
s" screen" 2swap set-alias
true ( true ) \ return true
ELSE
2drop false ( false ) \ return false
THEN
THEN
THEN
;
get-node node>path s" /NVDA,DISPLAY-A" $cat check-display
0= IF
\ no display found on DISPLAY-A ... check DISPLAY-B
get-node node>path s" /NVDA,DISPLAY-B" $cat check-display
drop \ drop result
THEN
s" name" get-my-property drop s" ( " type type s" ) " type cr