Properly managing sub-allocations

M. Warner Losh imp at bsdimp.com
Mon Oct 2 12:42:14 PDT 2006


In message: <200610021403.50339.john at baldwin.cx>
            John Baldwin <john at baldwin.cx> writes:
: > However, this may break some existing drivers that allocate a BAR,
: > peek at its type and then either activate it or allocate another
: > BAR...  The TAG is valid, but the handle isn't.
: 
: They generally peak at the BAR register itself though, not the value of 
: rman_get_bustag() though, right?

Some do, some get the resource and look at it.  There's a lot of
variance here.  Do you put knowledge of how to decode PCI bars into
every driver, or do you let the pci bus take care of it?  Since the
knowledge is nearly trivial, different people decide differenly.  It
is still a technique that has been used, and you'll need to be careful
to make sure you don't break anything.  After all, 0 is a valid I/O
tag and it is also the default value...

: > This specific problem will never happen in pc98, since there are no
: > ACPI pc98 machines and can never be.
: 
: Yeah, but I can cleanup the stuff in ACPI a good bit if I can get it
: to stop peeking at the "real" resource to get the bus tag.  Also, I
: think fixing this would be important for a driver that wanted to
: sub-alloc its resources out to children (like vgapci, which
: currently cheats on that).

Good point.  I don't dispute this is a good thing, just that it will
solve a problem we're currently having.  Given the push for embedded,
this is a problem worth solving.

Warner


More information about the freebsd-new-bus mailing list