From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Bernhard Beschow <shentey@gmail.com>,
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
BALATON Zoltan <balaton@eik.bme.hu>
Cc: qemu-devel@nongnu.org,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Hervé Poussineau" <hpoussin@reactos.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Aurelien Jarno" <aurelien@aurel32.net>,
"David Hildenbrand" <david@redhat.com>,
"Peter Xu" <peterx@redhat.com>,
qemu-ppc@nongnu.org, qemu-block@nongnu.org,
"John Snow" <jsnow@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH v2 07/10] hw/ide/piix: Require an ISABus only for user-created instances
Date: Tue, 7 Feb 2023 10:03:11 +0100 [thread overview]
Message-ID: <1a57d82f-fc3b-3108-f5e0-fbe2e8f91dda@linaro.org> (raw)
In-Reply-To: <00D45BF9-CA37-42FF-BDE1-F742B04F60F4@gmail.com>
On 7/2/23 00:40, Bernhard Beschow wrote:
> Am 5. Februar 2023 22:32:03 UTC schrieb Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>:
>> On 05/02/2023 22:21, BALATON Zoltan wrote:
>>> On Sun, 5 Feb 2023, Mark Cave-Ayland wrote:
>>>> On 26/01/2023 21:17, Bernhard Beschow wrote:
>>>>> Internal instances now defer interrupt wiring to the caller which
>>>>> decouples them from the ISABus. User-created devices still fish out the
>>>>> ISABus from the QOM tree and the interrupt wiring remains in PIIX IDE.
>>>>> The latter mechanism is considered a workaround and intended to be
>>>>> removed once a deprecation period for user-created PIIX IDE devices is
>>>>> over.
>>>>>
>>>>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>>>>> ---
>>>>> include/hw/ide/pci.h | 1 +
>>>>> hw/ide/piix.c | 64 ++++++++++++++++++++++++++++++++++----------
>>>>> hw/isa/piix.c | 5 ++++
>>>>> 3 files changed, 56 insertions(+), 14 deletions(-)
>>>> I haven't checked the datasheet, but I suspect this will be similar to the cmd646/via PCI-IDE interfaces in that there will be a PCI configuration register that will switch between ISA compatibility mode (and ISA irqs) and PCI mode (with PCI IRQs). So it would be the device configuration that would specify PCI or ISA mode, rather than the presence of an ISABus.
>>>
>>> I forgot about this topic already and haven't follwed this series either so what I say may not fully make sense but I think CMD646 and via-ide are different. CMD646 is a PCI device and should use PCI interrupts while via-ide is part of a southbridge/superio complex and connected to the ISA PICs within that southbride, so I think via-ide always uses ISA IRQs and the ISA btidge within the same chip may convert that to PCI IRQs or not (that part is where I'm lost also because we may not actually model it that way). After a long debate we managed to find a solution back then that works for every guest we use it for now so I think we don't want to touch it now until some real need arises. It does not worth the trouble and added complexity to model something that is not used just for the sake of correctness. By the time we find a use for that, the ISA emulation may evolve so it's easier to implement the missing switching between isa and native mode or we may want to do it differently (such as we do things differently now compared to what we did years ago). So I think it does not worth keeping the ISA model from being simplified for some theoretical uses in the future which we may not actually do any time soon. But I don't want to get into this again so just shared my thoughts and feel free to ignore it. I don't care where these patches go as long as the VIA model keeps working for me.
>>
>> I have a vague memory that ISA compatibility mode was part of the original PCI-BMDMA specification, but it has been a while since I last looked.
>>
>> Bernhard, is there any mention of this in the PIIX datasheet(s)? For reference the cmd646 datasheet specifies that ISA mode or PCI mode is determined by register PROG_IF (0x9) in PCI configuration space.
>
> I've found the following:
>
> "Only PCI masters have access to the IDE port. ISA Bus masters cannot access the IDE I/O port addresses. Memory targeted by the IDE interface acting as a PCI Bus master on behalf of IDE DMA slaves must reside on PCI, usually main memory implemented by the host-to-PCI bridge."
>
> And:
>
> "PIIX4 can act as a PCI Bus master on behalf of an IDE slave device."
>
> Does this perhaps mean that piix-ide does indeed have no ISA bus?
Yes :)
next prev parent reply other threads:[~2023-02-07 9:04 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-26 21:17 [PATCH v2 00/10] Resolve isabus global Bernhard Beschow
2023-01-26 21:17 ` [PATCH v2 01/10] softmmu/ioport: Move portio_list_init() in front of portio_list_add() Bernhard Beschow
2023-01-26 21:17 ` [PATCH v2 02/10] softmmu/ioport: Merge portio_list_add() into portio_list_init() Bernhard Beschow
2023-02-05 21:34 ` Mark Cave-Ayland
2023-01-26 21:17 ` [PATCH v2 03/10] softmmu/ioport: Remove unused functions Bernhard Beschow
2023-02-05 21:37 ` Mark Cave-Ayland
2023-02-06 0:20 ` Bernhard Beschow
2023-01-26 21:17 ` [PATCH v2 04/10] hw/ide/piix: Disuse isa_get_irq() Bernhard Beschow
2023-02-05 21:54 ` Mark Cave-Ayland
2023-01-26 21:17 ` [PATCH v2 05/10] Revert "hw/ide: Fix crash when plugging a piix3-ide device into the x-remote machine" Bernhard Beschow
2023-01-26 21:17 ` [PATCH v2 06/10] hw/ide/pci: Add PCIIDEState::isa_irqs[] Bernhard Beschow
2023-01-30 17:00 ` Bernhard Beschow
2023-02-26 21:26 ` Philippe Mathieu-Daudé
2023-01-26 21:17 ` [PATCH v2 07/10] hw/ide/piix: Require an ISABus only for user-created instances Bernhard Beschow
2023-02-05 21:58 ` Mark Cave-Ayland
2023-02-05 22:21 ` BALATON Zoltan
2023-02-05 22:32 ` Mark Cave-Ayland
2023-02-06 6:51 ` Philippe Mathieu-Daudé
2023-02-06 9:15 ` Mark Cave-Ayland
2023-02-06 23:40 ` Bernhard Beschow
2023-02-07 9:03 ` Philippe Mathieu-Daudé [this message]
2023-02-07 20:52 ` Mark Cave-Ayland
2023-02-08 0:18 ` Bernhard Beschow
2023-02-08 0:43 ` BALATON Zoltan
2023-02-08 7:09 ` Philippe Mathieu-Daudé
2023-02-08 11:22 ` Philippe Mathieu-Daudé
2023-02-23 20:46 ` Bernhard Beschow
2023-03-01 16:42 ` Mark Cave-Ayland
2023-03-01 21:12 ` Bernhard Beschow
2023-02-24 16:20 ` Michael S. Tsirkin
2023-01-26 21:17 ` [PATCH v2 08/10] hw/ide: Let ide_init_ioport() take a MemoryRegion argument instead of ISADevice Bernhard Beschow
2023-01-27 0:27 ` Philippe Mathieu-Daudé
2023-02-05 22:02 ` Mark Cave-Ayland
2023-04-22 16:23 ` Bernhard Beschow
2023-01-26 21:17 ` [PATCH v2 09/10] hw/isa: Remove use of global isa bus Bernhard Beschow
2023-01-26 21:17 ` [PATCH v2 10/10] hw/isa/isa-bus: Resolve isabus global Bernhard Beschow
2023-01-30 17:05 ` [PATCH v2 00/10] " Bernhard Beschow
2023-02-24 16:22 ` Michael S. Tsirkin
2023-02-26 20:38 ` Bernhard Beschow
2023-02-27 9:12 ` Bernhard Beschow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1a57d82f-fc3b-3108-f5e0-fbe2e8f91dda@linaro.org \
--to=philmd@linaro.org \
--cc=aurelien@aurel32.net \
--cc=balaton@eik.bme.hu \
--cc=david@redhat.com \
--cc=hpoussin@reactos.org \
--cc=jsnow@redhat.com \
--cc=kraxel@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=shentey@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).