From owner-freebsd-mips@FreeBSD.ORG Sat Dec 8 18:52:41 2012 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 108AEEC6 for ; Sat, 8 Dec 2012 18:52:41 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id CC1468FC20 for ; Sat, 8 Dec 2012 18:52:40 +0000 (UTC) Received: by mail-pb0-f54.google.com with SMTP id wz12so1069993pbc.13 for ; Sat, 08 Dec 2012 10:52:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=date:from:x-x-sender:to:subject:message-id:user-agent:mime-version :content-type:x-gm-message-state; bh=zpELjTojP91nVxZa4QTFV9ZYchd1s5GD5m3cI5VKkLM=; b=OTF/hukAuB2fKfX5oelzEeNPa8nrsVzYXd9V2iOsL/mq898WPZWiBZQRgf+07cOyTV 2Q9ZvTlxavEIne3wvuIQaIubgJVH6fehzmMSSPKbs0yeo5QLpAxFEafVwj3ZhTTOu64S zCGZdt1j21ja70dlV/damPp0hyIObEp2QKJTeb/XMAw2sWX0oDLPoPr4HkQYxbHT6CFa NxTUemv+1a/BUshgnjESes/CeyZgFpZrrRErmOCc3dg5+F7d4FWgqJGfUfDKNjbKijO3 WpzMKD2Dir/huNOaIRPKd/s1DKL0gyXjk2v6hNJgXDAEgWxlqcuRmSWfy7YR1qRRTXpG bHVQ== Received: by 10.66.74.98 with SMTP id s2mr22493874pav.64.1354992760033; Sat, 08 Dec 2012 10:52:40 -0800 (PST) Received: from rrcs-66-91-135-210.west.biz.rr.com (rrcs-66-91-135-210.west.biz.rr.com. [66.91.135.210]) by mx.google.com with ESMTPS id ni3sm8823341pbc.2.2012.12.08.10.52.37 (version=SSLv3 cipher=OTHER); Sat, 08 Dec 2012 10:52:39 -0800 (PST) Date: Sat, 8 Dec 2012 08:51:12 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: arm@freebsd.org, mips@freebsd.org, powerpc@freebsd.org, sparc64@freebsd.org, John Baldwin , attilio@FreeBSD.org, mav@FreeBSD.org, scottl@freebsd.org, kib@freebsd.org, marcel@freebsd.org Subject: Call for testing and review, busdma changes Message-ID: User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Gm-Message-State: ALoCoQmgx68kOKN9JqDyRESI2sYdlrJwzC5usQzcTbQxKXWvMyK62Y+2fs45uZj1Un6k8jHGLpkh X-Mailman-Approved-At: Sat, 08 Dec 2012 18:56:58 +0000 X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Dec 2012 18:52:41 -0000 Hello, http://people.freebsd.org/~jeff/physbio.diff I have a relative large patch that reforms the busdma API so that new types may be added without modifying every architecture's busdma_machdep.c. It does this by unifying the bus_dmamap_load_buffer() routines so that they may be called from MI code. The MD busdma is then given a chance to do any final processing in the complete() callback. This patch also contains cam changes to unify the bus_dmamap_load* handling in cam drivers. The arm and mips implementations saw the largest changes since they have to track virtual addresses for sync(). Previously this was done in a type specific way. Now it is done in a generic way by recording the list of virtuals in the map. I have verified that this patch passes make universe which includes several kernel builds from each architecture. I suspect that if I broke anything your machine simply won't boot or will throw I/O errors. There is little subtlety, it is mostly refactoring. The next step is to allow for dma loading of physical addresses. This will permit unmapped I/O. Which is a significant performance optimization targeted for 10.0. Many thanks for your assistance. Any review feedback is also appreciated. Jeff