qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Ryan Harper <ryanh@us.ibm.com>
To: Justin Chevrier <theburner1@yahoo.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/2] LSI53C895A: Handle empty SCRIPTS opcode
Date: Tue, 2 Dec 2008 10:28:56 -0600	[thread overview]
Message-ID: <20081202162856.GC13481@us.ibm.com> (raw)
In-Reply-To: <555360.18887.qm@web51105.mail.re2.yahoo.com>

* Justin Chevrier <theburner1@yahoo.com> [2008-12-02 10:00]:
> Well I've finally sorted out what Openserver is doing. Basically after
> each DMA transfer the Openserver driver would issue an empty (0)
> SCRIPTS opcode. As the opcode is essentially a NOP it has no second
> DWORD and therefore the DSP should only be incremented by 4 bytes
> instead of the 8 bytes we currently do.

Nice catch!

> 
> Here's a snippet of the log:
> 
> lsi_scsi: Data ready tag=0x100d9 len=16384
> ...
> lsi_scsi: SCRIPTS dsp=068c5e50 opcode 01000400 arg 07a09000
> lsi_scsi: DMA addr=0x07a09000 len=1024
> lsi_scsi: SCRIPTS dsp=068c5e58 opcode 00000000 arg 01000400
> lsi_scsi: Wrong phase got 1 expected 0
> 
> Note the 2nd DWORD after the empty opcode; the next opcode in the DMA
> transfer sequence. As can be expected the address after that has the
> next DMA address to use.
> 
> After the attached patch the DMA transfer is able to complete successfully:
> 
> lsi_scsi: SCRIPTS dsp=068c5e50 opcode 01000400 arg 07a0d000
> lsi_scsi: DMA addr=0x07a0d000 len=1024
> lsi_scsi: SCRIPTS dsp=068c5e5c opcode 01000400 arg 07a0d400
> lsi_scsi: DMA addr=0x07a0d400 len=1024
> ...
> 
> Tested againsted Openserver 5.0.5 and Debian ARM.
> 
> Changelog:
> 
> Handle empty SCRIPTS opcode
> 
> Signed-off-by: Justin Chevrier <address@hidden>

Tested XP 32-bit, Linux 2.6.27 in 40-bit DMA mode.  I don't seen any
issues with the patch applied.

Acked-by: Ryan Harper <ryanh@us.ibm.com>

> 
> 
>       
> Index: hw/lsi53c895a.c
> ===================================================================
> --- hw/lsi53c895a.c	(revision 5852)
> +++ hw/lsi53c895a.c	(working copy)
> @@ -867,6 +867,12 @@
>  again:
>      insn_processed++;
>      insn = read_dword(s, s->dsp);
> +    if(!insn) {
> +        /* If we receive an empty opcode increment the DSP by 4 bytes
> +           instead of 8 and execute the next opcode at that location */
> +        s->dsp += 4;
> +        goto again;
> +    }    
>      addr = read_dword(s, s->dsp + 4);
>      addr_high = 0;
>      DPRINTF("SCRIPTS dsp=%08x opcode %08x arg %08x\n", s->dsp, insn, addr);


-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
ryanh@us.ibm.com

      reply	other threads:[~2008-12-02 16:29 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-02 15:53 [Qemu-devel] [PATCH 2/2] LSI53C895A: Handle empty SCRIPTS opcode Justin Chevrier
2008-12-02 16:28 ` Ryan Harper [this message]

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=20081202162856.GC13481@us.ibm.com \
    --to=ryanh@us.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=theburner1@yahoo.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).