From owner-freebsd-alpha@FreeBSD.ORG Mon Mar 26 18:01:17 2007 Return-Path: X-Original-To: freebsd-alpha@freebsd.org Delivered-To: freebsd-alpha@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 80A9516A402 for ; Mon, 26 Mar 2007 18:01:17 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.freebsd.org (Postfix) with ESMTP id 1DB0413C484 for ; Mon, 26 Mar 2007 18:01:16 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.8/8.13.8) with ESMTP id l2QI1Emo013689 for ; Mon, 26 Mar 2007 13:01:14 -0500 (EST) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-alpha@freebsd.org Date: Mon, 26 Mar 2007 14:01:03 -0400 User-Agent: KMail/1.9.6 References: <200703261048.52874.jhb@freebsd.org> In-Reply-To: <200703261048.52874.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200703261401.03899.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Mon, 26 Mar 2007 13:01:14 -0500 (EST) X-Virus-Scanned: ClamAV 0.88.3/2933/Mon Mar 26 11:26:11 2007 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Subject: Re: bus dma fixes X-BeenThere: freebsd-alpha@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Alpha List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2007 18:01:17 -0000 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