From owner-freebsd-arm@FreeBSD.ORG Sat Dec 8 18:52:41 2012 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 050D2EC0 for ; Sat, 8 Dec 2012 18:52:41 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from mail-da0-f54.google.com (mail-da0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id BE3588FC1C for ; Sat, 8 Dec 2012 18:52:40 +0000 (UTC) Received: by mail-da0-f54.google.com with SMTP id n2so665941dad.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=D7pq75VPY11GOKVFYiddj/PAEbj2c8hZeCB4Qiua867cxKYiOnA1k4p5QbcKw1lz8W 7PE1aEL25heP/H7mnW1YPzuWijmTgEgt86e/WbMh503/TvpfFypeuBqT0E/7f7XYGeE4 yFK/9X2KHybxCbqgZzFRrBDZlt3++ViGsmXsrNfX/ukQsExdFfR5ALnNYQh9gshWROxZ /hG6FqL07AOgLMw7ZYFtqfbzLsdmgu56DcF5ocrZ3F2RmgWZNnCDnJUJ24JnG4VJLf7g 7GJSebHWpmi16o/ae5B2OHiWn371wBOd2m9lfsSMu2R9W4QnflObwiS4Jus0vuhnVDmr fdQA== 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: ALoCoQmPOsBE7xdgpnqY90AJSbKp0fYs/EFOO+OEQ+4xZ4GdOAG7TZpCJtN+izTSZdGUu7LbQOel X-Mailman-Approved-At: Sat, 08 Dec 2012 18:56:44 +0000 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor 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