Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-vax/49517: si driver has DMA problems



Just a random thought, could this is be related to trying a MAXPHYS
(64K) sized transfer? I seem to recall something related to the vax
NCR5380 having a less than 64K max transfer size limit...

On 30 December 2014 at 21:10,  <martin%netbsd.org@localhost> wrote:
>>Number:         49517
>>Category:       port-vax
>>Synopsis:       si driver has DMA problems
>>Confidential:   no
>>Severity:       serious
>>Priority:       medium
>>Responsible:    port-vax-maintainer
>>State:          open
>>Class:          sw-bug
>>Submitter-Id:   net
>>Arrival-Date:   Tue Dec 30 21:10:00 +0000 2014
>>Originator:     Martin Husemann
>>Release:        NetBSD 7.99.2
>>Organization:
> The NetBSD Foundation, Inc.
>>Environment:
> System: NetBSD  7.99.3 NetBSD 7.99.3 (GENERIC) #8: Tue Dec 30 19:18:41 CET 2014  martin%seven-days-to-the-wolves.aprisoft.de@localhost:/usr/obj/vax/usr/src/sys/arch/vax/compile/GENERIC vax
> Architecture: vax
> Machine: vax
>>Description:
>
> The NCR5380 driver seems to corrupt kernel memory on incoming (i.e. read)
> transfers basically imediately. Random things happen (programs die, ...)
> after a few transfers.
>
> Forcing all IN operations to do PIO makes the system pretty much stable:
>
> Index: ncr.c
> ===================================================================
> RCS file: /cvsroot/src/sys/arch/vax/vsa/ncr.c,v
> retrieving revision 1.48
> diff -u -r1.48 ncr.c
> --- ncr.c       14 Dec 2010 23:31:16 -0000      1.48
> +++ ncr.c       30 Dec 2014 21:01:29 -0000
> @@ -254,6 +254,9 @@
>         if (sr->sr_flags & SR_IMMED)
>                 return;
>
> +       if (!(xs->xs_control & XS_CTL_DATA_OUT))
> +               return;
> +
>         xlen = ncr_sc->sc_datalen;
>
>         /* Make sure our caller checked sc_min_dma_len. */
>
>
>>How-To-Repeat:
>
> Try to install on a MicroVax 3100 to a scsi disk.
>
>>Fix:
> n/a
>


Home | Main Index | Thread Index | Old Index