[ipxe-devel] additional subsys id of of busid as variable available?

Andrew Bobulsky rulerof at gmail.com
Tue Mar 20 12:13:02 UTC 2012


Good Morning Oliver,

I had a vague memory that the first bit of the BusID is 00 for ISA,
and 01 for PCI.  It's probably also 01 for PCI-E.  I DO have to admit
that I thought it was just a filler for a while, but I asked in IRC
about it a few years ago when Shao wrote the first patch for it for
gPXE.  Thinking logically, 0x00 would probably make better "filler"
anyway :)

To double check, a quick google against "site:dox.ipxe.org busid"
reveals this: http://dox.ipxe.org/netdev__settings_8c_source.html

On line 112 you can see how the parameter is assembled, and it says
"bus_type."  Some clicking around the highlighted arguments and
variable names in the doxygen could be very helpful, depending on how
much info you need.

I'm not quite sure where the "subsystem" information you're looking
for sits in the PCI/PNP hierarchy, but you've given me a good excuse
to dust off my Windows Internals book.  There was a really nice table
in there... but I digress!  Just out of curiosity, what's your
application for the subsystem info?

Also!  As a side note, if you've any experience wrangling code, you
might want to check out HDT: http://hdt-project.org/  It doesn't, to
my knowledge, provide any API through which you can extract the
information you seek, but is handy for adding to boot menus in case
you want to inspect the PCI layout or all kinds of wonders about the
underlying hardware that you're booting from.

Cheers,
Andrew Bobulsky

On Tue, Mar 20, 2012 at 7:15 AM, Oliver Rath <rath at mglug.de> wrote:
> Hi list,
>
> as far i knows, the ${busid} in ipxe are 5 bytes
>
> A miracle number (what is it?)
> vendor-id part 1
> vendor-id part 2
> dev-id part 1
> dev-id part 2
>
> I.e. 01:80:86:10:9a shows an intel e1000pl nic
>
> 01      I dont know what is good for. Primary card?
> 80:86 ist the vendor (must have been very expensive getting this number ;-)
> )
> 10:9a the dev-id
>
> Now it would be a great thing for me getting the subsys id useable in
> ipxe-scripts. I.e. in my case i have a machine with the following nic:
>
> root at PartedMagic:~# lspci -nnv -s 02:00.0
> 02:00.0 Ethernet controller [0200]: Intel Corporation 82573L Gigabit
> Ethernet Controller [8086:109a]
>     Subsystem: AOPEN Inc. Device [a0a0:0632]
>     Flags: bus master, fast devsel, latency 0, IRQ 42
>     Memory at fdde0000 (32-bit, non-prefetchable) [size=128K]
>     I/O ports at ef00 [size=32]
>     Capabilities: [c8] Power Management version 2
>     Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
>     Capabilities: [e0] Express Endpoint, MSI 00
>     Capabilities: [100] Advanced Error Reporting
>     Capabilities: [140] Device Serial Number 00-01-80-ff-ff-65-dc-c9
>     Kernel driver in use: e1000e
>     Kernel modules: e1000e
>
>
> Here you see the additional subsys-id from aopen, which is a0a0:0632.
>
> My question: Is it possible to get this subsys-id at ipxe-time in a
> variable?
>
> Tfh!
>
> Oliver
>
>
> _______________________________________________
> ipxe-devel mailing list
> ipxe-devel at lists.ipxe.org
> https://lists.ipxe.org/mailman/listinfo/ipxe-devel
>



More information about the ipxe-devel mailing list