Insta-panic with recent -current on Ultra10

Søren Schmidt sos at DeepCore.dk
Wed Aug 18 01:05:37 PDT 2004


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;





More information about the freebsd-sparc64 mailing list