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) said:
> (1) If a bus-bridge driver is not configured in the kernel, or if its
>     module is unloaded, then the code is left out.

I know... but if you add this to the commonly used "ppb" driver
there is no way to avoid it.

> (2) Do you intend for the new methods to belong to a new API, or to
>     bus_space(9)?  What would the methods' names and contracts be?

The new methods should be part of the pci(9) API. That kind of
bus space management is inherently bus specific.

> I think that you are trying to tell me about some existing limitation to
> bus_space(9)?
> [...]
> > This type is primarily used when mapping and unmap-
> >      ping bus space.

Yes, this is a limitation of the idea of a universal bus_space type.
It doesn't consider bridges which map things differently, eg by using
split transactions.
Generally I find the idea of making the bus methods more MI as you
propose a good thing. It just needs to be done in a way which doesn't
hurt users with tradiditional/embedded/low memory systems.

> on i386, where bus_addr_t was until very recently 32 bits wide, we will
> need to extend bus_addr_t to 64 bits.

I've seen the mails about this -- if things were designed well, the change
for PAE would only affect uvm and the pmap functions dealing with it.
A single #define would switch between 32-bit and 64-bit physical addresses,
without affecting drivers or userland.
(I know that bus_dma_segment_t uses bus_addr_t which is wrong because
a DMA address refers to a bus address of the actual device rather than
a main bus address of the platform. That's a motivation to refine that
interface rather than drawing more design compromises from it.)

best regards

Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzende des Aufsichtsrats: MinDir'in Baerbel Brumme-Bothe
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Dr. Ulrich Krafft (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt

Home | Main Index | Thread Index | Old Index