[OpenBIOS] Probing the PCI bus for Option ROMs.

Jd Lyons lyons_dj at yahoo.com
Mon Apr 2 22:51:14 CEST 2018


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/openbios/attachments/20180402/de68160f/attachment-0001.html>


More information about the OpenBIOS mailing list