Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Aug 2004 10:05:06 +0200
From:      =?ISO-8859-1?Q?S=F8ren_Schmidt?= <sos@DeepCore.dk>
To:        yongari@kt-is.co.kr
Cc:        sparc64@FreeBSD.ORG
Subject:   Re: Insta-panic with recent -current on Ultra10
Message-ID:  <41230DB2.60900@DeepCore.dk>
In-Reply-To: <20040818074217.GC8375@kt-is.co.kr>
References:  <200408170909.i7H99taL082002@postoffice.e-easy.com.au> <20040817115518.W68839@ury.york.ac.uk> <20040818010554.GB5194@electra.cse.Buffalo.EDU> <20040818052628.GA8375@kt-is.co.kr> <20040818072641.GB8375@kt-is.co.kr> <20040818074217.GC8375@kt-is.co.kr>

next in thread | previous in thread | raw e-mail | index | archive | help
Could I have you try this patch and see if that fixes things. The args=20
to busdma is not really correct as is. However if this still doesn't=20
work, either busdma is at fault for not giving us what we ask for or I=20
dont have the correct info on DMA restrictions on the sparc....

Maybe you could instument that fixup loop, if it still fails, so we=20
could tell what sizes etc gets delivered from busdma ?

-S=F8ren

laptop> cvs diff -u
cvs diff: Diffing .
Index: ata-dma.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/sys/dev/ata/ata-dma.c,v
retrieving revision 1.129
diff -u -r1.129 ata-dma.c
--- ata-dma.c   13 Aug 2004 08:14:27 -0000      1.129
+++ ata-dma.c   18 Aug 2004 07:59:29 -0000
@@ -95,10 +95,10 @@
  {
      struct ata_dc_cb_args ccba;

-    if (bus_dma_tag_create(NULL, 1, 0,
+    if (bus_dma_tag_create(NULL, ch->dma->alignment, 0,
                            BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR,
-                          NULL, NULL, MAXCTLDMASZ,
-                          ATA_DMA_ENTRIES, BUS_SPACE_MAXSIZE_32BIT,
+                          NULL, NULL, 16*1024*1024,
+                          ATA_DMA_ENTRIES, ch->dma->max_iosize,
                            BUS_DMA_ALLOCNOW, NULL, NULL, &ch->dma->dmata=
g))
         goto error;

@@ -110,8 +110,8 @@

      if=20
(bus_dma_tag_create(ch->dma->dmatag,ch->dma->alignment,ch->dma->boundary,=

                            BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR,
-                          NULL, NULL, ch->dma->max_iosize,
-                          ATA_DMA_ENTRIES, ch->dma->boundary,
+                          NULL, NULL, 16*1024*1024,
+                          ATA_DMA_ENTRIES, ch->dma->max_iosize,
                            BUS_DMA_ALLOCNOW, NULL, NULL,=20
&ch->dma->ddmatag))
         goto error;





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41230DB2.60900>