Subject: Re: port-sparc64/15200: sparc64 savecore makes kernel panic at pciide_dma_init()
To: None <bouyer@antioche.lip6.fr>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: port-sparc64
Date: 03/03/2002 09:50:19
In article <20020110165505.GA15723@antioche.lip6.fr>
bouyer@antioche.lip6.fr wrote:
> On Thu, Jan 10, 2002 at 06:06:10PM +0200, Antti Kantee wrote:
> > savecore: writing compressed core to /var/crash/netbsd.0.core.gz
> > pciide_dma: segment 0 physical addr 0xc006d2b0 len 0xd2b0 not properly aligned
> Hum, 0xc006d2b0+0xd2b0=0xC007A560, it crosses a 64k boundary, which is
> not allowed by pciide hardware.
I got the same panic on my U5 and the following patch seems to fix this:
Index: iommu.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/sparc64/dev/iommu.c,v
retrieving revision 1.48
diff -u -r1.48 iommu.c
--- iommu.c 2002/02/21 02:42:27 1.48
+++ iommu.c 2002/03/03 00:41:54
@@ -526,7 +526,8 @@
"seg %d start %lx size %lx\n", seg,
(long)map->dm_segs[seg].ds_addr,
map->dm_segs[seg].ds_len));
- map->dm_segs[seg].ds_len = sgstart & (boundary - 1);
+ map->dm_segs[seg].ds_len =
+ boundary - (sgstart & (boundary - 1));
if (++seg > map->_dm_segcnt) {
/* Too many segments. Fail the operation. */
DPRINTF(IDB_INFO, ("iommu_dvmamap_load: "
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp