Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 2008 16:06:09 -0700
From:      Maxim Sobolev <sobomax@FreeBSD.org>
To:        Marco Trillo <marcotrillo@gmail.com>
Cc:        freebsd-ppc@FreeBSD.org
Subject:   Re: Call for testers: Apple ATA DMA
Message-ID:  <48D824E1.1030109@FreeBSD.org>
In-Reply-To: <b9c23c9f0809221518t343660b5k40877e132bba98ed@mail.gmail.com>
References:  <48D389EE.9000207@FreeBSD.org> <48D3AD50.8070505@freebsd.org>	 <48D69679.1080701@freebsd.org> <48D7F437.1040603@FreeBSD.org>	 <48D80DDD.2080309@freebsd.org> <48D8186F.4020308@FreeBSD.org> <b9c23c9f0809221518t343660b5k40877e132bba98ed@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Marco Trillo wrote:
> Hi,
> 
> On Tue, Sep 23, 2008 at 12:13 AM, Maxim Sobolev <sobomax@freebsd.org> wrote:
>>>> I was able to "fix" the problem by making ata_macio probe function
>>>> returning ENXIO always. My guess is that ATA chipset on this machine is
>>>> somehow accessible through two different buses (macio and pci), which
>>>> creates some weird conflicts, but I might be wrong. Hopefully you will have
>>>> better idea, I can provide any assistance needed to fix the issue properly.
>>>> See 342.png screenshot. Dmesg with hacked ata_macio is as follows:
>>> Interesting -- it looks like all the interrupts are arriving on the second
>>> (DBDMA) IRQ. Could you try setting USE_DBDMA_IRQ to 0 in ata_macio.c and
>>> re-enabling ata_macio? There is something funny with how these interrupts
>>> are triggered currently and they can set off interrupt storms like this.
>> I've done that, but it has not changed anything. I still see interrupt storm
>> on irq 12.
> 
> Try deleting the USE_DBDMA_IRQ definition line from ata_macio.c
> instead of just defining it to 0, so the "ifdef USE_DBDMA_IRQ" stuff
> is not compiled.

Yes, you are right. There are few unused variables in such case, though:

cc1: warnings being treated as errors
../../../powerpc/powermac/ata_macio.c: In function 'ata_macio_attach':
../../../powerpc/powermac/ata_macio.c:206: warning: unused variable 'cookie'
../../../powerpc/powermac/ata_macio.c:205: warning: unused variable 
'dbdma_irq'
../../../powerpc/powermac/ata_macio.c:204: warning: unused variable 
'dbdma_irq_rid'
*** Error code 1

If I ifdef them the kernel compiles and when booted there interrupt 
storm no longer happens.

ata0 mem 0x20000-0x20fff,0x8800-0x88ff irq 24,12 on macio0
ata0: [ITHREAD]
ata1: <Intrepid Kauai ATA Controller> mem 0xf5004000-0xf5007fff irq 39,1 
at device 13.0 on pci2
ata1: [ITHREAD]
ad0: 38154MB <TOSHIBA MK4025GAS KA100P> at ata1-master UDMA100
acd0: DVDR <MATSHITACD-RW CW-8123/CAD4> at ata1-slave UDMA33

Just curious, what's the purpose of that ata0? Is it real device or some 
compatibility shim?

-Maxim



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48D824E1.1030109>