qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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: Mon, 12 May 2014 21:34:07 +0100	[thread overview]
Message-ID: <5371303F.1060903@ilande.co.uk> (raw)
In-Reply-To: <alpine.LMD.2.02.1405122112010.23224@jedlik.phy.bme.hu>

On 12/05/14 20:32, BALATON Zoltan wrote:

> On Mon, 12 May 2014, Mark Cave-Ayland wrote:
>> On 10/05/14 13:30, BALATON Zoltan wrote:
>>> That patch would be 80fc95d8bdaf3392106b131a97ca701fd374489a in QEMU
>>> master. I've tried reverting it and Darwin still boots (without -M
>>> mac99) up to the point where it asks to install as before but I don't
>>> know how good a test is this as I'm not sure it does unaligned accesses
>>> up to this point. I see accesses like this:
>>>
>>> pmac_ide_transfer(ATAPI) lba=ffffffff, buffer_index=30, len=930
>>> pmac_ide_transfer(ATAPI) lba=0, buffer_index=0, len=930
>>
>> Here is an example of an unaligned access, where the length is not a
>> multiple of 0x200 (512 bytes) which was required for the block layer
>> DMA APIs at the time it was written. If you can get to the same point
>> with the patch reverted, then it means Kevin's patchset for byte-level
>> rather than sector-level granularity for block requests is working.
>
> These logs were with the above commit reverted so it's probably not
> needed any more. I've tried booting Darwin 6.0.2, Darwin 8.0.1 up to the
> installation (did not install it) and Finnix 109 and they seem to work
> as before.

Okay that's definitely an improvement on what's there already :)  When I 
find a moment, I'll try some local testing here and see if it's worth 
submitting a patch.

>>> This still produces an error in MorphOS as before:
>>>
>>> DBDMA: writel 0x0000000000000d0c <= 0x00e5ac80
>>> DBDMA: channel 0x1a reg 0x3
>>> DBDMA: dbdma_cmdptr_load 0x00e5ac80
>>> ATAPI limit=0x8000 packet: 43 00 00 00 00 00 00 03 24 00 00 00
>>>
>>> DBDMA: DBDMA_run_bh
>>> DBDMA: writel 0x0000000000000d00 <= 0x80008000
>>> DBDMA: channel 0x1a reg 0x0
>>> DBDMA:     status 0x00008400
>>> DBDMA: readl 0x0000000000000d00 => 0x80008000
>>> DBDMA: channel 0x1a reg 0x0
>>> DBDMA: DBDMA_run_bh
>>> DBDMA: channel_run
>>> dbdma_cmd 0x7f7dddff5ae0
>>>      req_count 0x0324
>>>      command 0x3000
>>>      phy_addr 0x00e7dddc
>>>      cmd_dep 0x00000000
>>>      res_count 0x0000
>>>      xfer_status 0x0000
>>> DBDMA: start_input
>>> DBDMA: addr 0xe7dddc key 0x0
>>> pmac_ide_transfer(ATAPI) lba=ffffffff, buffer_index=0, len=324
>>
>> ^^^^^
>>
>>> io_buffer_size = 0
>>> io->len = 0x324
>>> sector_num=-1 size=20, cmd_cmd=0
>>> atapi_cmd_error: sense=0x5 asc=0x21
>>> done DMA
>>> DBDMA: dbdma_end

(cut)

> MorphOS and Darwin are definitely doing things differently. I hope
> someone who understands what is happening can explain it why one of them
> works while the other doesn't.

Which I hope is what I'm trying to do? From hw/ide/atapi.c you can see 
that 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.


HTH,

Mark.

  reply	other threads:[~2014-05-12 20:37 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 [this message]
2014-05-13 23:02                   ` BALATON Zoltan
2014-05-14  4:55                     ` Mark Cave-Ayland
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=5371303F.1060903@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 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).