On Fri, Mar 12, 2010 at 08:58:11PM +0100, Matthias Drochner wrote:
> 
> [pci bus space alloc]
> dyo...@pobox.com said:
> > > The new methods should be part of the pci(9) API. That kind of
> > > bus space management is inherently bus specific.
> > Do you think that bus_space_alloc(9) should go away, then?
> 
> It shouldn't go away, it it needed where the MI pci hierarchy meets
> MD semantics, at the host bridge.
> 
> For me, bus_space_* and the bus_addr_t types refer to a platforms
> native "main bus" which is basically what comes out of the MMU.
> MI buses should use fixed width types to describe their interfaces.

According to my understanding of bus_space(9), bus_addr_t alone
can unambiguously describe an address on the target bus, from the
perspective of all of the agents directly connected to that bus.

Only the tuple [bus_space_handle_t, bus_addr_t] unambiguously describes
the same address from the perspective of the CPU, however.

bus_space_tag_t tells us what the target bus is, and how to operate on
it.

Does that sound about right to you?

> > And what about bus_space_map(9)?
> 
> Here is the question whether we want to support PCI where it is not
> a "native" bus and mapped by a MD host bridge.

Let's say "maybe someday." :-) I'm interested in accessing a PCI bus
over IEEE 1394.

> > Certainly I could introduce pci_space_alloc(9) with a similar signature
> > as bus_space_alloc().
> 
> There is no guarantee anyway that eg. the PCI I/O space corresponds
> to an I/O space known to bus_space_alloc()...

I think that in that case we will have no bus_space_tag_t for PCI I/O
space.  How will problems arise for bus_space_alloc()?

Dave

-- 
David Young             OJC Technologies
dyo...@ojctech.com      Urbana, IL * (217) 278-3933

Reply via email to