ata dma problems with recent -CURRENT

Soren Schmidt sos at spider.deepcore.dk
Wed Oct 1 06:48:16 PDT 2003


It seems Dag-Erling Smørgrav wrote:

Its a known one, I'm going to disable that peice of code soon if I
dont find a good solution to the problem...

> I recently installed 5.1-RELEASE on an Ultra 5, and proceeded to
> upgrade it to -CURRENT (sources from about two days ago).  The IDE
> controller doesn't seem to support DMA; in 5.1-RELEASE, the ata driver
> would time out a couple of times, then decide to fall back to PIO3.
> However, with -CURRENT, the ata driver panics trying to dereference
> 0xdeadc0de:
> 
> ad0: FAILURE - READ_DMA status=1<ERROR> error=0 dma=0xff
> panic: trap: memory address not aligned
> Debugger("panic")
> Stopped at      Debugger+0x1c:  ta              %xcc, 1
> db> where
> panic() at panic+0xf0
> trap() at trap+0x394
> -- memory address not aligned sfar=0xdedeadc0de sfsr=0x40029 %o7=0xc0040d54 --
> ata_timeout() at ata_timeout+0x20
> softclock() at softclock+0x1a0
> ithread_loop() at ithread_loop+0x1a8
> fork_exit() at fork_exit+0x9c
> fork_trampoline() at fork_trampoline+0x8
> 
> I've attached an excerpt from the serial console log, showing both the
> panic and a successful boot of the same kernel (with hw.ata.ata_dma
> disabled in loader.conf).  I've also attached a disassembly of
> ata_timeout(); unfortunately, I couldn't get objdump to show source
> code line numbers.  However, I *think* the trap occurred on the
> following line:
> 
>     if (request->device->channel->running == NULL) {
> 
> and if I read the assembler code correctly, it is request->device
> which is 0xdeadc0de.
> 
> DES
> -- 
> Dag-Erling Smørgrav - des at des.no
> 

[ Attachment, skipping... ]

[ Attachment, skipping... ]

-Søren


More information about the freebsd-sparc64 mailing list