qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH v3 0/4] ide: implement simple legacy/native mode switching fo


From: Mark Cave-Ayland
Subject: Re: [PATCH v3 0/4] ide: implement simple legacy/native mode switching for PCI IDE controllers
Date: Mon, 20 Nov 2023 12:26:42 +0000
User-agent: Mozilla Thunderbird

On 19/11/2023 21:43, BALATON Zoltan wrote:

On Thu, 16 Nov 2023, Mark Cave-Ayland wrote:
This series adds a simple implementation of legacy/native mode switching for PCI
IDE controllers and updates the via-ide device to use it.

The approach I take here is to add a new pci_ide_update_mode() function which 
handles
management of the PCI BARs and legacy IDE ioports for each mode to avoid 
exposing
details of the internal logic to individual PCI IDE controllers.

As noted in [1] this is extracted from a local WIP branch I have which contains
further work in this area. However for the moment I've kept it simple (and
restricted it to the via-ide device) which is good enough for Zoltan's PPC
images whilst paving the way for future improvements after 8.2.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

[1] https://lists.gnu.org/archive/html/qemu-devel/2023-10/msg05403.html

v3:
- Rebase onto master
- Move ide_portio_list[] and ide_portio_list2[] to IDE core to prevent 
duplication in
 hw/ide/pci.c
- Don't zero BARs when switching from native mode to legacy mode, instead 
always force
 them to read zero as suggested in the PCI IDE specification (note: this also 
appears
 to fix the fuloong2e machine booting from IDE)

Not sure you're getting this, see also:
https://lists.nongnu.org/archive/html/qemu-devel/2023-11/msg04167.html
but this seems to break latest version of the AmigaOS driver for some reason. I assume this is the BAR zeroing that causes this as it works with v2 series and nothing else changed in v3 that could cause this. Testing was done by Rene Engel, cc'd so maybe he can add more info. It seems to work with my patch that sets BARs to legacy values and with v2 that sets them to 0 but not with v3 which should also read 0 but maybe something is off here.

Is this document here accurate as to how it works on real hardware? https://intuitionbase.com/hints.php.

I can't understand why the base OS is attempting any access to BAR 4 if BMDMA isn't enabled by default on real hardware due to hardware bugs. Are we sure that the idetool hacks given in the link above to enable BMDMA haven't already been run on the AmigaOS install when testing an earlier version of the patches?

Finally is there a bootable AmigaOS demo ISO somewhere that can be used for 
testing?


ATB,

Mark.




reply via email to

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