On 30.01.2013, at 12:48, Peter Maydell wrote:

> On 30 January 2013 11:39, Andreas Färber <afaer...@suse.de> wrote:
>> Proposal by hpoussin was to move _list_add() code to ISADevice:
>> http://lists.gnu.org/archive/html/qemu-devel/2013-01/msg00508.html
>> 
>> Concerns:
>> * PCI devices (VGA, QXL) register I/O ports as well
>>  => above patches add dependency on ISABus to machines
>>     -> "<benh> no mac ever had one"
>>  => PCIDevice shouldn't use ISA API with NULL ISADevice
>> * Lack of avi: Who decides about memory API these days?
>> 
>> armbru and agraf concluded that moving this into ISA is wrong.
>> 
>> => I will drop the remaining ioport patches from above series.
>> 
>> Suggestions on how to proceed with tackling the issue are welcome.
> 
> How does this stuff work on real hardware? I would have
> expected that a PCI device registering the fact it has
> IO ports would have to do so via the PCI controller it
> is plugged into...

That's pretty much how it works for PCI hardware, yes.

For ISA like hardware, I asked Ben last night:

29-01-2013 23:41:10 > agraf: benh: hey ben :)
29-01-2013 23:41:50 > agraf: benh: do you remember if g3 beige (grackle) and/or 
U2 based macs had an actual ISA bus exposed through MMIO or whether it was PCI 
only with a PIO compat region mapped by the PCI controller?
29-01-2013 23:59:28 < benh!~benh@180.200.150.145: agraf: no ISA
29-01-2013 23:59:48 < benh!~benh@180.200.150.145: agraf: no mac ever had one
29-01-2013 23:59:57 > agraf: benh: well, MCP750 has one
30-01-2013 00:00:06 > agraf: benh: that's why I'm asking :)
30-01-2013 00:00:17 < benh!~benh@180.200.150.145: mcp750 ? what is this ?
30-01-2013 00:00:28 > agraf: benh: some motorola soc
30-01-2013 00:00:39 < benh!~benh@180.200.150.145: ah ok
30-01-2013 00:00:50 < benh!~benh@180.200.150.145: mostly ISA is just hooked 
onto PCI anyway
30-01-2013 00:00:59 < benh!~benh@180.200.150.145: ie, PCI cycles with low 
addresses land on ISA
30-01-2013 00:01:59 > agraf: benh: sounds tricky to model :)
30-01-2013 00:02:44 < benh!~benh@180.200.150.145: that's also how it works on 
x86
30-01-2013 00:03:05 < benh!~benh@180.200.150.145: dunno how it works on that 
specific SoC tho but that's how it's usually done
30-01-2013 00:04:36 > agraf: interesting - didn't know that :)
30-01-2013 00:04:51 > agraf: on x86 it's hard to see from a software pov, 
because everything's linear ;)
30-01-2013 00:26:27 < benh!~benh@180.200.150.145: yeah, that's why x86 has a 
memory hole to make room for ISA
30-01-2013 00:26:40 < benh!~benh@180.200.150.145: while usually on ppc we remap 
things with an offset so we don't have to punch a hole in ram

> My naive don't-know-much-about-portio suggestion is that this
> should work the same way as memory regions: each device
> provides portio regions, and the controller for the bus
> (ISA or PCI) exposes those to the next layer up, and
> something at board level maps it all into the right places.

Right. With the addition that on some boards, the PCI host controller which 
provides a portio map would also expose an ISABus for devices to plug in. At 
least if I understand Ben correctly.


Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to