qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [FYI 4/4] prep: Quickfix for ioport


From: Alexander Graf
Subject: Re: [Qemu-devel] [FYI 4/4] prep: Quickfix for ioport
Date: Tue, 4 Jan 2011 22:43:49 +0100

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On 04.01.2011, at 22:36, Andreas Färber wrote:

> Am 04.01.2011 um 21:57 schrieb Alexander Graf:
> 
>> On 27.12.2010, at 01:25, Andreas Färber wrote:
>> 
>>> Am 27.12.2010 um 01:11 schrieb Alexander Graf:
>>> 
>>>> Am 27.12.2010 um 00:28 schrieb Andreas Färber <address@hidden>:
>>>> 
>>>>> Am 14.12.2010 um 01:49 schrieb Andreas Färber:
>>>>> 
>>>>>> Workaround the following error:
>>>>>> 
>>>>>> qemu: hardware error: register_ioport_read: invalid opaque
>>>>> 
>>>>> I found out that this is a conflict with i8042 registering I/O port 
>>>>> 0x0092 in pckbd.c, too.
>>>>> Not sure what the proper fix should look like - add some qdev property to 
>>>>> ISAKBDState to disable the port?
>>>> 
>>>> Well, why does the PREP board have its own mapping there in the first 
>>>> place? It should be the same as a PC from a port pov, no?
>>> 
>>> Why does the i8042 controller have a System Control Port in the first place 
>>> rather than the 'pc' machine? :)
>>> 
>>> The PReP spec v1.1 has a Special Port 0x0092 that includes two bits of 
>>> significence - softreset and endian mode. So wherever the port is 
>>> registered, the latter behavior is board-specific and does not match 
>>> pckbd.c (A20 gate or HDD activity depending on bit numbering).
>>> 
>>> A similar issue arises between PReP machines: The ioport currently does not 
>>> allow using a different opaque for reads and writes to the same address. So 
>>> either we need to change ioport or create some inheritence/override 
>>> mechanism for port behavior.
>> 
>> Hmm - sounds to me like that register simply doesn't belong there then, so a 
>> split would be the correct solution. The alternative would be to have the 
>> keyboard controller create a bus that those bits send signals to. An x86 
>> system could then implement its A20 gate in x86 specific code while PREP 
>> could do its specific stuff.
> 
> Coincidentally there's a recent pckbd patch from Blue that resolves the 
> conflict. Feel free to review. :)

Ah, sorry :). Still catching up. Just now finished to watch news of the last 1 
1/2 weeks :).

> Any thoughts on the read vs. write port issue? Do we need to register both 
> ports in the base device and add hooks to the device state? Sounds 
> problematic VMState-wise, just like some of the qemu_irq constructs in the 
> ppc devices. (My prep_pci changes are still far from perfect, UniNorth has 
> similar issues I noticed.)

Well, the general idea is that a single IO always gets routed to the same 
device. I don't fully understand why you need separate handlers there tbh. Mind 
to explain this?


Alex

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.16 (Darwin)

iEYEARECAAYFAk0jlJcACgkQq7Wi27wfN1N/agCeL6hOC6c+DHjLQ7Q3uXsp1Clo
x94An0lSzs/kvXGynRy1y2UMmLwpltp1
=NkaJ
-----END PGP SIGNATURE-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]