Hi,
> My old mac Mini has problems with interrups on wdc1. The problem started
> when the ppcoea-renovation was merged.
> [...]
> The merge did change the dmesg output for the wdc0 in a way that
> that may be relevant:
> [...]
> +wdc1:0:0: lost interrupt
> + type: ata tc_bcount: 512 tc_skip: 0
> +wdc1:0:0: intr with DRQ (st=0x58)
> +wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), retrying
> +wdc1:0:0: lost interrupt
I don't know if it's related to your problem, but I think the timing
setting stuff on wdc at pci (src/sys/arch/macppc/dev/kauai.c) it's
currently broken.
Can you test the attached patch for kauai.c to see if your problems persist?
It works fine for me on a Intrepid Kauai controller.
Thanks!
Some comments with respect to the patch:
I think that the following lines in kauai.c (rev. 1.25):
58 #define PIO_CONFIG_REG (0x200 >> 4) /* PIO and DMA access timing */
59 #define DMA_CONFIG_REG (0x210 >> 4) /* UDMA access timing */
should read instead:
58 #define PIO_CONFIG_REG 0x200 /* PIO and DMA access timing */
59 #define DMA_CONFIG_REG 0x210 /* UDMA access timing */
Before the ppcoea-renovation branch was merged, kauai.c used
macppc_make_bus_space_tag(regbase, 4); to map the registers so the tag
included an automatic stride.
After the branch was merged, it does not create a private tag anymore
and this automatic stride is not done; so the definitions should be
updated to reflect that (the '>> 4' shift is no longer necessary).
Another issue is that the code in calc_timing_kauai() uses the
DMA_CONFIG_REG register to set both DMA and UDMA access timing; but
this register is only for UDMA; the DMA timings should go along with
the PIO timings into the PIO_CONFIG_REG register (as the comments in
the above lines 58-59 say).
This can be verified by looking at Mac OS X's AppleKauaiATA.cpp
driver, in lines 985 and 986 [1] .
(The patch also renames the DMA_CONFIG_REG to UDMA_CONFIG_REG to avoid
confussion.)
[1]
http://www.opensource.apple.com/darwinsource/10.4.11.ppc/AppleKauaiATA-121.3.4/AppleKauaiATA.cpp
Greetings,
Marco.
Attachment:
kauai.c.diff
Description: Binary data