All of lore.kernel.org
 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] LSI53C895A: Do not update current_dma_len with dbc in TIA mode
Date: Wed, 26 Nov 2008 11:07:09 -0600	[thread overview]
Message-ID: <20081126170709.GK31893@us.ibm.com> (raw)
In-Reply-To: <933240.71390.qm@web51110.mail.re2.yahoo.com>

* Justin Chevrier <theburner1@yahoo.com> [2008-11-26 09:37]:
> Continued testing has shown that even with the update to handle
> variable length Inquiry commands in scsi-disk.c Openserver still
> relies on DMA length being updated with the dbc later on. The below
> patch modifies the current behaviour to update the DMA length with the
> dbc only when in Direct and Indirect mode. In Table Indirect Access
> mode the dma length does not come from the dbc, so we don't update it
> there.

Even in Table indirect access, we update dbc after fetching the transfer
count (TC) from the table.  The tech manual is unclear about whether or
not dbc is updated:

    "For a MOVE instruction, the 24-bit byte count is fetched
    from system memory. Then the 32-bit physical address is
    brought into the LSI53C895A. Execution of the move
    begins at this point" - LSI53C895A Tech manual, page 230.

However, I think in practice, it would have to do so.

> 
> This fixes the Debian Arm target, still works in Openserver and should
> correct the Windows install issue reported.
> 
> Justin
> 
> Changelog:
> 
> Do not update current_dma_len with the dbc if we are in Table Indirect Access mode.
> 
> Signed-off-by: Justin Chevrier <address@hidden>
>
> --- hw/lsi53c895a.c     (revision 5799)
> +++ hw/lsi53c895a.c     (working copy)
> @@ -920,7 +920,9 @@
>              break;
>          case PHASE_DI:
>              s->waiting = 2;
> -            s->current_dma_len = s->dbc;
> +           /* Update DMA length in Direct and Indirect modes only */
> +           if (!(insn & (1 << 28)))
> +                s->current_dma_len = s->dbc;
>              lsi_do_dma(s, 0);
>              if (s->waiting)
>                  s->waiting = 3;
> 

Nack.  With the variable length Inquiry changes you posted and this
patch, sp3 32-bit fails to install same as before.


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

  reply	other threads:[~2008-11-26 17:07 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-26 15:32 [Qemu-devel] [PATCH] LSI53C895A: Do not update current_dma_len with dbc in TIA mode Justin Chevrier
2008-11-26 17:07 ` Ryan Harper [this message]
2008-11-26 18:08   ` Justin Chevrier
2008-11-26 22:14     ` Ryan Harper
2008-11-26 22:37       ` Justin Chevrier

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=20081126170709.GK31893@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 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.