[OpenBIOS] Back at it again( PCI Passthrough )

Tarl Neustaedter tarl-b2 at tarl.net
Sat May 19 19:02:44 CEST 2018


On 2018-May-19 11:53 , Jd Lyons wrote:
> SLOF
>
> assigned-addresses 82000830 00000000 83000000 00000000 00010000  
>                                  82000810 00000000 81000000 00000000 01000000  
>                                  c3000814 00002100 00000000 00000000 10000000  
>                                  8200081c 00000000 82000000 00000000 01000000

That looks reasonable. It's somewhat unusual to have the ROMBAR be the
first entry, but not prohibited. I'm a little startled by BAR 14; it's
64-bit memory space, starting at 2100.0000.0000 for length 10000000. Not
out of question, but  on SPARC I didn't see addresses assigned that high
up (I recall we usually started at 2.0000.0000).

> Openbios:
>
> assigned-addresses-- 3c : 02007810 00000000 81000000 00000000 01000000 
>                           c3007814 00000000 90000000 00000000 10000000 
>                           8300781c 00000000 a0000000 00000000 01000000 
>
> Obviously Openbios isn’t getting the ROM bar 0x30.

The ROMBAR absence might not be a problem - it has to be manually turned
on (low order bit in the address, as I recall), so if you leave it
turned off, you don't need to assign it an address. I'd generally have
the framework assign it an address anyway, just so you didn't run into
allocation problems at the time when you do need to turn it on.

BAR 14 is listed as 64-bit memory, starting at 9000.0000 - way down in
32-bit address space. Some FCodes may get confused by that. It generally
shouldn't be a problem, but it's something to worry about.

BAR 10 in the above is listed starting with 02 instead of 82... My
recollection is that the "8" is the "n" (non-relocatable) bit in the
descriptor... Ah, yes, see
https://www.openfirmware.info/data/docs/bus.pci.pdf section 2.2.1.1 -
I'd generally expect that to be set in the assigned-addresses
specification (once the framework has assigned an address, the client
isn't allowed to relocate it. The bit is more intended for a "reg"
specification.)

So, Openbios is doing things a bit funky, but not entirely unreasonable.
I"d keep in mind the potential confusion with 32/64 bit addressing in
the FCode, but aside from that, the only thing I'd worry about is the
missing "n" bit on BAR 10.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/openbios/attachments/20180519/d27afc8b/attachment.html>


More information about the OpenBIOS mailing list