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 
to busdma is not really correct as is. However if this still doesn't 
work, either busdma is at fault for not giving us what we ask for or I 
dont have the correct info on DMA restrictions on the sparc....

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

-Søren

laptop> cvs diff -u
cvs diff: Diffing .
Index: ata-dma.c
===================================================================
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->dmatag))
         goto error;

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

      if 
(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, 
&ch->dma->ddmatag))
         goto error;





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