linux-mips
[Top] [All Lists]

Re: cause of early indigo2 crash

To: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Subject: Re: cause of early indigo2 crash
From: Florian Lohoff <flo@rfc822.org>
Date: Thu, 6 Apr 2000 23:05:05 +0200
Cc: linux@cthulhu.engr.sgi.com
In-reply-to: <Pine.GSO.4.10.10004061050160.28032-100000@dandelion.sonytel.be>; from Geert Uytterhoeven on Thu, Apr 06, 2000 at 10:51:17AM +0200
Organization: rfc822 - pure communication
References: <20000405223413.B996@paradigm.rfc822.org> <Pine.GSO.4.10.10004061050160.28032-100000@dandelion.sonytel.be>
Sender: owner-linuxmips@oss.sgi.com
On Thu, Apr 06, 2000 at 10:51:17AM +0200, Geert Uytterhoeven wrote:
> What's here? Usually it tells the function where it crashes.
> 
> > Thats it - Might the first area be DMA bounce buffer only which have to
> > be initialized in the memory controller ?
> 
> I see these panics sometimes as well. Where does the crash happen? Please
> lookup in System.map.

Its in drivers/scsi/scsi_dma.c 

It happens due to no available scsi dma buffers which is caused by
the fact that MAX_DMA_ADDRESS is below the lowest free memory segment
(Kernel overlaps). If i increase the MAX_DMA_ADDRESS include/asm/dma.h.

As most of the drivers dont use the MAX_DMA_ADDRESS (zone allocator should
have made it obsolete) i suggest leaving it like it is and changing
arch/mips/mm/init.c to:

#if defined(CONFIG_ISA) || defined(CONFIG_PCI)
        if (low < max_dma)
                zones_size[ZONE_DMA] = low;
        else {
                zones_size[ZONE_DMA] = max_dma;
                zones_size[ZONE_NORMAL] = low - max_dma;
        }
#else
        zones_size[ZONE_DMA] = low;
#endif

as the dma.h comment says that this only applies to standard PC 
dma controllers.

If no one objects ill commit this.

Flo
-- 
Florian Lohoff          flo@rfc822.org                  +49-subject-2-change
"Technology is a constant battle between manufacturers producing bigger and
more idiot-proof systems and nature producing bigger and better idiots."


<Prev in Thread] Current Thread [Next in Thread>