Port-sh3 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: landisk DMA broken in NetBSD 6



On Sun, Nov 18, 2012 at 02:08:31 +0000, John Klos wrote:

> After upgrading aPlextor PX-EH25L to NetBSD 6, I noticed that the machine 
> would crash after a few hours of use and an fsck on another machine would 
> show all sorts of issues. I think the DMA problem never got fixed. After 
> compiling a NetBSD 6 kernel with DMA modes disabled, it seems fine:
> 
> wd0 at atabus0 drive 0
> wd0: <HDT722525DLAT80>
> wd0: drive supports 16-sector PIO transfers, LBA48 addressing
> wd0: 232 GB, 484521 cyl, 16 head, 63 sec, 512 bytes/sect x 488397168 sectors
> wd0: 32-bit data port
> wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
> wd0(acardide0:0:0): using PIO mode 4
> 
> Doing a full cvs update of pkgsrc, then an fsck showed no problems.
> 
> Does anyone have a clue about how best to fix this?

Can you try reverting revision 1.15 (1.14.8.1 on netbsd-6):

revision 1.14.8.1
date: 2012-04-06 21:28:04 +0400;  author: riz;  state: Exp;  lines: +2 -7;
Pull up following revision(s) (requested by tsutsui in ticket #160):
        sys/arch/landisk/landisk/bus_dma.c: revision 1.15
Don't call sh_dcache_inv_range() on BUS_DMASYNC_POSTREAD ops
as other mips and arm ports.
All cached data is cared on BUS_DMASYNC_PREREAD and
invalidating cache without writeback could cause unexpected
data loss if specified sync region is not cacheline aligned.
This may fix "ffs_alloccg: map corrupted" panic on acardide IDE disks,
which didn't happen on USB HDD.

-uwe


Home | Main Index | Thread Index | Old Index