Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Mar 2007 14:01:03 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-alpha@freebsd.org
Subject:   Re: bus dma fixes
Message-ID:  <200703261401.03899.jhb@freebsd.org>
In-Reply-To: <200703261048.52874.jhb@freebsd.org>
References:  <200703261048.52874.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 26 March 2007 10:48:52 am John Baldwin wrote:
> Can folks please try this patch (warning, not compile tested) to fix some 
> issues with bus_dma and hopefully fix ATA DMA on Alpha 6.x?
> 
> http://www.FreeBSD.org/~jhb/patches/ata_alpha_dma.patch
> 
> It fixes the bus_dma code so that bus_dmamap_load() uses 
> _bus_dmamap_load_buffer().  This results in some fixes as noted in PR 75317 
> where bus_dmamap_load() wasn't honoring the maximum segment size for
> example.  It also now bounces buffers that aren't properly aligned.  It also
> now  supports bounce pages for mbufs and uio's.  As a sledgehammer fix for
> ATA on alpha, it limits the maximum segment size to 8k for ata(4) on alpha. 
> Does anyone have any more details on the PYXIS bug?  For example, does it
> only affect ata(4) or does it affect any DMA in the system?  If the latter,
> I would rather add a check into the bus dma code to trunc maxsegsize to 8k
> for all tags on broken systems.

Ok, I've updated the patch so that it no longer patches ata(4) but instead 
enfources an 8k boundary on all DMA tags on affected systems.  However, this 
will only fix cia(4) systems.  Other systems not found by the current check 
need to be updated to set busdma_pyxis_bug in their chipset code, and you can 
test if this fixes problems by just setting that variable to 1 on other 
systems where it isn't already set.

I know that the pr (75317) mentions that some PC164 systems have the same 
issue but aren't detected as broken currently.

-- 
John Baldwin



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