[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] LSI53C895A: Do not update current_dma_len with
From: |
Ryan Harper |
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 |
User-agent: |
Mutt/1.5.6+20040907i |
* Justin Chevrier <address@hidden> [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
address@hidden