Joe, if it would be something that interests you, and you have the time, we could work on adding proper PCI Probing to Openbios.
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.
There is an effective tutorial on the openbios site. If you run OSX, you nee to install the fcode utils and use the awos cross compiler linked to: http://www.mediafire.com/download/wy5xg ... pilers.zip http://www.mediafire.com/download/wy5xgj2hwjp8k4k/AWOS_Cross-Compilers.zip
This is my script to build the OpenBIOS binary: PATH=:/usr/local/ppcelf/ppcelf/bin:/users/hsp/src/fcode-utils-devel/toke:$PATH export PATH cd openbios CROSS_COMPILE=ppc-elf- ./config/scripts/switch-arch ppc #(remove -Werror from CFLAGS in Makefile.target in top directory) make
Best, Cat_7
I forget the file that has the Forth for the Qemu_VGA device, Mark?
Also SLOF has some code for probing option roms for at least the GeForce 6600 PCI-E card, so that maybe something we can use to add support for option roms to OB.
\ ***************************************************************************** \ * 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 \ * http://www.opensource.org/licenses/bsd-license.php \ * \ * 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