[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [RFC 0/2] macio: split out unaligned DMA acc
From: |
John Snow |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [RFC 0/2] macio: split out unaligned DMA access into separate functions |
Date: |
Fri, 22 May 2015 14:20:23 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
On 05/22/2015 02:16 PM, Mark Cave-Ayland wrote:
> On 22/05/15 18:55, John Snow wrote:
>
>> On 03/09/2015 06:24 PM, Mark Cave-Ayland wrote:
>>> This patchset attempts to separate out the IDE/ATAPI logic from the
>>> unaligned
>>> DMA access logic for macio which provides the following benefits:
>>>
>>> 1) Reduced code complexity
>>>
>>> The existing macio IDE/ATAPI functions were becoming extremely difficult to
>>> follow through the various callbacks. By splitting up the functions in this
>>> way it becomes much easier to follow the DMA-specific sections of code.
>>>
>>> 2) Future-proofing
>>>
>>> If/when the block layer becomes able to handle unaligned DMA accesses
>>> directly
>>> then it should be possible to switch out pmac_dma_read() and
>>> pmac_dma_write()
>>> with their unaligned-capable bdrv_*() equivalents without having to change
>>> any
>>> other logic.
>>>
>>> 3) Fix intermittent CDROM detection under -M g3beige
>>>
>>> The code refactoring now correctly handles non-block ATAPI transfers which
>>> fixes the problem with intermittent CDROM detection with Darwin under
>>> -M g3beige.
>>>
>>> Signed-off-by: Mark Cave-Ayland <address@hidden>
>>>
>>>
>>> Mark Cave-Ayland (2):
>>> macio: move unaligned DMA read code into separate pmac_dma_read()
>>> function
>>> macio: move unaligned DMA write code into separate pmac_dma_write()
>>> function
>>>
>>> hw/ide/macio.c | 487
>>> +++++++++++++++++++++++---------------------
>>> include/hw/ppc/mac_dbdma.h | 4 -
>>> 2 files changed, 254 insertions(+), 237 deletions(-)
>>>
>>
>> Code fails 32 bit build due to %lx debug prints. I'll edit them
>> accordingly if that is OK by you.
>
> Please go right ahead :) Do you need a proper re-spin without the RFC
> prefix? If so, I can make the changes there if that helps?
>
>
> ATB,
>
> Mark.
>
Nah, the tags seem to get dropped when you pull everything into git
anyway, so it's no biggie.
Thanks,
--js
As a post-script, can Darwin/PPC use a different mechanism for ATA at
all, or is macio the sole ATA interface we support here?
I want to see if I can pinpoint when a "good" bath and when a bad path
diverges with respect to the disk contents ...
Or if you have other ideas on how to identify the transfer that causes
the issue, I'm all ears.