tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: MI overrides of bus_dma(9), bus_space(9), pci(9)

> I would like for MI drivers to be able to override pci(9), bus_space(9),
> and bus_dma(9) behavior for the purpose of handling exceptions, managing
> bus resources, creating test harnesses, and counting events.
> Where pci(9), bus_space(9), and bus_dma(9) implementations are MD,
> today, I would like to split them into MI and MD parts.  This
> will involve creating MI types, struct bus_space_tag and struct
> pci_chipset_tag and corresponding MI typedefs, bus_space_tag_t and
> pci_chipset_tag_t.  Every MD tag will embed an MI tag, and a "pure" MI
> tag can derive from an MD tag or from an MI tag.

Although I like the idea to move things to MI in general, I want to
clarify *responsibility* of bus_space(9) and bus_dma(9).  For example,
bus_addr_t of a device instance should be taught to struct device as
an attribute (or property or whatever you call).  Then we can have a
unified way to calculate the physical address of the device, by
summing up its parents' bus_addr_t.

For debugging part, isn't it what DTrace is for now?


Home | Main Index | Thread Index | Old Index