From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
To: BALATON Zoltan <balaton@eik.bme.hu>
Cc: qemu-ppc@nongnu.org, Alexander Graf <agraf@suse.de>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [Qemu-ppc] macio ide question/bug report
Date: Wed, 14 May 2014 05:55:29 +0100 [thread overview]
Message-ID: <5372F741.9080108@ilande.co.uk> (raw)
In-Reply-To: <alpine.LMD.2.02.1405140041400.26415@jedlik.phy.bme.hu>
On 14/05/14 00:02, BALATON Zoltan wrote:
>> command 0x43 is read the TOC which according to atapi_cmd_table should
>> call cmd_read_toc_pma_atip(). You can see that in your MorphOS case
>> you are getting a line with a "atapi_cmd_error" prefix which indicates
>> that something is calling ide_atapi_cmd_error() to return an error
>> code instead of ide_atapi_cmd_reply() which would output the "reply"
>> prefix as seen in your Darwin case. So you need to step through these
>> functions in QEMU in order to see why your ATAPI command is failing.
>
> I've tried doing this and it seems that the cmd_read_toc_pma_atip
> function returns all right (via the case 0 path) with a 20 byte result
> array and calls ide_atapi_cmd_reply which takes the DMA path as
> s->atapi_dma is set to 1 and the error comes from somewhere during
> trying to DMA the result back to the client. I could not follow it so
> I've only got a backtrace from where ide_atapi_cmd_error is called:
So this basically confirms that the DMA errors out because s->lba == -1
in the macio callback. FWIW you should probably ensure that
DEBUG_IDE_ATAPI is enabled when posting logs in future as this helps
show the interaction between the two systems.
> Do you have any idea how to debug this further or does this help to tell
> where is the problem? (I think the question is where does the -5 return
> value come from?)
Well from this the cause is fairly easy to spot: ide_atapi_cmd_reply()
sets s->lba == -1 when called from cmd_read_toc_pma_atip(). And since as
you correctly point out this is a DMA request, it invokes the start_dma
function in macio's dbdma_ops (ide_dbdma_start), which kicks the DBDMA
engine into life.
I think the issue here is related to the fact that reading a TOC doesn't
actually involve reading physical blocks from disk (as the TOC is placed
directly in the buffer) and so the dma_bdrv_* functions shouldn't
actually be invoked in the first place. And because of the DBDMA setup,
ide_atapi_cmd_read_dma_cb() can't be used which is why
pmac_ide_transfer_cb() needs to do a lot of similar work itself. Maybe
you can find some clues there as to what the logic should be?
HTH,
Mark.
next prev parent reply other threads:[~2014-05-14 4:58 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <alpine.LMD.2.02.1405040120250.2612@jedlik.phy.bme.hu>
[not found] ` <5366CA94.3030803@ilande.co.uk>
[not found] ` <alpine.LMD.2.02.1405071132470.25770@jedlik.phy.bme.hu>
[not found] ` <536A328F.6070100@ilande.co.uk>
[not found] ` <alpine.LMD.2.02.1405071854390.26524@jedlik.phy.bme.hu>
[not found] ` <536A6F3C.1030708@ilande.co.uk>
2014-05-10 12:30 ` [Qemu-devel] [Qemu-ppc] macio ide question/bug report BALATON Zoltan
2014-05-12 16:26 ` Mark Cave-Ayland
2014-05-12 19:32 ` BALATON Zoltan
2014-05-12 20:34 ` Mark Cave-Ayland
2014-05-13 23:02 ` BALATON Zoltan
2014-05-14 4:55 ` Mark Cave-Ayland [this message]
2014-05-14 11:10 ` BALATON Zoltan
2014-05-14 20:09 ` Mark Cave-Ayland
2014-05-14 23:21 ` BALATON Zoltan
2014-05-15 9:30 ` Mark Cave-Ayland
2014-05-15 17:28 ` BALATON Zoltan
2014-05-15 19:22 ` Mark Cave-Ayland
2014-05-15 20:14 ` BALATON Zoltan
2014-05-15 20:26 ` BALATON Zoltan
2014-05-15 20:28 ` BALATON Zoltan
2014-05-16 11:22 ` Mark Cave-Ayland
2014-05-16 20:31 ` BALATON Zoltan
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=5372F741.9080108@ilande.co.uk \
--to=mark.cave-ayland@ilande.co.uk \
--cc=agraf@suse.de \
--cc=balaton@eik.bme.hu \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.