From owner-svn-src-projects@FreeBSD.ORG Sun Dec 23 00:03:29 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2A359574; Sun, 23 Dec 2012 00:03:29 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 0FBFB8FC0A; Sun, 23 Dec 2012 00:03:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBN03SO5081415; Sun, 23 Dec 2012 00:03:28 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBN03SoM081414; Sun, 23 Dec 2012 00:03:28 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201212230003.qBN03SoM081414@svn.freebsd.org> From: Mark Linimon Date: Sun, 23 Dec 2012 00:03:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244606 - projects/portbuild/qmanager X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Dec 2012 00:03:29 -0000 Author: linimon (doc,ports committer) Date: Sun Dec 23 00:03:28 2012 New Revision: 244606 URL: http://svnweb.freebsd.org/changeset/base/244606 Log: Fix an ancient copy-and-paste error. Modified: projects/portbuild/qmanager/retcodes Modified: projects/portbuild/qmanager/retcodes ============================================================================== --- projects/portbuild/qmanager/retcodes Sat Dec 22 23:34:28 2012 (r244605) +++ projects/portbuild/qmanager/retcodes Sun Dec 23 00:03:28 2012 (r244606) @@ -12,7 +12,7 @@ code meaning sent by 255 error: copy failed portbuild 401 error: could not connect qmanagerhandler 402 error: machine modified but unknown qmanager -202 error: job would block qmanagerobj +403 error: job would block qmanagerobj 404 error: no such job to release/reconnect qmanager 406 error: machine modified but input error qmanager 407 error: bogus connection/release request qmanager From owner-svn-src-projects@FreeBSD.ORG Sun Dec 23 13:23:56 2012 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 83604822; Sun, 23 Dec 2012 13:23:56 +0000 (UTC) (envelope-from ray@freebsd.org) Received: from smtp.dlink.ua (smtp.dlink.ua [193.138.187.146]) by mx1.freebsd.org (Postfix) with ESMTP id 31B0F8FC0A; Sun, 23 Dec 2012 13:23:56 +0000 (UTC) Received: from rnote.ddteam.net (32-52-135-95.pool.ukrtel.net [95.135.52.32]) (Authenticated sender: ray) by smtp.dlink.ua (Postfix) with ESMTPSA id E2961C4927; Sun, 23 Dec 2012 15:17:17 +0200 (EET) Date: Sun, 23 Dec 2012 15:17:15 +0200 From: Aleksandr Rybalko To: Kevin Lo Subject: Re: svn commit: r244517 - projects/efika_mx/sys/arm/freescale/imx Message-Id: <20121223151715.44da1444.ray@freebsd.org> In-Reply-To: <50D5E2F7.9030203@FreeBSD.org> References: <201212202237.qBKMbGNZ035843@svn.freebsd.org> <50D5E2F7.9030203@FreeBSD.org> Organization: FreeBSD.ORG X-Mailer: Sylpheed 3.1.2 (GTK+ 2.24.5; amd64-portbld-freebsd9.0) X-Operating-System: FreeBSD Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: svn-src-projects@FreeBSD.org, Aleksandr Rybalko , src-committers@FreeBSD.org X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Dec 2012 13:23:56 -0000 On Sun, 23 Dec 2012 00:42:31 +0800 Kevin Lo wrote: > On 2012/12/21 06:37, Aleksandr Rybalko wrote: > > Author: ray > > Date: Thu Dec 20 22:37:15 2012 > > New Revision: 244517 > > URL: http://svnweb.freebsd.org/changeset/base/244517 > > > > Log: > > Add GPIO driver. > > > > Sponsored by: FreeBSD Foundation > > > > Modified: > > projects/efika_mx/sys/arm/freescale/imx/imx51_gpio.c > > > > Modified: projects/efika_mx/sys/arm/freescale/imx/imx51_gpio.c > > ============================================================================== > > --- projects/efika_mx/sys/arm/freescale/imx/imx51_gpio.c Thu > > Dec 20 22:31:52 2012 (r244516) +++ > > projects/efika_mx/sys/arm/freescale/imx/imx51_gpio.c Thu Dec > > 20 22:37:15 2012 (r244517) @@ -94,7 +94,7 @@ struct > > imx51_gpio_softc { device_t dev; struct > > mtx sc_mtx; struct resource *sc_res > > [11]; /* 1 x mem, 2 x IRQ, 8 x IRQ */ > > - void *gpio_ih[11]; /* 1 pointer is > > not a big waste */ > > + void *gpio_ih[11]; /* 1 ptr is not > > a big waste */ int sc_l_irq; /* Last irq > > resource */ bus_space_tag_t sc_iot; > > bus_space_handle_t sc_ioh; > > > > Did I miss something? This commit only updates the comment... > > Kevin I'm also was surprised, why svn don't ask me to do svn add first for it :) My mistake, sorry for that. WBW -- Aleksandr Rybalko From owner-svn-src-projects@FreeBSD.ORG Mon Dec 24 01:00:39 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9F027871; Mon, 24 Dec 2012 01:00:39 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 7FA098FC0A; Mon, 24 Dec 2012 01:00:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBO10d7b001906; Mon, 24 Dec 2012 01:00:39 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBO10blO001892; Mon, 24 Dec 2012 01:00:37 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201212240100.qBO10blO001892@svn.freebsd.org> From: Jeff Roberson Date: Mon, 24 Dec 2012 01:00:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244649 - in projects/physbio/sys: arm/arm ia64/ia64 kern mips/mips powerpc/powerpc sparc64/include sparc64/sparc64 sys x86/x86 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Dec 2012 01:00:39 -0000 Author: jeff Date: Mon Dec 24 01:00:36 2012 New Revision: 244649 URL: http://svnweb.freebsd.org/changeset/base/244649 Log: - Simplify the bus_dma backend API by eliminating turning the three complete variants into a single variant and have the caller do the callbacks. This eliminates a lot of redundant code. - Add missing slist initializations. Pointed out by Ian Lepore. Sponsored by: EMC / Isilon Storage Division Modified: projects/physbio/sys/arm/arm/busdma_machdep-v6.c projects/physbio/sys/arm/arm/busdma_machdep.c projects/physbio/sys/ia64/ia64/busdma_machdep.c projects/physbio/sys/kern/subr_busdma.c projects/physbio/sys/mips/mips/busdma_machdep.c projects/physbio/sys/powerpc/powerpc/busdma_machdep.c projects/physbio/sys/sparc64/include/bus_dma.h projects/physbio/sys/sparc64/sparc64/bus_machdep.c projects/physbio/sys/sparc64/sparc64/iommu.c projects/physbio/sys/sys/bus_dma.h projects/physbio/sys/x86/x86/busdma_machdep.c Modified: projects/physbio/sys/arm/arm/busdma_machdep-v6.c ============================================================================== --- projects/physbio/sys/arm/arm/busdma_machdep-v6.c Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/arm/arm/busdma_machdep-v6.c Mon Dec 24 01:00:36 2012 (r244649) @@ -838,43 +838,21 @@ cleanup: void __bus_dmamap_mayblock(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int *flags) + bus_dmamap_callback_t *callback, void *callback_arg) { - (*flags) |= BUS_DMA_WAITOK; map->callback = callback; map->callback_arg = callback_arg; } -void +bus_dma_segment_t * _bus_dmamap_complete(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int nsegs, int error) -{ - - if (error) - (*callback)(callback_arg, dmat->segments, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, 0); -} - -void -_bus_dmamap_complete2(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback2_t *callback, - void *callback_arg, int nsegs, bus_size_t len, int error) + bus_dma_segment_t *segs, int nsegs, int error) { - if (error) - (*callback)(callback_arg, dmat->segments, 0, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, len, error); -} - -void -_bus_dmamap_directseg(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dma_segment_t *segs, int nsegs, int error) -{ + if (segs == NULL) + segs = dmat->segments; + return (segs); } /* Modified: projects/physbio/sys/arm/arm/busdma_machdep.c ============================================================================== --- projects/physbio/sys/arm/arm/busdma_machdep.c Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/arm/arm/busdma_machdep.c Mon Dec 24 01:00:36 2012 (r244649) @@ -310,9 +310,10 @@ _busdma_alloc_dmamap(bus_dma_tag_t dmat) map->flags = DMAMAP_ALLOCATED; } else map->flags = 0; - if (map != NULL) + if (map != NULL) { STAILQ_INIT(&map->bpages); - else + map->slist = slist; + } else free(slist, M_DEVBUF); return (map); } @@ -916,45 +917,23 @@ cleanup: void __bus_dmamap_mayblock(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int *flags) + bus_dmamap_callback_t *callback, void *callback_arg) { KASSERT(dmat != NULL, ("dmatag is NULL")); KASSERT(map != NULL, ("dmamap is NULL")); - (*flags) |= BUS_DMA_WAITOK; map->callback = callback; map->callback_arg = callback_arg; } -void +bus_dma_segment_t * _bus_dmamap_complete(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int nsegs, int error) -{ - - if (error) - (*callback)(callback_arg, dmat->segments, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, 0); -} - -void -_bus_dmamap_complete2(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback2_t *callback, - void *callback_arg, int nsegs, bus_size_t len, int error) + bus_dma_segment_t *segs, int nsegs, int error) { - if (error) - (*callback)(callback_arg, dmat->segments, 0, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, len, error); -} - -void -_bus_dmamap_directseg(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dma_segment_t *segs, int nsegs, int error) -{ + if (segs == NULL) + segs = dmat->segments; + return (segs); } /* Modified: projects/physbio/sys/ia64/ia64/busdma_machdep.c ============================================================================== --- projects/physbio/sys/ia64/ia64/busdma_machdep.c Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/ia64/ia64/busdma_machdep.c Mon Dec 24 01:00:36 2012 (r244649) @@ -616,42 +616,22 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dm void __bus_dmamap_mayblock(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, int *flags) + bus_dmamap_callback_t *callback, void *callback_arg) { if (map != NULL) { - (*flags) |= BUS_DMA_WAITOK; map->callback = callback; map->callback_arg = callback_arg; } } -void +bus_dma_segment_t * _bus_dmamap_complete(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, int nsegs, int error) -{ - - if (error) - (*callback)(callback_arg, dmat->segments, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, 0); -} - -void -_bus_dmamap_complete2(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback2_t *callback, - void *callback_arg, int nsegs, bus_size_t len, int error) + bus_dma_segment_t *segs, int nsegs, int error) { - if (error) - (*callback)(callback_arg, dmat->segments, 0, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, len, error); -} - -void -_bus_dmamap_directseg(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dma_segment_t *segs, int nsegs, int error) -{ + if (segs == NULL) + segs = dmat->segments; + return (segs); } /* Modified: projects/physbio/sys/kern/subr_busdma.c ============================================================================== --- projects/physbio/sys/kern/subr_busdma.c Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/kern/subr_busdma.c Mon Dec 24 01:00:36 2012 (r244649) @@ -60,10 +60,12 @@ bus_dmamap_load(bus_dma_tag_t dmat, bus_ bus_size_t buflen, bus_dmamap_callback_t *callback, void *callback_arg, int flags) { + bus_dma_segment_t *segs; int error; int nsegs; - _bus_dmamap_mayblock(dmat, map, callback, callback_arg, &flags); + if ((flags & BUS_DMA_NOWAIT) == 0) + _bus_dmamap_mayblock(dmat, map, callback, callback_arg); nsegs = -1; error = _bus_dmamap_load_buffer(dmat, map, buf, buflen, kernel_pmap, @@ -76,7 +78,11 @@ bus_dmamap_load(bus_dma_tag_t dmat, bus_ if (error == EINPROGRESS) return (error); - _bus_dmamap_complete(dmat, map, callback, callback_arg, nsegs, error); + segs = _bus_dmamap_complete(dmat, map, NULL, nsegs, error); + if (error) + (*callback)(callback_arg, segs, 0, error); + else + (*callback)(callback_arg, segs, nsegs, 0); /* * Return ENOMEM to the caller so that it can pass it up the stack. @@ -121,12 +127,16 @@ int bus_dmamap_load_mbuf(bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m0, bus_dmamap_callback2_t *callback, void *callback_arg, int flags) { + bus_dma_segment_t *segs; int nsegs, error; error = _bus_dmamap_load_mbuf_sg(dmat, map, m0, NULL, &nsegs, flags); - _bus_dmamap_complete2(dmat, map, callback, callback_arg, nsegs, - m0->m_pkthdr.len, error); + segs = _bus_dmamap_complete(dmat, map, NULL, nsegs, error); + if (error) + (*callback)(callback_arg, segs, 0, 0, error); + else + (*callback)(callback_arg, segs, nsegs, m0->m_pkthdr.len, error); CTR5(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d nsegs %d", __func__, dmat, flags, error, nsegs); @@ -140,7 +150,7 @@ bus_dmamap_load_mbuf_sg(bus_dma_tag_t dm int error; error = _bus_dmamap_load_mbuf_sg(dmat, map, m0, segs, nsegs, flags); - _bus_dmamap_directseg(dmat, map, segs, *nsegs, error); + _bus_dmamap_complete(dmat, map, segs, *nsegs, error); return (error); } @@ -151,6 +161,7 @@ int bus_dmamap_load_uio(bus_dma_tag_t dmat, bus_dmamap_t map, struct uio *uio, bus_dmamap_callback2_t *callback, void *callback_arg, int flags) { + bus_dma_segment_t *segs; int nsegs, error, i; bus_size_t resid; bus_size_t minlen; @@ -186,8 +197,11 @@ bus_dmamap_load_uio(bus_dma_tag_t dmat, } } - _bus_dmamap_complete2(dmat, map, callback, callback_arg, nsegs, - uio->uio_resid, error); + segs = _bus_dmamap_complete(dmat, map, NULL, nsegs, error); + if (error) + (*callback)(callback_arg, segs, 0, 0, error); + else + (*callback)(callback_arg, segs, nsegs, uio->uio_resid, error); CTR5(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d nsegs %d", __func__, dmat, dmat, error, nsegs + 1); @@ -240,7 +254,7 @@ bus_dmamap_load_ccb(bus_dma_tag_t dmat, callback_arg, /*flags*/0); case CAM_DATA_PADDR: { - struct bus_dma_segment seg; + bus_dma_segment_t seg; seg.ds_addr = (bus_addr_t)(vm_offset_t)data_ptr; seg.ds_len = dxfer_len; @@ -248,13 +262,13 @@ bus_dmamap_load_ccb(bus_dma_tag_t dmat, break; } case CAM_DATA_SG: { - struct bus_dma_segment *segs; + bus_dma_segment_t *segs; int nsegs; int error; int i; flags |= BUS_DMA_NOWAIT; - segs = (struct bus_dma_segment *)data_ptr; + segs = (bus_dma_segment_t *)data_ptr; nsegs = -1; error = 0; for (i = 0; i < sglist_cnt && error == 0; i++) { @@ -263,16 +277,20 @@ bus_dmamap_load_ccb(bus_dma_tag_t dmat, kernel_pmap, flags, NULL, &nsegs); } nsegs++; - _bus_dmamap_complete(dmat, map, callback, callback_arg, nsegs, - error); + segs = _bus_dmamap_complete(dmat, map, NULL, nsegs, error); + if (error) + (*callback)(callback_arg, segs, 0, error); + else + (*callback)(callback_arg, segs, nsegs, error); + if (error == ENOMEM) return (error); break; } case CAM_DATA_SG_PADDR: { - struct bus_dma_segment *segs; + bus_dma_segment_t *segs; /* Just use the segments provided */ - segs = (struct bus_dma_segment *)data_ptr; + segs = (bus_dma_segment_t *)data_ptr; callback(callback_arg, segs, sglist_cnt, 0); break; } Modified: projects/physbio/sys/mips/mips/busdma_machdep.c ============================================================================== --- projects/physbio/sys/mips/mips/busdma_machdep.c Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/mips/mips/busdma_machdep.c Mon Dec 24 01:00:36 2012 (r244649) @@ -288,9 +288,10 @@ _busdma_alloc_dmamap(bus_dma_tag_t dmat) map->flags = DMAMAP_ALLOCATED; } else map->flags = 0; - if (map != NULL) + if (map != NULL) { STAILQ_INIT(&map->bpages); - else + map->slist = slist; + } else free(slist, M_DEVBUF); return (map); } @@ -858,45 +859,23 @@ cleanup: void __bus_dmamap_mayblock(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int *flags) + bus_dmamap_callback_t *callback, void *callback_arg) { KASSERT(dmat != NULL, ("dmatag is NULL")); KASSERT(map != NULL, ("dmamap is NULL")); - (*flags) |= BUS_DMA_WAITOK; map->callback = callback; map->callback_arg = callback_arg; } -void -_bus_dmamap_complete(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int nsegs, int error) -{ - - if (error) - (*callback)(callback_arg, dmat->segments, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, 0); -} - -void -_bus_dmamap_complete2(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback2_t *callback, - void *callback_arg, int nsegs, bus_size_t len, int error) -{ - - if (error) - (*callback)(callback_arg, dmat->segments, 0, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, len, error); -} - -void +bus_dma_segment_t * _bus_dmamap_directseg(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dma_segment_t *segs, int nsegs, int error) + bus_dma_segment_t *segs, int nsegs, int error) { + + if (segs == NULL) + segs = dmat->segments; + return (segs); } /* Modified: projects/physbio/sys/powerpc/powerpc/busdma_machdep.c ============================================================================== --- projects/physbio/sys/powerpc/powerpc/busdma_machdep.c Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/powerpc/powerpc/busdma_machdep.c Mon Dec 24 01:00:36 2012 (r244649) @@ -711,65 +711,31 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dm void __bus_dmamap_mayblock(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int *flags) + bus_dmamap_callback_t *callback, void *callback_arg) { if (dmat->flags & BUS_DMA_COULD_BOUNCE) { - (*flags) |= BUS_DMA_WAITOK; map->callback = callback; map->callback_arg = callback_arg; } } -void +bus_dma_segment_t * _bus_dmamap_complete(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int nsegs, int error) + bus_dma_segment_t *segs, int nsegs, int error) { - map->nsegs = nsegs; - if (dmat->iommu != NULL) - IOMMU_MAP(dmat->iommu, map->segments, &map->nsegs, - dmat->lowaddr, dmat->highaddr, dmat->alignment, - dmat->boundary, dmat->iommu_cookie); - - if (error) - (*callback)(callback_arg, map->segments, 0, error); + if (segs != NULL) + memcpy(map->segments, segs, map->nsegs*sizeof(segs[0])); else - (*callback)(callback_arg, map->segments, nsegs, 0); -} - -void -_bus_dmamap_complete2(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback2_t *callback, - void *callback_arg, int nsegs, bus_size_t len, int error) -{ - + segs = map->segments; map->nsegs = nsegs; if (dmat->iommu != NULL) IOMMU_MAP(dmat->iommu, map->segments, &map->nsegs, dmat->lowaddr, dmat->highaddr, dmat->alignment, dmat->boundary, dmat->iommu_cookie); - if (error) - (*callback)(callback_arg, map->segments, 0, 0, error); - else - (*callback)(callback_arg, map->segments, nsegs, len, error); -} - -void -_bus_dmamap_directseg(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dma_segment_t *segs, int nsegs, int error) -{ - - map->nsegs = nsegs; - if (dmat->iommu != NULL) - IOMMU_MAP(dmat->iommu, segs, &map->nsegs, dmat->lowaddr, - dmat->highaddr, dmat->alignment, dmat->boundary, - dmat->iommu_cookie); - - memcpy(map->segments, segs, map->nsegs*sizeof(segs[0])); + return (segs); } /* Modified: projects/physbio/sys/sparc64/include/bus_dma.h ============================================================================== --- projects/physbio/sys/sparc64/include/bus_dma.h Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/sparc64/include/bus_dma.h Mon Dec 24 01:00:36 2012 (r244649) @@ -82,15 +82,9 @@ struct bus_dma_methods { void *buf, bus_size_t buflen, struct pmap *pmap, int flags, bus_dma_segment_t *segs, int *segp); void (*dm_dmamap_mayblock)(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, int *flags); - void (*dm_dmamap_complete)(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, int nsegs, - int error); - void (*dm_dmamap_complete2)(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback2_t *callback2, void *callback_arg, int nsegs, - bus_size_t len, int error); - void (*dm_dmamap_directseg)(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dma_segment_t *segs, int nsegs, int error); + bus_dmamap_callback_t *callback, void *callback_arg); + bus_dma_segment_t *(*dm_dmamap_complete)(bus_dma_tag_t dmat, + bus_dmamap_t map, bus_dma_segment_t *segs, int nsegs, int error); void (*dm_dmamap_unload)(bus_dma_tag_t, bus_dmamap_t); void (*dm_dmamap_sync)(bus_dma_tag_t, bus_dmamap_t, bus_dmasync_op_t); @@ -133,14 +127,10 @@ struct bus_dma_tag { #define _bus_dmamap_load_buffer(t, m, b, l, p, f, s, sp) \ ((t)->dt_mt->dm_dmamap_load_buffer((t), (m), (b), (l), (p), \ (f), (s), (sp))) -#define _bus_dmamap_mayblock(t, m, c, ca, f) \ - ((t)->dt_mt->dm_dmamap_mayblock((t), (m), (c), (ca), (f))) -#define _bus_dmamap_complete(t, m, c, ca, n, e) \ - ((t)->dt_mt->dm_dmamap_complete((t), (m), (c), (ca), (n), (e))) -#define _bus_dmamap_complete2(t, m, c, ca, n, l, e) \ - ((t)->dt_mt->dm_dmamap_complete2((t), (m), (c), (ca), (n), (l), (e))) -#define _bus_dmamap_directseg(t, m, s, n, e) \ - ((t)->dt_mt->dm_dmamap_directseg((t), (m), (s), (n), (e))) +#define _bus_dmamap_mayblock(t, m, c, ca) \ + ((t)->dt_mt->dm_dmamap_mayblock((t), (m), (c), (ca))) +#define _bus_dmamap_complete(t, m, s, n, e) \ + ((t)->dt_mt->dm_dmamap_complete((t), (m), (s), (n), (e))) #define bus_dmamap_unload(t, p) \ ((t)->dt_mt->dm_dmamap_unload((t), (p))) #define bus_dmamap_sync(t, m, op) \ Modified: projects/physbio/sys/sparc64/sparc64/bus_machdep.c ============================================================================== --- projects/physbio/sys/sparc64/sparc64/bus_machdep.c Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/sparc64/sparc64/bus_machdep.c Mon Dec 24 01:00:36 2012 (r244649) @@ -405,42 +405,19 @@ nexus_dmamap_load_buffer(bus_dma_tag_t d static void nexus_dmamap_mayblock(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, int *flags) + bus_dmamap_callback_t *callback, void *callback_arg) { } -static void +static bus_dma_segment_t * nexus_dmamap_complete(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, int nsegs, int error) -{ - - if (error) { - (*callback)(callback_arg, dmat->dt_segments, 0, error); - } else { - map->dm_flags |= DMF_LOADED; - (*callback)(callback_arg, dmat->dt_segments, nsegs, 0); - } -} - -static void -nexus_dmamap_complete2(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback2_t *callback, void *callback_arg, int nsegs, - bus_size_t len, int error) -{ - - if (error) { - (*callback)(callback_arg, dmat->dt_segments, 0, 0, error); - } else { - map->dm_flags |= DMF_LOADED; - (*callback)(callback_arg, dmat->dt_segments, nsegs, len, error); - } -} - -static void -nexus_dmamap_directseg(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dma_segment_t *segs, int nsegs, int error) { + + if (segs == NULL) + segs = dmat->dt_segments; + return (segs); } /* @@ -546,8 +523,6 @@ static struct bus_dma_methods nexus_dma_ nexus_dmamap_load_buffer, nexus_dmamap_mayblock, nexus_dmamap_complete, - nexus_dmamap_complete2, - nexus_dmamap_directseg, nexus_dmamap_unload, nexus_dmamap_sync, nexus_dmamem_alloc, Modified: projects/physbio/sys/sparc64/sparc64/iommu.c ============================================================================== --- projects/physbio/sys/sparc64/sparc64/iommu.c Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/sparc64/sparc64/iommu.c Mon Dec 24 01:00:36 2012 (r244649) @@ -971,51 +971,12 @@ iommu_dvmamap_load_buffer(bus_dma_tag_t static void iommu_dvmamap_mayblock(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, int *flags) + bus_dmamap_callback_t *callback, void *callback_arg) { } -static void +static bus_dma_segment_t * iommu_dvmamap_complete(bus_dma_tag_t dt, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, int nsegs, int error) -{ - struct iommu_state *is = dt->dt_cookie; - - IS_LOCK(is); - iommu_map_insq(is, map); - if (error != 0) { - iommu_dvmamap_vunload(is, map); - IS_UNLOCK(is); - (*callback)(callback_arg, dt->dt_segments, 0, error); - } else { - IS_UNLOCK(is); - map->dm_flags |= DMF_LOADED; - (*callback)(callback_arg, dt->dt_segments, nsegs, 0); - } -} - -static void -iommu_dvmamap_complete2(bus_dma_tag_t dt, bus_dmamap_t map, - bus_dmamap_callback2_t *callback, void *callback_arg, int nsegs, - bus_size_t len, int error) -{ - struct iommu_state *is = dt->dt_cookie; - - IS_LOCK(is); - iommu_map_insq(is, map); - if (error != 0) { - iommu_dvmamap_vunload(is, map); - IS_UNLOCK(is); - (*callback)(callback_arg, dt->dt_segments, 0, 0, error); - } else { - IS_UNLOCK(is); - map->dm_flags |= DMF_LOADED; - (*callback)(callback_arg, dt->dt_segments, nsegs, len, 0); - } -} - -static void -iommu_dvmamap_directseg(bus_dma_tag_t dt, bus_dmamap_t map, bus_dma_segment_t *segs, int nsegs, int error) { struct iommu_state *is = dt->dt_cookie; @@ -1029,6 +990,9 @@ iommu_dvmamap_directseg(bus_dma_tag_t dt IS_UNLOCK(is); map->dm_flags |= DMF_LOADED; } + if (segs == NULL) + segs = dt->dt_segments; + return (segs); } static void @@ -1127,8 +1091,6 @@ struct bus_dma_methods iommu_dma_methods iommu_dvmamap_load_buffer, iommu_dvmamap_mayblock, iommu_dvmamap_complete, - iommu_dvmamap_complete2, - iommu_dvmamap_directseg, iommu_dvmamap_unload, iommu_dvmamap_sync, iommu_dvmamem_alloc, Modified: projects/physbio/sys/sys/bus_dma.h ============================================================================== --- projects/physbio/sys/sys/bus_dma.h Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/sys/bus_dma.h Mon Dec 24 01:00:36 2012 (r244649) @@ -287,31 +287,23 @@ void _bus_dmamap_unload(bus_dma_tag_t dm * software. */ void __bus_dmamap_mayblock(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int *flags); + bus_dmamap_callback_t *callback, void *callback_arg); -#define _bus_dmamap_mayblock(dmat, map, callback, callback_arg, flags) \ +#define _bus_dmamap_mayblock(dmat, map, callback, callback_arg) \ do { \ if ((map) != NULL) \ __bus_dmamap_mayblock(dmat, map, callback, \ - callback_arg, flags); \ + callback_arg); \ } while (0); int _bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf, bus_size_t buflen, struct pmap *pmap, int flags, bus_dma_segment_t *segs, int *segp); -void _bus_dmamap_complete(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int nsegs, int error); - -void _bus_dmamap_complete2(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback2_t *callback2, - void *callback_arg, int nsegs, bus_size_t len, - int error); - -void _bus_dmamap_directseg(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dma_segment_t *segs, int nsegs, int error); +bus_dma_segment_t *_bus_dmamap_complete(bus_dma_tag_t dmat, + bus_dmamap_t map, + bus_dma_segment_t *segs, + int nsegs, int error); #endif /* __sparc64__ */ Modified: projects/physbio/sys/x86/x86/busdma_machdep.c ============================================================================== --- projects/physbio/sys/x86/x86/busdma_machdep.c Mon Dec 24 00:46:34 2012 (r244648) +++ projects/physbio/sys/x86/x86/busdma_machdep.c Mon Dec 24 01:00:36 2012 (r244649) @@ -745,44 +745,22 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dm void __bus_dmamap_mayblock(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int *flags) + bus_dmamap_callback_t *callback, void *callback_arg) { if (map != NULL) { - (*flags) |= BUS_DMA_WAITOK; map->callback = callback; map->callback_arg = callback_arg; } } -void +bus_dma_segment_t * _bus_dmamap_complete(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback_t *callback, void *callback_arg, - int nsegs, int error) -{ - - if (error) - (*callback)(callback_arg, dmat->segments, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, 0); -} - -void -_bus_dmamap_complete2(bus_dma_tag_t dmat, bus_dmamap_t map, - bus_dmamap_callback2_t *callback, - void *callback_arg, int nsegs, bus_size_t len, int error) -{ - - if (error) - (*callback)(callback_arg, dmat->segments, 0, 0, error); - else - (*callback)(callback_arg, dmat->segments, nsegs, len, error); -} - -void -_bus_dmamap_directseg(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dma_segment_t *segs, int nsegs, int error) { + + if (segs == NULL) + segs = dmat->segments; + return (segs); } /* From owner-svn-src-projects@FreeBSD.ORG Mon Dec 24 13:21:03 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 401507E0; Mon, 24 Dec 2012 13:21:03 +0000 (UTC) (envelope-from ray@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 1A64A8FC0A; Mon, 24 Dec 2012 13:21:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBODL2Df012356; Mon, 24 Dec 2012 13:21:02 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBODL2Mo012355; Mon, 24 Dec 2012 13:21:02 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201212241321.qBODL2Mo012355@svn.freebsd.org> From: Aleksandr Rybalko Date: Mon, 24 Dec 2012 13:21:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244656 - projects/efika_mx/sys/arm/freescale/imx X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Dec 2012 13:21:03 -0000 Author: ray Date: Mon Dec 24 13:21:02 2012 New Revision: 244656 URL: http://svnweb.freebsd.org/changeset/base/244656 Log: Registers definitions for SDMA core. Sponsored by: FreeBSD Foundation Added: projects/efika_mx/sys/arm/freescale/imx/imx51_sdmareg.h Added: projects/efika_mx/sys/arm/freescale/imx/imx51_sdmareg.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/efika_mx/sys/arm/freescale/imx/imx51_sdmareg.h Mon Dec 24 13:21:02 2012 (r244656) @@ -0,0 +1,142 @@ +/*- + * Copyright (c) 2012 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Oleksandr Rybalko under sponsorship + * from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* Internal Registers definition for Freescale i.MX515 SDMA Core */ + +/* SDMA Core Instruction Memory Space */ +#define SDMA_IBUS_ROM_ADDR_BASE 0x0000 +#define SDMA_IBUS_ROM_ADDR_SIZE 0x07ff +#define SDMA_IBUS_RAM_ADDR_BASE 0x1000 +#define SDMA_IBUS_RAM_ADDR_SIZE 0x1fff + +/* SDMA Core Internal Registers */ +#define SDMA_MC0PTR 0x7000 /* AP (MCU) Channel 0 Pointer R */ + +#define SDMA_CCPTR 0x7002 /* Current Channel Pointer R */ +#define SDMA_ECTL_CCPTR_MASK 0x0000ffff +#define SDMA_ECTL_CCPTR_SHIFT 0 + +#define SDMA_CCR 0x7003 /* Current Channel Register R */ +#define SDMA_ECTL_CCR_MASK 0x0000001f +#define SDMA_ECTL_CCR_SHIFT 0 + +#define SDMA_NCR 0x7004 /* Highest Pending Channel Register R */ +#define SDMA_ECTL_NCR_MASK 0x0000001f +#define SDMA_ECTL_NCR_SHIFT 0 + +#define SDMA_EVENTS 0x7005 /* External DMA Requests Mirror R */ + +#define SDMA_CCPRI 0x7006 /* Current Channel Priority R */ +#define SDMA_ECTL_CCPRI_MASK 0x00000007 +#define SDMA_ECTL_CCPRI_SHIFT 0 + +#define SDMA_NCPRI 0x7007 /* Next Channel Priority R */ +#define SDMA_ECTL_NCPRI_MASK 0x00000007 +#define SDMA_ECTL_NCPRI_SHIFT 0 + +#define SDMA_ECOUNT 0x7009 /* OnCE Event Cell Counter R/W */ +#define SDMA_ECTL_ECOUNT_MASK 0x0000ffff +#define SDMA_ECTL_ECOUNT_SHIFT 0 + +#define SDMA_ECTL 0x700A /* OnCE Event Cell Control Register R/W */ +#define SDMA_ECTL_EN (1 << 13) +#define SDMA_ECTL_CNT (1 << 12) +#define SDMA_ECTL_ECTC_MASK 0x00000c00 +#define SDMA_ECTL_ECTC_SHIFT 10 +#define SDMA_ECTL_DTC_MASK 0x00000300 +#define SDMA_ECTL_DTC_SHIFT 8 +#define SDMA_ECTL_ATC_MASK 0x000000c0 +#define SDMA_ECTL_ATC_SHIFT 6 +#define SDMA_ECTL_ABTC_MASK 0x00000030 +#define SDMA_ECTL_ABTC_SHIFT 4 +#define SDMA_ECTL_AATC_MASK 0x0000000c +#define SDMA_ECTL_AATC_SHIFT 2 +#define SDMA_ECTL_ATS_MASK 0x00000003 +#define SDMA_ECTL_ATS_SHIFT 0 + +#define SDMA_EAA 0x700B /* OnCE Event Address Register A R/W */ +#define SDMA_ECTL_EAA_MASK 0x0000ffff +#define SDMA_ECTL_EAA_SHIFT 0 + +#define SDMA_EAB 0x700C /* OnCE Event Cell Address Register B R/W */ +#define SDMA_ECTL_EAB_MASK 0x0000ffff +#define SDMA_ECTL_EAB_SHIFT 0 + +#define SDMA_EAM 0x700D /* OnCE Event Cell Address Mask R/W */ +#define SDMA_ECTL_EAM_MASK 0x0000ffff +#define SDMA_ECTL_EAM_SHIFT 0 + +#define SDMA_ED 0x700E /* OnCE Event Cell Data Register R/W */ +#define SDMA_EDM 0x700F /* OnCE Event Cell Data Mask R/W */ +#define SDMA_RTB 0x7018 /* OnCE Real-Time Buffer R/W */ + +#define SDMA_TB 0x7019 /* OnCE Trace Buffer R */ +#define SDMA_TB_TBF (1 << 28) +#define SDMA_TB_TADDR_MASK 0x0fffc000 +#define SDMA_TB_TADDR_SHIFT 14 +#define SDMA_TB_CHFADDR_MASK 0x00003fff +#define SDMA_TB_CHFADDR_SHIFT 0 + +#define SDMA_OSTAT 0x701A /* OnCE Status R */ +#define SDMA_OSTAT_PST_MASK 0x0000f000 +#define SDMA_OSTAT_PST_SHIFT 12 +#define SDMA_OSTAT_RCV (1 << 11) +#define SDMA_OSTAT_EDR (1 << 10) +#define SDMA_OSTAT_ODR (1 << 9) +#define SDMA_OSTAT_SWB (1 << 8) +#define SDMA_OSTAT_MST (1 << 7) +#define SDMA_OSTAT_ECDR_MASK 0x00000007 +#define SDMA_OSTAT_ECDR_SHIFT 0 + +#define SDMA_MCHN0ADDR 0x701C /* Channel 0 Boot Address R */ +#define SDMA_MCHN0ADDR_SMS_Z (1 << 14) +#define SDMA_MCHN0ADDR_CHN0ADDR_MASK 0x00003fff +#define SDMA_MCHN0ADDR_CHN0ADDR_SHIFT 0 + +#define SDMA_MODE 0x701D /* Mode Status Register R */ +#define SDMA_MODE_DSPCtrl (1 << 3) +#define SDMA_MODE_AP_END (1 << 0) + +#define SDMA_LOCK 0x701E /* Lock Status Register R */ +#define SDMA_LOCK_LOCK (1 << 0) + +#define SDMA_EVENTS2 0x701F /* External DMA Requests Mirror #2 R */ + +#define SDMA_HE 0x7020 /* AP Enable Register R */ +#define SDMA_PRIV 0x7022 /* Current Channel BP Privilege Register R */ +#define SDMA_PRIV_BPPRIV (1 << 0) +#define SDMA_PRF_CNT 0x7023 /* Profile Free Running Register R/W */ +#define SDMA_PRF_CNT_SEL_MASK 0xc0000000 +#define SDMA_PRF_CNT_SEL_SHIFT 30 +#define SDMA_PRF_CNT_EN (1 << 29) +#define SDMA_PRF_CNT_OFL (1 << 22) +#define SDMA_PRF_CNT_COUNTER_MASK 0x003fffff +#define SDMA_PRF_CNT_COUNTER_SHIFT 0 From owner-svn-src-projects@FreeBSD.ORG Mon Dec 24 13:22:23 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 914E3908; Mon, 24 Dec 2012 13:22:23 +0000 (UTC) (envelope-from ray@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 755238FC15; Mon, 24 Dec 2012 13:22:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBODMN7J012573; Mon, 24 Dec 2012 13:22:23 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBODMNHA012572; Mon, 24 Dec 2012 13:22:23 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201212241322.qBODMNHA012572@svn.freebsd.org> From: Aleksandr Rybalko Date: Mon, 24 Dec 2012 13:22:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244657 - projects/efika_mx/sys/arm/freescale/imx X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Dec 2012 13:22:23 -0000 Author: ray Date: Mon Dec 24 13:22:22 2012 New Revision: 244657 URL: http://svnweb.freebsd.org/changeset/base/244657 Log: Register map for Synchronous Serial Interface. Sponsored by: FreeBSD Foundation Added: projects/efika_mx/sys/arm/freescale/imx/imx51_ssireg.h Added: projects/efika_mx/sys/arm/freescale/imx/imx51_ssireg.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/efika_mx/sys/arm/freescale/imx/imx51_ssireg.h Mon Dec 24 13:22:22 2012 (r244657) @@ -0,0 +1,180 @@ +/*- + * Copyright (c) 2012 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Oleksandr Rybalko under sponsorship + * from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* Registers definition for Freescale i.MX515 Synchronous Serial Interface */ + +#define IMX51_SSI_STX0_REG 0x0000 /* SSI TX Data Register 0 */ +#define IMX51_SSI_STX1_REG 0x0004 /* SSI TX Data Register 1 */ +#define IMX51_SSI_SRX0_REG 0x0008 /* SSI RX Data Register 0 */ +#define IMX51_SSI_SRX1_REG 0x000C /* SSI RX Data Register 1 */ +#define IMX51_SSI_SCR_REG 0x0010 /* SSI Control Register */ +#define SSI_SCR_RFR_CLK_DIS (1 << 11) /* RX FC Disable */ +#define SSI_SCR_TFR_CLK_DIS (1 << 10) /* TX FC Disable */ +#define SSI_SCR_CLK_IST (1 << 9) /* Clock Idle */ +#define SSI_SCR_TCH_EN (1 << 8) /* 2Chan Enable */ +#define SSI_SCR_SYS_CLK_EN (1 << 7) /* System Clock En */ +#define SSI_SCR_MODE_NORMAL (0 << 5) +#define SSI_SCR_MODE_I2S_MASTER (1 << 5) +#define SSI_SCR_MODE_I2S_SLAVE (2 << 5) +#define SSI_SCR_MODE_MASK (3 << 5) +#define SSI_SCR_SYN (1 << 4) /* Sync Mode */ +#define SSI_SCR_NET (1 << 3) /* Network Mode */ +#define SSI_SCR_RE (1 << 2) /* RX Enable */ +#define SSI_SCR_TE (1 << 1) /* TX Enable */ +#define SSI_SCR_SSIEN (1 << 0) /* SSI Enable */ + +#define IMX51_SSI_SISR_REG 0x0014 /* SSI Interrupt Status Register */ +#define SSI_SISR_RFRC (1 << 24) /* RX Frame Complete */ +#define SSI_SIR_TFRC (1 << 23) /* TX Frame Complete */ +#define SSI_SIR_CMDAU (1 << 18) /* Command Address Updated */ +#define SSI_SIR_CMDDU (1 << 17) /* Command Data Updated */ +#define SSI_SIR_RXT (1 << 16) /* RX Tag Updated */ +#define SSI_SIR_RDR1 (1 << 15) /* RX Data Ready 1 */ +#define SSI_SIR_RDR0 (1 << 14) /* RX Data Ready 0 */ +#define SSI_SIR_TDE1 (1 << 13) /* TX Data Reg Empty 1 */ +#define SSI_SIR_TDE0 (1 << 12) /* TX Data Reg Empty 0 */ +#define SSI_SIR_ROE1 (1 << 11) /* RXer Overrun Error 1 */ +#define SSI_SIR_ROE0 (1 << 10) /* RXer Overrun Error 0 */ +#define SSI_SIR_TUE1 (1 << 9) /* TXer Underrun Error 1 */ +#define SSI_SIR_TUE0 (1 << 8) /* TXer Underrun Error 0 */ +#define SSI_SIR_TFS (1 << 7) /* TX Frame Sync */ +#define SSI_SIR_RFS (1 << 6) /* RX Frame Sync */ +#define SSI_SIR_TLS (1 << 5) /* TX Last Time Slot */ +#define SSI_SIR_RLS (1 << 4) /* RX Last Time Slot */ +#define SSI_SIR_RFF1 (1 << 3) /* RX FIFO Full 1 */ +#define SSI_SIR_RFF0 (1 << 2) /* RX FIFO Full 0 */ +#define SSI_SIR_TFE1 (1 << 1) /* TX FIFO Empty 1 */ +#define SSI_SIR_TFE0 (1 << 0) /* TX FIFO Empty 0 */ + +#define IMX51_SSI_SIER_REG 0x0018 /* SSI Interrupt Enable Register */ +/* 24-23 Enable Bit (See SISR) */ +#define SSI_SIER_RDMAE (1 << 22) /* RX DMA Enable */ +#define SSI_SIER_RIE (1 << 21) /* RX Interrupt Enable */ +#define SSI_SIER_TDMAE (1 << 20) /* TX DMA Enable */ +#define SSI_SIER_TIE (1 << 19) /* TX Interrupt Enable */ +/* 18-0 Enable Bits (See SISR) */ + +#define IMX51_SSI_STCR_REG 0x001C /* SSI TX Configuration Register */ +#define SSI_STCR_TXBIT0 (1 << 9) /* TX Bit 0 */ +#define SSI_STCR_TFEN1 (1 << 8) /* TX FIFO Enable 1 */ +#define SSI_STCR_TFEN0 (1 << 7) /* TX FIFO Enable 0 */ +#define SSI_STCR_TFDIR (1 << 6) /* TX Frame Direction */ +#define SSI_STCR_TXDIR (1 << 5) /* TX Clock Direction */ +#define SSI_STCR_TSHFD (1 << 4) /* TX Shift Direction */ +#define SSI_STCR_TSCKP (1 << 3) /* TX Clock Polarity */ +#define SSI_STCR_TFSI (1 << 2) /* TX Frame Sync Invert */ +#define SSI_STCR_TFSL (1 << 1) /* TX Frame Sync Length */ +#define SSI_STCR_TEFS (1 << 0) /* TX Early Frame Sync */ + +#define IMX51_SSI_SRCR_REG 0x0020 /* SSI RX Configuration Register */ +#define SSI_SRCR_RXEXT (1 << 10) /* RX Data Extension */ +#define SSI_SRCR_RXBIT0 (1 << 9) /* RX Bit 0 */ +#define SSI_SRCR_RFEN1 (1 << 8) /* RX FIFO Enable 1 */ +#define SSI_SRCR_RFEN0 (1 << 7) /* RX FIFO Enable 0 */ +#define SSI_SRCR_RFDIR (1 << 6) /* RX Frame Direction */ +#define SSI_SRCR_RXDIR (1 << 5) /* RX Clock Direction */ +#define SSI_SRCR_RSHFD (1 << 4) /* RX Shift Direction */ +#define SSI_SRCR_RSCKP (1 << 3) /* RX Clock Polarity */ +#define SSI_SRCR_RFSI (1 << 2) /* RX Frame Sync Invert */ +#define SSI_SRCR_RFSL (1 << 1) /* RX Frame Sync Length */ +#define SSI_SRCR_REFS (1 << 0) /* RX Early Frame Sync */ + +#define IMX51_SSI_STCCR_REG 0x0024 /* TX Clock Control */ +#define IMX51_SSI_SRCCR_REG 0x0028 /* RX Clock Control */ +#define SSI_SXCCR_DIV2 (1 << 18) /* Divide By 2 */ +#define SSI_SXCCR_PSR (1 << 17) /* Prescaler Range */ +#define SSI_SXCCR_WL_MASK 0x0001e000 +#define SSI_SXCCR_WL_SHIFT 13 /* Word Length Control */ +#define SSI_SXCCR_DC_MASK 0x00001f00 +#define SSI_SXCCR_DC_SHIFT 8 /* Frame Rate Divider */ +#define SSI_SXCCR_PM_MASK 0x000000ff +#define SSI_SXCCR_PM_SHIFT 0 /* Prescaler Modulus */ + +#define IMX51_SSI_SFCSR_REG 0x002C /* SSI FIFO Control/Status Register */ +#define SSI_SFCSR_RFCNT1_MASK 0xf0000000 +#define SSI_SFCSR_RFCNT1_SHIFT 28 /* RX FIFO Counter 1 */ +#define SSI_SFCSR_TFCNT1_MASK 0x0f000000 +#define SSI_SFCSR_TFCNT1_SHIFT 24 /* TX FIFO Counter 1 */ +#define SSI_SFCSR_RFWM1_MASK 0x00f00000 +#define SSI_SFCSR_RFWM1_SHIFT 20 /* RX FIFO Full WaterMark 1 */ +#define SSI_SFCSR_TFWM1_MASK 0x000f0000 +#define SSI_SFCSR_TFWM1_SHIFT 16 /* TX FIFO Empty WaterMark 1 */ +#define SSI_SFCSR_RFCNT0_MASK 0x0000f000 +#define SSI_SFCSR_RFCNT0_SHIFT 12 /* RX FIFO Counter 0 */ +#define SSI_SFCSR_TFCNT0_MASK 0x00000f00 +#define SSI_SFCSR_TFCNT0_SHIFT 8 /* TX FIFO Counter 0 */ +#define SSI_SFCSR_RFWM0_MASK 0x000000f0 +#define SSI_SFCSR_RFWM0_SHIFT 4 /* RX FIFO Full WaterMark 0 */ +#define SSI_SFCSR_TFWM0_MASK 0x0000000f +#define SSI_SFCSR_TFWM0_SHIFT 0 /* TX FIFO Empty WaterMark 0 */ + +#define IMX51_SSI_STR_REG 0x0030 /* SSI Test Register1 */ +#define SSI_STR_TEST (1 << 15) /* Test Mode */ +#define SSI_STR_RCK2TCK (1 << 14) /* RX<->TX Clock Loop Back */ +#define SSI_STR_RFS2TFS (1 << 13) /* RX<->TX Frame Loop Back */ +#define SSI_STR_RXSTATE_MASK 0x00001f00 +#define SSI_STR_RXSTATE_SHIFT 8 /* RXer State Machine Status */ +#define SSI_STR_TXD2RXD (1 << 7) /* TX<->RX Data Loop Back */ +#define SSI_STR_TCK2RCK (1 << 6) /* TX<->RX Clock Loop Back */ +#define SSI_STR_TFS2RFS (1 << 5) /* TX<->RX Frame Loop Back */ +#define SSI_STR_TXSTATE_MASK 0x0000001f +#define SSI_STR_TXSTATE_SHIFT 0 /* TXer State Machine Status */ + +#define IMX51_SSI_SOR_REG 0x0034 /* SSI Option Register2 */ +#define SSI_SOR_CLKOFF (1 << 6) /* Clock Off */ +#define SSI_SOR_RX_CLR (1 << 5) /* RXer Clear */ +#define SSI_SOR_TX_CLR (1 << 4) /* TXer Clear */ +#define SSI_SOR_INIT (1 << 3) /* Initialize */ +#define SSI_SOR_WAIT_MASK 0x00000006 +#define SSI_SOR_INIT_SHIFT 1 /* Wait */ +#define SSI_SOR_SYNRST (1 << 0) /* Frame Sync Reset */ + +#define IMX51_SSI_SACNT_REG 0x0038 /* SSI AC97 Control Register */ +#define SSI_SACNT_FRDIV_MASK 0x000007e0 +#define SSI_SACNT_FRDIV_SHIFT 5 /* Frame Rate Divider */ +#define SSI_SACNT_WR (1 << 4) /* Write Command */ +#define SSI_SACNT_RD (1 << 3) /* Read Command */ +#define SSI_SACNT_TIF (1 << 2) /* Tag in FIFO */ +#define SSI_SACNT_FV (1 << 1) /* Fixed/Variable Operation */ +#define SSI_SACNT_AC97EN (1 << 0) /* AC97 Mode Enable */ + +#define IMX51_SSI_SACADD_REG 0x003C /* SSI AC97 Command Address Register */ +#define SSI_SACADD_MASK 0x0007ffff +#define IMX51_SSI_SACDAT_REG 0x0040 /* SSI AC97 Command Data Register */ +#define SSI_SACDAT_MASK 0x000fffff +#define IMX51_SSI_SATAG_REG 0x0044 /* SSI AC97 Tag Register */ +#define SSI_SATAG_MASK 0x0000ffff +#define IMX51_SSI_STMSK_REG 0x0048 /* SSI TX Time Slot Mask Register */ +#define IMX51_SSI_SRMSK_REG 0x004C /* SSI RX Time Slot Mask Register */ +#define IMX51_SSI_SACCST_REG 0x0050 /* SSI AC97 Channel Status Register */ +#define IMX51_SSI_SACCEN_REG 0x0054 /* SSI AC97 Channel Enable Register */ +#define IMX51_SSI_SACCDIS_REG 0x0058 /* SSI AC97 Channel Disable Register */ +#define SSI_SAC_MASK 0x000003ff /* SACCST,SACCEN,SACCDIS */ From owner-svn-src-projects@FreeBSD.ORG Mon Dec 24 13:24:57 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 295A9B8B; Mon, 24 Dec 2012 13:24:57 +0000 (UTC) (envelope-from ray@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id E854E8FC0C; Mon, 24 Dec 2012 13:24:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBODOuRL012979; Mon, 24 Dec 2012 13:24:56 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBODOuNq012975; Mon, 24 Dec 2012 13:24:56 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201212241324.qBODOuNq012975@svn.freebsd.org> From: Aleksandr Rybalko Date: Mon, 24 Dec 2012 13:24:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244659 - projects/efika_mx/sys/arm/freescale/imx X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Dec 2012 13:24:57 -0000 Author: ray Date: Mon Dec 24 13:24:55 2012 New Revision: 244659 URL: http://svnweb.freebsd.org/changeset/base/244659 Log: Fix attachment order for most required devices (IC, Clock, Timer) Sponsored by: FreeBSD Foundation Modified: projects/efika_mx/sys/arm/freescale/imx/imx51_ccm.c projects/efika_mx/sys/arm/freescale/imx/imx_gpt.c projects/efika_mx/sys/arm/freescale/imx/tzic.c Modified: projects/efika_mx/sys/arm/freescale/imx/imx51_ccm.c ============================================================================== --- projects/efika_mx/sys/arm/freescale/imx/imx51_ccm.c Mon Dec 24 13:22:32 2012 (r244658) +++ projects/efika_mx/sys/arm/freescale/imx/imx51_ccm.c Mon Dec 24 13:24:55 2012 (r244659) @@ -123,7 +123,8 @@ static driver_t imxccm_driver = { static devclass_t imxccm_devclass; -DRIVER_MODULE(imxccm, simplebus, imxccm_driver, imxccm_devclass, 0, 0); +EARLY_DRIVER_MODULE(imxccm, simplebus, imxccm_driver, imxccm_devclass, 0, 0, + BUS_PASS_CPU); static struct resource_spec imxccm_spec[] = { { SYS_RES_MEMORY, 0, RF_ACTIVE }, /* Global registers */ Modified: projects/efika_mx/sys/arm/freescale/imx/imx_gpt.c ============================================================================== --- projects/efika_mx/sys/arm/freescale/imx/imx_gpt.c Mon Dec 24 13:22:32 2012 (r244658) +++ projects/efika_mx/sys/arm/freescale/imx/imx_gpt.c Mon Dec 24 13:24:55 2012 (r244659) @@ -344,7 +344,8 @@ static driver_t imx_gpt_driver = { static devclass_t imx_gpt_devclass; -DRIVER_MODULE(imx_gpt, simplebus, imx_gpt_driver, imx_gpt_devclass, 0, 0); +EARLY_DRIVER_MODULE(imx_gpt, simplebus, imx_gpt_driver, imx_gpt_devclass, 0, + 0, BUS_PASS_TIMER); void DELAY(int usec) Modified: projects/efika_mx/sys/arm/freescale/imx/tzic.c ============================================================================== --- projects/efika_mx/sys/arm/freescale/imx/tzic.c Mon Dec 24 13:22:32 2012 (r244658) +++ projects/efika_mx/sys/arm/freescale/imx/tzic.c Mon Dec 24 13:24:55 2012 (r244659) @@ -144,8 +144,10 @@ static devclass_t tzic_devclass; * Memory space of controller located outside of device range, so let him to * attach not only to simplebus, but fdtbus also. */ -DRIVER_MODULE(tzic, fdtbus, tzic_driver, tzic_devclass, 0, 0); -DRIVER_MODULE(tzic, simplebus, tzic_driver, tzic_devclass, 0, 0); +EARLY_DRIVER_MODULE(tzic, fdtbus, tzic_driver, tzic_devclass, 0, 0, + BUS_PASS_INTERRUPT); +EARLY_DRIVER_MODULE(tzic, simplebus, tzic_driver, tzic_devclass, 0, 0, + BUS_PASS_INTERRUPT); static void tzic_post_filter(void *arg) From owner-svn-src-projects@FreeBSD.ORG Mon Dec 24 13:41:47 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AE7F7284; Mon, 24 Dec 2012 13:41:47 +0000 (UTC) (envelope-from ray@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 929CE8FC14; Mon, 24 Dec 2012 13:41:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBODflFd015423; Mon, 24 Dec 2012 13:41:47 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBODflcO015419; Mon, 24 Dec 2012 13:41:47 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201212241341.qBODflcO015419@svn.freebsd.org> From: Aleksandr Rybalko Date: Mon, 24 Dec 2012 13:41:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244661 - projects/efika_mx/sys/arm/freescale/imx X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Dec 2012 13:41:47 -0000 Author: ray Date: Mon Dec 24 13:41:46 2012 New Revision: 244661 URL: http://svnweb.freebsd.org/changeset/base/244661 Log: Freescale i.MX51 IO pins multiplexor driver with simple API. Sponsored by: FreeBSD Foundation Added: projects/efika_mx/sys/arm/freescale/imx/imx51_iomux.c projects/efika_mx/sys/arm/freescale/imx/imx51_iomuxreg.h projects/efika_mx/sys/arm/freescale/imx/imx51_iomuxvar.h Added: projects/efika_mx/sys/arm/freescale/imx/imx51_iomux.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/efika_mx/sys/arm/freescale/imx/imx51_iomux.c Mon Dec 24 13:41:46 2012 (r244661) @@ -0,0 +1,222 @@ +/* $NetBSD: imx51_iomux.c,v 1.3 2012/04/15 09:51:31 bsh Exp $ */ + +/* + * Copyright (c) 2009, 2010 Genetec Corporation. All rights reserved. + * Written by Hashimoto Kenichi for Genetec Corporation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY GENETEC CORPORATION ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENETEC CORPORATION + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/*- + * Copyright (c) 2012 The FreeBSD Foundation + * All rights reserved. + * + * Portions of this software were developed by Oleksandr Rybalko + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include +#include + + +#define IOMUX_WRITE(_sc, _r, _v) \ + bus_write_4((_sc)->sc_res, (_r), (_v)) +#define IOMUX_READ(_sc, _r) \ + bus_read_4((_sc)->sc_res, (_r)) +#define IOMUX_SET(_sc, _r, _m) \ + IOMUX_WRITE((_sc), (_r), IOMUX_READ((_sc), (_r)) | (_m)) +#define IOMUX_CLEAR(_sc, _r, _m) \ + IOMUX_WRITE((_sc), (_r), IOMUX_READ((_sc), (_r)) & ~(_m)) + +struct iomux_softc { + struct resource *sc_res; + device_t sc_dev; +}; + +static int iomux_probe(device_t); +static int iomux_attach(device_t); + +static struct iomux_softc *iomuxsc = NULL; + +static struct resource_spec imx_iomux_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE }, /* Global registers */ + { -1, 0 } +}; + +static int +iomux_probe(device_t dev) +{ + + if (!ofw_bus_is_compatible(dev, "fsl,imx51-iomux")) + return (ENXIO); + + device_set_desc(dev, "Freescale i.MX51 IO pins multiplexor"); + return (BUS_PROBE_DEFAULT); +} + +static int +iomux_attach(device_t dev) +{ + struct iomux_softc * sc; + + sc = device_get_softc(dev); + + if (bus_alloc_resources(dev, imx_iomux_spec, &sc->sc_res)) { + device_printf(dev, "could not allocate resources\n"); + return (ENXIO); + } + + iomuxsc = sc; + + /* + * XXX: place to fetch all into about pinmuxing from loader data + * (FDT blob) and apply. Loader (1st one) must care about + * device-to-device difference. + */ + + return (0); +} + +static void +iomux_set_function_sub(struct iomux_softc *sc, uint32_t pin, uint32_t fn) +{ + bus_size_t mux_ctl_reg = IOMUX_PIN_TO_MUX_ADDRESS(pin); + + if (mux_ctl_reg != IOMUX_MUX_NONE) + IOMUX_WRITE(sc, mux_ctl_reg, fn); +} + +void +iomux_set_function(unsigned int pin, unsigned int fn) +{ + iomux_set_function_sub(iomuxsc, pin, fn); +} + +static void +iomux_set_pad_sub(struct iomux_softc *sc, uint32_t pin, uint32_t config) +{ + bus_size_t pad_ctl_reg = IOMUX_PIN_TO_PAD_ADDRESS(pin); + + if (pad_ctl_reg != IOMUX_PAD_NONE) + IOMUX_WRITE(sc, pad_ctl_reg, config); +} + +void +iomux_set_pad(unsigned int pin, unsigned int config) +{ + iomux_set_pad_sub(iomuxsc, pin, config); +} + +#if notyet +void +iomux_set_input(unsigned int input, unsigned int config) +{ + bus_size_t input_ctl_reg = input; + + bus_space_write_4(iomuxsc->iomux_memt, iomuxsc->iomux_memh, + input_ctl_reg, config); +} +#endif + +void +iomux_mux_config(const struct iomux_conf *conflist) +{ + int i; + + for (i = 0; conflist[i].pin != IOMUX_CONF_EOT; i++) { + iomux_set_pad_sub(iomuxsc, conflist[i].pin, conflist[i].pad); + iomux_set_function_sub(iomuxsc, conflist[i].pin, + conflist[i].mux); + } +} + +#ifdef notyet +void +iomux_input_config(const struct iomux_input_conf *conflist) +{ + int i; + + for (i = 0; conflist[i].inout != -1; i++) { + iomux_set_inout(iomuxsc, conflist[i].inout, + conflist[i].inout_mode); + } +} +#endif + +static device_method_t imx_iomux_methods[] = { + DEVMETHOD(device_probe, iomux_probe), + DEVMETHOD(device_attach, iomux_attach), + + DEVMETHOD_END +}; + +static driver_t imx_iomux_driver = { + "imx_iomux", + imx_iomux_methods, + sizeof(struct iomux_softc), +}; + +static devclass_t imx_iomux_devclass; + +EARLY_DRIVER_MODULE(imx_iomux, simplebus, imx_iomux_driver, + imx_iomux_devclass, 0, 0, BUS_PASS_BUS - 1); + Added: projects/efika_mx/sys/arm/freescale/imx/imx51_iomuxreg.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/efika_mx/sys/arm/freescale/imx/imx51_iomuxreg.h Mon Dec 24 13:41:46 2012 (r244661) @@ -0,0 +1,761 @@ +/* + * This file was generated automatically from PDF file by mkiomuxreg_imx51.rb + * + */ + +/*- + * Copyright (c) 2012 The FreeBSD Foundation + * All rights reserved. + * + * Portions of this software were developed by Oleksandr Rybalko + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _IMX51_IOMUXREG_H +#define _IMX51_IOMUXREG_H + +#define IOMUXC_MUX_CTL 0x001c /* multiplex control */ +#define IOMUX_CONFIG_SION (1 << 4) +#define IOMUX_CONFIG_ALT0 (0) +#define IOMUX_CONFIG_ALT1 (1) +#define IOMUX_CONFIG_ALT2 (2) +#define IOMUX_CONFIG_ALT3 (3) +#define IOMUX_CONFIG_ALT4 (4) +#define IOMUX_CONFIG_ALT5 (5) +#define IOMUX_CONFIG_ALT6 (6) +#define IOMUX_CONFIG_ALT7 (7) +#define IOMUXC_PAD_CTL 0x03f0 /* pad control */ +#define PAD_CTL_HVE (1 << 13) +#define PAD_CTL_DDR_INPUT (1 << 9) +#define PAD_CTL_HYS (1 << 8) +#define PAD_CTL_PKE (1 << 7) +#define PAD_CTL_PUE (1 << 6) +#define PAD_CTL_PULL (PAD_CTL_PKE|PAD_CTL_PUE) +#define PAD_CTL_KEEPER (PAD_CTL_PKE|0) +#define PAD_CTL_PUS_100K_PD (0x0 << 4) +#define PAD_CTL_PUS_47K_PU (0x1 << 4) +#define PAD_CTL_PUS_100K_PU (0x2 << 4) +#define PAD_CTL_PUS_22K_PU (0x3 << 4) +#define PAD_CTL_ODE (1 << 3) /* opendrain */ +#define PAD_CTL_DSE_LOW (0x0 << 1) +#define PAD_CTL_DSE_MID (0x1 << 1) +#define PAD_CTL_DSE_HIGH (0x2 << 1) +#define PAD_CTL_DSE_MAX (0x3 << 1) +#define PAD_CTL_SRE (1 << 0) +#define IOMUXC_INPUT_CTL 0x08c4 /* input control */ +#define INPUT_DAISY_0 0 +#define INPUT_DAISY_1 1 +#define INPUT_DAISY_2 2 +#define INPUT_DAISY_3 3 +#define INPUT_DAISY_4 4 +#define INPUT_DAISY_5 5 +#define INPUT_DAISY_6 6 +#define INPUT_DAISY_7 7 + +/* + * IOMUX index + */ +#define IOMUX_PIN_TO_MUX_ADDRESS(pin) (((pin) >> 16) & 0xffff) +#define IOMUX_PIN_TO_PAD_ADDRESS(pin) (((pin) >> 0) & 0xffff) + +#define IOMUX_PIN(mux_adr, pad_adr) \ + (((mux_adr) << 16) | (((pad_adr) << 0))) +#define IOMUX_MUX_NONE 0xffff +#define IOMUX_PAD_NONE 0xffff + +/* register offset address */ +#define IOMUXC_GPR0 0x0000 +#define IOMUXC_GPR1 0x0004 +#define IOMUXC_OBSERVE_MUX_0 0x0008 +#define IOMUXC_OBSERVE_MUX_1 0x000c +#define IOMUXC_OBSERVE_MUX_2 0x0010 +#define IOMUXC_OBSERVE_MUX_3 0x0014 +#define IOMUXC_OBSERVE_MUX_4 0x0018 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA0 0x001c +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA1 0x0020 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA2 0x0024 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA3 0x0028 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA4 0x002c +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA5 0x0030 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA6 0x0034 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA7 0x0038 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA8 0x003c +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA9 0x0040 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA10 0x0044 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA11 0x0048 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA12 0x004c +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA13 0x0050 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA14 0x0054 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DA15 0x0058 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D16 0x005c +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D17 0x0060 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D18 0x0064 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D19 0x0068 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D20 0x006c +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D21 0x0070 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D22 0x0074 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D23 0x0078 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D24 0x007c +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D25 0x0080 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D26 0x0084 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D27 0x0088 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D28 0x008c +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D29 0x0090 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D30 0x0094 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_D31 0x0098 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A16 0x009c +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A17 0x00a0 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A18 0x00a4 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A19 0x00a8 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A20 0x00ac +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A21 0x00b0 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A22 0x00b4 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A23 0x00b8 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A24 0x00bc +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A25 0x00c0 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A26 0x00c4 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_A27 0x00c8 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_EB0 0x00cc +#define IOMUXC_SW_MUX_CTL_PAD_EIM_EB1 0x00d0 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_EB2 0x00d4 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_EB3 0x00d8 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_OE 0x00dc +#define IOMUXC_SW_MUX_CTL_PAD_EIM_CS0 0x00e0 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_CS1 0x00e4 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_CS2 0x00e8 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_CS3 0x00ec +#define IOMUXC_SW_MUX_CTL_PAD_EIM_CS4 0x00f0 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_CS5 0x00f4 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_DTACK 0x00f8 +#define IOMUXC_SW_MUX_CTL_PAD_EIM_LBA 0x00fc +#define IOMUXC_SW_MUX_CTL_PAD_EIM_CRE 0x0100 +#define IOMUXC_SW_MUX_CTL_PAD_DRAM_CS1 0x0104 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_WE_B 0x0108 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_RE_B 0x010c +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_ALE 0x0110 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_CLE 0x0114 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_WP_B 0x0118 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_RB0 0x011c +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_RB1 0x0120 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_RB2 0x0124 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_RB3 0x0128 +#define IOMUXC_SW_MUX_CTL_PAD_GPIO_NAND 0x012c +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_CS0 0x0130 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_CS1 0x0134 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_CS2 0x0138 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_CS3 0x013c +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_CS4 0x0140 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_CS5 0x0144 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_CS6 0x0148 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_CS7 0x014c +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_RDY_INT 0x0150 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D15 0x0154 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D14 0x0158 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D13 0x015c +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D12 0x0160 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D11 0x0164 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D10 0x0168 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D9 0x016c +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D8 0x0170 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D7 0x0174 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D6 0x0178 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D5 0x017c +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D4 0x0180 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D3 0x0184 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D2 0x0188 +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D1 0x018c +#define IOMUXC_SW_MUX_CTL_PAD_NANDF_D0 0x0190 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D8 0x0194 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D9 0x0198 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D10 0x019c +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D11 0x01a0 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D12 0x01a4 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D13 0x01a8 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D14 0x01ac +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D15 0x01b0 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D16 0x01b4 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D17 0x01b8 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D18 0x01bc +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_D19 0x01c0 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_VSYNC 0x01c4 +#define IOMUXC_SW_MUX_CTL_PAD_CSI1_HSYNC 0x01c8 +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_D12 0x01cc +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_D13 0x01d0 +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_D14 0x01d4 +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_D15 0x01d8 +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_D16 0x01dc +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_D17 0x01e0 +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_D18 0x01e4 +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_D19 0x01e8 +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_VSYNC 0x01ec +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_HSYNC 0x01f0 +#define IOMUXC_SW_MUX_CTL_PAD_CSI2_PIXCLK 0x01f4 +#define IOMUXC_SW_MUX_CTL_PAD_I2C1_CLK 0x01f8 +#define IOMUXC_SW_MUX_CTL_PAD_I2C1_DAT 0x01fc +#define IOMUXC_SW_MUX_CTL_PAD_AUD3_BB_TXD 0x0200 +#define IOMUXC_SW_MUX_CTL_PAD_AUD3_BB_RXD 0x0204 +#define IOMUXC_SW_MUX_CTL_PAD_AUD3_BB_CK 0x0208 +#define IOMUXC_SW_MUX_CTL_PAD_AUD3_BB_FS 0x020c +#define IOMUXC_SW_MUX_CTL_PAD_CSPI1_MOSI 0x0210 +#define IOMUXC_SW_MUX_CTL_PAD_CSPI1_MISO 0x0214 +#define IOMUXC_SW_MUX_CTL_PAD_CSPI1_SS0 0x0218 +#define IOMUXC_SW_MUX_CTL_PAD_CSPI1_SS1 0x021c +#define IOMUXC_SW_MUX_CTL_PAD_CSPI1_RDY 0x0220 +#define IOMUXC_SW_MUX_CTL_PAD_CSPI1_SCLK 0x0224 +#define IOMUXC_SW_MUX_CTL_PAD_UART1_RXD 0x0228 +#define IOMUXC_SW_MUX_CTL_PAD_UART1_TXD 0x022c +#define IOMUXC_SW_MUX_CTL_PAD_UART1_RTS 0x0230 +#define IOMUXC_SW_MUX_CTL_PAD_UART1_CTS 0x0234 +#define IOMUXC_SW_MUX_CTL_PAD_UART2_RXD 0x0238 +#define IOMUXC_SW_MUX_CTL_PAD_UART2_TXD 0x023c +#define IOMUXC_SW_MUX_CTL_PAD_UART3_RXD 0x0240 +#define IOMUXC_SW_MUX_CTL_PAD_UART3_TXD 0x0244 +#define IOMUXC_SW_MUX_CTL_PAD_OWIRE_LINE 0x0248 +#define IOMUXC_SW_MUX_CTL_PAD_KEY_ROW0 0x024c +#define IOMUXC_SW_MUX_CTL_PAD_KEY_ROW1 0x0250 +#define IOMUXC_SW_MUX_CTL_PAD_KEY_ROW2 0x0254 +#define IOMUXC_SW_MUX_CTL_PAD_KEY_ROW3 0x0258 +#define IOMUXC_SW_MUX_CTL_PAD_KEY_COL0 0x025c +#define IOMUXC_SW_MUX_CTL_PAD_KEY_COL1 0x0260 +#define IOMUXC_SW_MUX_CTL_PAD_KEY_COL2 0x0264 +#define IOMUXC_SW_MUX_CTL_PAD_KEY_COL3 0x0268 +#define IOMUXC_SW_MUX_CTL_PAD_KEY_COL4 0x026c +#define IOMUXC_SW_MUX_CTL_PAD_KEY_COL5 0x0270 +#define IOMUXC_SW_MUX_CTL_PAD_JTAG_DE_B 0x0274 +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_CLK 0x0278 +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_DIR 0x027c +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_STP 0x0280 +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_NXT 0x0284 +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_DATA0 0x0288 +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_DATA1 0x028c +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_DATA2 0x0290 +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_DATA3 0x0294 +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_DATA4 0x0298 +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_DATA5 0x029c +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_DATA6 0x02a0 +#define IOMUXC_SW_MUX_CTL_PAD_USBH1_DATA7 0x02a4 +#define IOMUXC_SW_MUX_CTL_PAD_DI1_PIN11 0x02a8 +#define IOMUXC_SW_MUX_CTL_PAD_DI1_PIN12 0x02ac +#define IOMUXC_SW_MUX_CTL_PAD_DI1_PIN13 0x02b0 +#define IOMUXC_SW_MUX_CTL_PAD_DI1_D0_CS 0x02b4 +#define IOMUXC_SW_MUX_CTL_PAD_DI1_D1_CS 0x02b8 +#define IOMUXC_SW_MUX_CTL_PAD_DISPB2_SER_DIN 0x02bc +#define IOMUXC_SW_MUX_CTL_PAD_DISPB2_SER_DIO 0x02c0 +#define IOMUXC_SW_MUX_CTL_PAD_DISPB2_SER_CLK 0x02c4 +#define IOMUXC_SW_MUX_CTL_PAD_DISPB2_SER_RS 0x02c8 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT0 0x02cc +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT1 0x02d0 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT2 0x02d4 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT3 0x02d8 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT4 0x02dc +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT5 0x02e0 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT6 0x02e4 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT7 0x02e8 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT8 0x02ec +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT9 0x02f0 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT10 0x02f4 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT11 0x02f8 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT12 0x02fc +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT13 0x0300 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT14 0x0304 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT15 0x0308 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT16 0x030c +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT17 0x0310 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT18 0x0314 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT19 0x0318 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT20 0x031c +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT21 0x0320 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT22 0x0324 +#define IOMUXC_SW_MUX_CTL_PAD_DISP1_DAT23 0x0328 +#define IOMUXC_SW_MUX_CTL_PAD_DI1_PIN3 0x032c +#define IOMUXC_SW_MUX_CTL_PAD_DI1_PIN2 0x0330 +#define IOMUXC_SW_MUX_CTL_PAD_DI_GP1 0x0334 +#define IOMUXC_SW_MUX_CTL_PAD_DI_GP2 0x0338 +#define IOMUXC_SW_MUX_CTL_PAD_DI_GP3 0x033c +#define IOMUXC_SW_MUX_CTL_PAD_DI2_PIN4 0x0340 +#define IOMUXC_SW_MUX_CTL_PAD_DI2_PIN2 0x0344 +#define IOMUXC_SW_MUX_CTL_PAD_DI2_PIN3 0x0348 +#define IOMUXC_SW_MUX_CTL_PAD_DI2_DISP_CLK 0x034c +#define IOMUXC_SW_MUX_CTL_PAD_DI_GP4 0x0350 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT0 0x0354 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT1 0x0358 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT2 0x035c +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT3 0x0360 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT4 0x0364 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT5 0x0368 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT6 0x036c +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT7 0x0370 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT8 0x0374 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT9 0x0378 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT10 0x037c +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT11 0x0380 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT12 0x0384 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT13 0x0388 +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT14 0x038c +#define IOMUXC_SW_MUX_CTL_PAD_DISP2_DAT15 0x0390 +#define IOMUXC_SW_MUX_CTL_PAD_SD1_CMD 0x0394 +#define IOMUXC_SW_MUX_CTL_PAD_SD1_CLK 0x0398 +#define IOMUXC_SW_MUX_CTL_PAD_SD1_DATA0 0x039c +#define IOMUXC_SW_MUX_CTL_PAD_SD1_DATA1 0x03a0 +#define IOMUXC_SW_MUX_CTL_PAD_SD1_DATA2 0x03a4 +#define IOMUXC_SW_MUX_CTL_PAD_SD1_DATA3 0x03a8 +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_0 0x03ac +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_1 0x03b0 +#define IOMUXC_SW_MUX_CTL_PAD_SD2_CMD 0x03b4 +#define IOMUXC_SW_MUX_CTL_PAD_SD2_CLK 0x03b8 +#define IOMUXC_SW_MUX_CTL_PAD_SD2_DATA0 0x03bc +#define IOMUXC_SW_MUX_CTL_PAD_SD2_DATA1 0x03c0 +#define IOMUXC_SW_MUX_CTL_PAD_SD2_DATA2 0x03c4 +#define IOMUXC_SW_MUX_CTL_PAD_SD2_DATA3 0x03c8 +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_2 0x03cc +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_3 0x03d0 +#define IOMUXC_SW_MUX_CTL_PAD_PMIC_INT_REQ 0x03d4 +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_4 0x03d8 +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_5 0x03dc +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_6 0x03e0 +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_7 0x03e4 +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_8 0x03e8 +#define IOMUXC_SW_MUX_CTL_PAD_GPIO1_9 0x03ec +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D16 0x03f0 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D17 0x03f4 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D18 0x03f8 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D19 0x03fc +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D20 0x0400 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D21 0x0404 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D22 0x0408 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D23 0x040c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D24 0x0410 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D25 0x0414 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D26 0x0418 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D27 0x041c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D28 0x0420 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D29 0x0424 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D30 0x0428 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_D31 0x042c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A16 0x0430 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A17 0x0434 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A18 0x0438 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A19 0x043c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A20 0x0440 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A21 0x0444 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A22 0x0448 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A23 0x044c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A24 0x0450 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A25 0x0454 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A26 0x0458 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_A27 0x045c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_EB0 0x0460 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_EB1 0x0464 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_EB2 0x0468 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_EB3 0x046c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_OE 0x0470 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_CS0 0x0474 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_CS1 0x0478 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_CS2 0x047c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_CS3 0x0480 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_CS4 0x0484 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_CS5 0x0488 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_DTACK 0x048c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_WAIT 0x0490 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_LBA 0x0494 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_BCLK 0x0498 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_RW 0x049c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_CRE 0x04a0 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_RAS 0x04a4 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_CAS 0x04a8 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_SDWE 0x04ac +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCKE0 0x04b0 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCKE1 0x04b4 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK 0x04b8 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0 0x04bc +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS1 0x04c0 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS2 0x04c4 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS3 0x04c8 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_CS0 0x04cc +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_CS1 0x04d0 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM0 0x04d4 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM1 0x04d8 +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM2 0x04dc +#define IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM3 0x04e0 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_WE_B 0x04e4 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_RE_B 0x04e8 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_ALE 0x04ec +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_CLE 0x04f0 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_WP_B 0x04f4 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_RB0 0x04f8 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_RB1 0x04fc +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_RB2 0x0500 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_RB3 0x0504 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_SDBA2 0x0508 +#define IOMUXC_SW_PAD_CTL_PAD_EIM_SDODT1 0x050c +#define IOMUXC_SW_PAD_CTL_PAD_EIM_SDODT0 0x0510 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO_NAND 0x0514 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_CS0 0x0518 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_CS1 0x051c +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_CS2 0x0520 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_CS3 0x0524 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_CS4 0x0528 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_CS5 0x052c +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_CS6 0x0530 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_CS7 0x0534 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_RDY_INT 0x0538 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D15 0x053c +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D14 0x0540 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D13 0x0544 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D12 0x0548 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D11 0x054c +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D10 0x0550 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D9 0x0554 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D8 0x0558 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D7 0x055c +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D6 0x0560 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D5 0x0564 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D4 0x0568 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D3 0x056c +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D2 0x0570 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D1 0x0574 +#define IOMUXC_SW_PAD_CTL_PAD_NANDF_D0 0x0578 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D8 0x057c +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D9 0x0580 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D10 0x0584 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D11 0x0588 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D12 0x058c +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D13 0x0590 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D14 0x0594 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D15 0x0598 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D16 0x059c +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D17 0x05a0 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D18 0x05a4 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_D19 0x05a8 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_VSYNC 0x05ac +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_HSYNC 0x05b0 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_PIXCLK 0x05b4 +#define IOMUXC_SW_PAD_CTL_PAD_CSI1_MCLK 0x05b8 +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_D12 0x05bc +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_D13 0x05c0 +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_D14 0x05c4 +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_D15 0x05c8 +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_D16 0x05cc +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_D17 0x05d0 +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_D18 0x05d4 +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_D19 0x05d8 +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_VSYNC 0x05dc +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_HSYNC 0x05e0 +#define IOMUXC_SW_PAD_CTL_PAD_CSI2_PIXCLK 0x05e4 +#define IOMUXC_SW_PAD_CTL_PAD_I2C1_CLK 0x05e8 +#define IOMUXC_SW_PAD_CTL_PAD_I2C1_DAT 0x05ec +#define IOMUXC_SW_PAD_CTL_PAD_AUD3_BB_TXD 0x05f0 +#define IOMUXC_SW_PAD_CTL_PAD_AUD3_BB_RXD 0x05f4 +#define IOMUXC_SW_PAD_CTL_PAD_AUD3_BB_CK 0x05f8 +#define IOMUXC_SW_PAD_CTL_PAD_AUD3_BB_FS 0x05fc +#define IOMUXC_SW_PAD_CTL_PAD_CSPI1_MOSI 0x0600 +#define IOMUXC_SW_PAD_CTL_PAD_CSPI1_MISO 0x0604 +#define IOMUXC_SW_PAD_CTL_PAD_CSPI1_SS0 0x0608 +#define IOMUXC_SW_PAD_CTL_PAD_CSPI1_SS1 0x060c +#define IOMUXC_SW_PAD_CTL_PAD_CSPI1_RDY 0x0610 +#define IOMUXC_SW_PAD_CTL_PAD_CSPI1_SCLK 0x0614 +#define IOMUXC_SW_PAD_CTL_PAD_UART1_RXD 0x0618 +#define IOMUXC_SW_PAD_CTL_PAD_UART1_TXD 0x061c +#define IOMUXC_SW_PAD_CTL_PAD_UART1_RTS 0x0620 +#define IOMUXC_SW_PAD_CTL_PAD_UART1_CTS 0x0624 +#define IOMUXC_SW_PAD_CTL_PAD_UART2_RXD 0x0628 +#define IOMUXC_SW_PAD_CTL_PAD_UART2_TXD 0x062c +#define IOMUXC_SW_PAD_CTL_PAD_UART3_RXD 0x0630 +#define IOMUXC_SW_PAD_CTL_PAD_UART3_TXD 0x0634 +#define IOMUXC_SW_PAD_CTL_PAD_OWIRE_LINE 0x0638 +#define IOMUXC_SW_PAD_CTL_PAD_KEY_ROW0 0x063c +#define IOMUXC_SW_PAD_CTL_PAD_KEY_ROW1 0x0640 +#define IOMUXC_SW_PAD_CTL_PAD_KEY_ROW2 0x0644 +#define IOMUXC_SW_PAD_CTL_PAD_KEY_ROW3 0x0648 +#define IOMUXC_SW_PAD_CTL_PAD_KEY_COL0 0x064c +#define IOMUXC_SW_PAD_CTL_PAD_KEY_COL1 0x0650 +#define IOMUXC_SW_PAD_CTL_PAD_KEY_COL2 0x0654 +#define IOMUXC_SW_PAD_CTL_PAD_KEY_COL3 0x0658 +#define IOMUXC_SW_PAD_CTL_PAD_KEY_COL4 0x065c +#define IOMUXC_SW_PAD_CTL_PAD_KEY_COL5 0x0660 +#define IOMUXC_SW_PAD_CTL_PAD_JTAG_TCK 0x0664 +#define IOMUXC_SW_PAD_CTL_PAD_JTAG_TMS 0x0668 +#define IOMUXC_SW_PAD_CTL_PAD_JTAG_TDI 0x066c +#define IOMUXC_SW_PAD_CTL_PAD_JTAG_TRSTB 0x0670 +#define IOMUXC_SW_PAD_CTL_PAD_JTAG_MOD 0x0674 +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_CLK 0x0678 +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_DIR 0x067c +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_STP 0x0680 +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_NXT 0x0684 +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_DATA0 0x0688 +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_DATA1 0x068c +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_DATA2 0x0690 +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_DATA3 0x0694 +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_DATA4 0x0698 +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_DATA5 0x069c +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_DATA6 0x06a0 +#define IOMUXC_SW_PAD_CTL_PAD_USBH1_DATA7 0x06a4 +#define IOMUXC_SW_PAD_CTL_PAD_DI1_PIN11 0x06a8 +#define IOMUXC_SW_PAD_CTL_PAD_DI1_PIN12 0x06ac +#define IOMUXC_SW_PAD_CTL_PAD_DI1_PIN13 0x06b0 +#define IOMUXC_SW_PAD_CTL_PAD_DI1_D0_CS 0x06b4 +#define IOMUXC_SW_PAD_CTL_PAD_DI1_D1_CS 0x06b8 +#define IOMUXC_SW_PAD_CTL_PAD_DISPB2_SER_DIN 0x06bc +#define IOMUXC_SW_PAD_CTL_PAD_DISPB2_SER_DIO 0x06c0 +#define IOMUXC_SW_PAD_CTL_PAD_DISPB2_SER_CLK 0x06c4 +#define IOMUXC_SW_PAD_CTL_PAD_DISPB2_SER_RS 0x06c8 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT0 0x06cc +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT1 0x06d0 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT2 0x06d4 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT3 0x06d8 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT4 0x06dc +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT5 0x06e0 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT6 0x06e4 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT7 0x06e8 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT8 0x06ec +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT9 0x06f0 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT10 0x06f4 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT11 0x06f8 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT12 0x06fc +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT13 0x0700 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT14 0x0704 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT15 0x0708 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT16 0x070c +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT17 0x0710 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT18 0x0714 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT19 0x0718 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT20 0x071c +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT21 0x0720 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT22 0x0724 +#define IOMUXC_SW_PAD_CTL_PAD_DISP1_DAT23 0x0728 +#define IOMUXC_SW_PAD_CTL_PAD_DI1_PIN3 0x072c +#define IOMUXC_SW_PAD_CTL_PAD_DI1_DISP_CLK 0x0730 +#define IOMUXC_SW_PAD_CTL_PAD_DI1_PIN2 0x0734 +#define IOMUXC_SW_PAD_CTL_PAD_DI1_PIN15 0x0738 +#define IOMUXC_SW_PAD_CTL_PAD_DI_GP1 0x073c +#define IOMUXC_SW_PAD_CTL_PAD_DI_GP2 0x0740 +#define IOMUXC_SW_PAD_CTL_PAD_DI_GP3 0x0744 +#define IOMUXC_SW_PAD_CTL_PAD_DI2_PIN4 0x0748 +#define IOMUXC_SW_PAD_CTL_PAD_DI2_PIN2 0x074c +#define IOMUXC_SW_PAD_CTL_PAD_DI2_PIN3 0x0750 +#define IOMUXC_SW_PAD_CTL_PAD_DI2_DISP_CLK 0x0754 +#define IOMUXC_SW_PAD_CTL_PAD_DI_GP4 0x0758 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT0 0x075c +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT1 0x0760 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT2 0x0764 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT3 0x0768 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT4 0x076c +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT5 0x0770 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT6 0x0774 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT7 0x0778 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT8 0x077c +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT9 0x0780 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT10 0x0784 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT11 0x0788 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT12 0x078c +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT13 0x0790 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT14 0x0794 +#define IOMUXC_SW_PAD_CTL_PAD_DISP2_DAT15 0x0798 +#define IOMUXC_SW_PAD_CTL_PAD_SD1_CMD 0x079c +#define IOMUXC_SW_PAD_CTL_PAD_SD1_CLK 0x07a0 +#define IOMUXC_SW_PAD_CTL_PAD_SD1_DATA0 0x07a4 +#define IOMUXC_SW_PAD_CTL_PAD_SD1_DATA1 0x07a8 +#define IOMUXC_SW_PAD_CTL_PAD_SD1_DATA2 0x07ac +#define IOMUXC_SW_PAD_CTL_PAD_SD1_DATA3 0x07b0 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_0 0x07b4 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_1 0x07b8 +#define IOMUXC_SW_PAD_CTL_PAD_SD2_CMD 0x07bc +#define IOMUXC_SW_PAD_CTL_PAD_SD2_CLK 0x07c0 +#define IOMUXC_SW_PAD_CTL_PAD_SD2_DATA0 0x07c4 +#define IOMUXC_SW_PAD_CTL_PAD_SD2_DATA1 0x07c8 +#define IOMUXC_SW_PAD_CTL_PAD_SD2_DATA2 0x07cc +#define IOMUXC_SW_PAD_CTL_PAD_SD2_DATA3 0x07d0 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_2 0x07d4 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_3 0x07d8 +#define IOMUXC_SW_PAD_CTL_PAD_RESET_IN_B 0x07dc +#define IOMUXC_SW_PAD_CTL_PAD_POR_B 0x07e0 +#define IOMUXC_SW_PAD_CTL_PAD_BOOT_MODE1 0x07e4 +#define IOMUXC_SW_PAD_CTL_PAD_BOOT_MODE0 0x07e8 +#define IOMUXC_SW_PAD_CTL_PAD_PMIC_RDY 0x07ec +#define IOMUXC_SW_PAD_CTL_PAD_CKIL 0x07f0 +#define IOMUXC_SW_PAD_CTL_PAD_PMIC_STBY_REQ 0x07f4 +#define IOMUXC_SW_PAD_CTL_PAD_PMIC_ON_REQ 0x07f8 +#define IOMUXC_SW_PAD_CTL_PAD_PMIC_INT_REQ 0x07fc +#define IOMUXC_SW_PAD_CTL_PAD_CLK_SS 0x0800 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_4 0x0804 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_5 0x0808 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_6 0x080c +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_7 0x0810 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_8 0x0814 +#define IOMUXC_SW_PAD_CTL_PAD_GPIO1_9 0x0818 +#define IOMUXC_SW_PAD_CTL_GRP_CSI2_PKE0 0x081c +#define IOMUXC_SW_PAD_CTL_GRP_DDRPKS 0x0820 +#define IOMUXC_SW_PAD_CTL_GRP_EIM_SR1 0x0824 +#define IOMUXC_SW_PAD_CTL_GRP_DISP2_PKE0 0x0828 +#define IOMUXC_SW_PAD_CTL_GRP_DRAM_B4 0x082c +#define IOMUXC_SW_PAD_CTL_GRP_INDDR 0x0830 +#define IOMUXC_SW_PAD_CTL_GRP_EIM_SR2 0x0834 +#define IOMUXC_SW_PAD_CTL_GRP_PKEDDR 0x0838 +#define IOMUXC_SW_PAD_CTL_GRP_DDR_A0 0x083c +#define IOMUXC_SW_PAD_CTL_GRP_EMI_PKE0 0x0840 +#define IOMUXC_SW_PAD_CTL_GRP_EIM_SR3 0x0844 +#define IOMUXC_SW_PAD_CTL_GRP_DDR_A1 0x0848 +#define IOMUXC_SW_PAD_CTL_GRP_DDRAPUS 0x084c +#define IOMUXC_SW_PAD_CTL_GRP_EIM_SR4 0x0850 +#define IOMUXC_SW_PAD_CTL_GRP_EMI_SR5 0x0854 +#define IOMUXC_SW_PAD_CTL_GRP_EMI_SR6 0x0858 +#define IOMUXC_SW_PAD_CTL_GRP_HYSDDR0 0x085c +#define IOMUXC_SW_PAD_CTL_GRP_CSI1_PKE0 0x0860 +#define IOMUXC_SW_PAD_CTL_GRP_HYSDDR1 0x0864 +#define IOMUXC_SW_PAD_CTL_GRP_DISP1_PKE0 0x0868 +#define IOMUXC_SW_PAD_CTL_GRP_HYSDDR2 0x086c +#define IOMUXC_SW_PAD_CTL_GRP_HVDDR 0x0870 +#define IOMUXC_SW_PAD_CTL_GRP_HYSDDR3 0x0874 +#define IOMUXC_SW_PAD_CTL_GRP_DRAM_SR_B0 0x0878 +#define IOMUXC_SW_PAD_CTL_GRP_DDRAPKS 0x087c +#define IOMUXC_SW_PAD_CTL_GRP_DRAM_SR_B1 0x0880 +#define IOMUXC_SW_PAD_CTL_GRP_DDRPUS 0x0884 +#define IOMUXC_SW_PAD_CTL_GRP_EIM_DS1 0x0888 +#define IOMUXC_SW_PAD_CTL_GRP_DRAM_SR_B2 0x088c +#define IOMUXC_SW_PAD_CTL_GRP_PKEADDR 0x0890 +#define IOMUXC_SW_PAD_CTL_GRP_EIM_DS2 0x0894 +#define IOMUXC_SW_PAD_CTL_GRP_EIM_DS3 0x0898 +#define IOMUXC_SW_PAD_CTL_GRP_DRAM_SR_B4 0x089c +#define IOMUXC_SW_PAD_CTL_GRP_INMODE1 0x08a0 +#define IOMUXC_SW_PAD_CTL_GRP_DRAM_B0 0x08a4 +#define IOMUXC_SW_PAD_CTL_GRP_EIM_DS4 0x08a8 +#define IOMUXC_SW_PAD_CTL_GRP_DRAM_B1 0x08ac +#define IOMUXC_SW_PAD_CTL_GRP_DDR_SR_A0 0x08b0 +#define IOMUXC_SW_PAD_CTL_GRP_EMI_DS5 0x08b4 +#define IOMUXC_SW_PAD_CTL_GRP_DRAM_B2 0x08b8 +#define IOMUXC_SW_PAD_CTL_GRP_DDR_SR_A1 0x08bc +#define IOMUXC_SW_PAD_CTL_GRP_EMI_DS6 0x08c0 +#define IOMUXC_AUDMUX_P4_INPUT_DA_AMX_SELECT_INPUT 0x08c4 +#define IOMUXC_AUDMUX_P4_INPUT_DB_AMX_SELECT_INPUT 0x08c8 +#define IOMUXC_AUDMUX_P4_INPUT_TXCLK_AMX_SELECT_INPUT 0x08cc +#define IOMUXC_AUDMUX_P4_INPUT_TXFS_AMX_SELECT_INPUT 0x08d0 +#define IOMUXC_AUDMUX_P5_INPUT_DA_AMX_SELECT_INPUT 0x08d4 +#define IOMUXC_AUDMUX_P5_INPUT_DB_AMX_SELECT_INPUT 0x08d8 +#define IOMUXC_AUDMUX_P5_INPUT_RXCLK_AMX_SELECT_INPUT 0x08dc +#define IOMUXC_AUDMUX_P5_INPUT_RXFS_AMX_SELECT_INPUT 0x08e0 +#define IOMUXC_AUDMUX_P5_INPUT_TXCLK_AMX_SELECT_INPUT 0x08e4 +#define IOMUXC_AUDMUX_P5_INPUT_TXFS_AMX_SELECT_INPUT 0x08e8 +#define IOMUXC_AUDMUX_P6_INPUT_DA_AMX_SELECT_INPUT 0x08ec +#define IOMUXC_AUDMUX_P6_INPUT_DB_AMX_SELECT_INPUT 0x08f0 +#define IOMUXC_AUDMUX_P6_INPUT_RXCLK_AMX_SELECT_INPUT 0x08f4 +#define IOMUXC_AUDMUX_P6_INPUT_RXFS_AMX_SELECT_INPUT 0x08f8 +#define IOMUXC_AUDMUX_P6_INPUT_TXCLK_AMX_SELECT_INPUT 0x08fc +#define IOMUXC_AUDMUX_P6_INPUT_TXFS_AMX_SELECT_INPUT 0x0900 +#define IOMUXC_CCM_IPP_DI0_CLK_SELECT_INPUT 0x0904 +#define IOMUXC_CCM_IPP_DI1_CLK_SELECT_INPUT 0x0908 +#define IOMUXC_CCM_PLL1_BYPASS_CLK_SELECT_INPUT 0x090c +#define IOMUXC_CCM_PLL2_BYPASS_CLK_SELECT_INPUT 0x0910 +#define IOMUXC_CSPI_IPP_CSPI_CLK_IN_SELECT_INPUT 0x0914 +#define IOMUXC_CSPI_IPP_IND_MISO_SELECT_INPUT 0x0918 +#define IOMUXC_CSPI_IPP_IND_MOSI_SELECT_INPUT 0x091c +#define IOMUXC_CSPI_IPP_IND_SS1_B_SELECT_INPUT 0x0920 +#define IOMUXC_CSPI_IPP_IND_SS2_B_SELECT_INPUT 0x0924 +#define IOMUXC_CSPI_IPP_IND_SS3_B_SELECT_INPUT 0x0928 +#define IOMUXC_DPLLIP1_L1T_TOG_EN_SELECT_INPUT 0x092c +#define IOMUXC_ECSPI2_IPP_IND_SS_B_1_SELECT_INPUT 0x0930 +#define IOMUXC_ECSPI2_IPP_IND_SS_B_3_SELECT_INPUT 0x0934 +#define IOMUXC_EMI_IPP_IND_RDY_INT_SELECT_INPUT 0x0938 +#define IOMUXC_ESDHC3_IPP_DAT0_IN_SELECT_INPUT 0x093c +#define IOMUXC_ESDHC3_IPP_DAT1_IN_SELECT_INPUT 0x0940 +#define IOMUXC_ESDHC3_IPP_DAT2_IN_SELECT_INPUT 0x0944 +#define IOMUXC_ESDHC3_IPP_DAT3_IN_SELECT_INPUT 0x0948 +#define IOMUXC_FEC_FEC_COL_SELECT_INPUT 0x094c +#define IOMUXC_FEC_FEC_CRS_SELECT_INPUT 0x0950 +#define IOMUXC_FEC_FEC_MDI_SELECT_INPUT 0x0954 +#define IOMUXC_FEC_FEC_RDATA_0_SELECT_INPUT 0x0958 +#define IOMUXC_FEC_FEC_RDATA_1_SELECT_INPUT 0x095c +#define IOMUXC_FEC_FEC_RDATA_2_SELECT_INPUT 0x0960 +#define IOMUXC_FEC_FEC_RDATA_3_SELECT_INPUT 0x0964 +#define IOMUXC_FEC_FEC_RX_CLK_SELECT_INPUT 0x0968 +#define IOMUXC_FEC_FEC_RX_DV_SELECT_INPUT 0x096c +#define IOMUXC_FEC_FEC_RX_ER_SELECT_INPUT 0x0970 +#define IOMUXC_FEC_FEC_TX_CLK_SELECT_INPUT 0x0974 +#define IOMUXC_GPIO3_IPP_IND_G_IN_1_SELECT_INPUT 0x0978 +#define IOMUXC_GPIO3_IPP_IND_G_IN_2_SELECT_INPUT 0x097c +#define IOMUXC_GPIO3_IPP_IND_G_IN_3_SELECT_INPUT 0x0980 +#define IOMUXC_GPIO3_IPP_IND_G_IN_4_SELECT_INPUT 0x0984 +#define IOMUXC_GPIO3_IPP_IND_G_IN_5_SELECT_INPUT 0x0988 +#define IOMUXC_GPIO3_IPP_IND_G_IN_6_SELECT_INPUT 0x098c +#define IOMUXC_GPIO3_IPP_IND_G_IN_7_SELECT_INPUT 0x0990 +#define IOMUXC_GPIO3_IPP_IND_G_IN_8_SELECT_INPUT 0x0994 +#define IOMUXC_GPIO3_IPP_IND_G_IN_12_SELECT_INPUT 0x0998 +#define IOMUXC_HSC_MIPI_MIX_PAR0_VSYNC_SELECT_INPUT 0x09a4 +#define IOMUXC_HSC_MIPI_MIX_PAR1_DI_WAIT_SELECT_INPUT 0x09a8 +#define IOMUXC_HSC_MIPI_MIX_PAR_SISG_TRIG_SELECT_INPUT 0x09ac +#define IOMUXC_I2C1_IPP_SCL_IN_SELECT_INPUT 0x09b0 +#define IOMUXC_I2C1_IPP_SDA_IN_SELECT_INPUT 0x09b4 +#define IOMUXC_I2C2_IPP_SCL_IN_SELECT_INPUT 0x09b8 +#define IOMUXC_I2C2_IPP_SDA_IN_SELECT_INPUT 0x09bc +#define IOMUXC_IPU_IPP_DI_0_IND_DISPB_SD_D_SELECT_INPUT 0x09c0 +#define IOMUXC_IPU_IPP_DI_1_IND_DISPB_SD_D_SELECT_INPUT 0x09c4 +#define IOMUXC_KPP_IPP_IND_COL_6_SELECT_INPUT 0x09c8 +#define IOMUXC_KPP_IPP_IND_COL_7_SELECT_INPUT 0x09cc +#define IOMUXC_KPP_IPP_IND_ROW_4_SELECT_INPUT 0x09d0 +#define IOMUXC_KPP_IPP_IND_ROW_5_SELECT_INPUT 0x09d4 +#define IOMUXC_KPP_IPP_IND_ROW_6_SELECT_INPUT 0x09d8 +#define IOMUXC_KPP_IPP_IND_ROW_7_SELECT_INPUT 0x09dc +#define IOMUXC_UART1_IPP_UART_RTS_B_SELECT_INPUT 0x09e0 +#define IOMUXC_UART1_IPP_UART_RXD_MUX_SELECT_INPUT 0x09e4 +#define IOMUXC_UART2_IPP_UART_RTS_B_SELECT_INPUT 0x09e8 +#define IOMUXC_UART2_IPP_UART_RXD_MUX_SELECT_INPUT 0x09ec +#define IOMUXC_UART3_IPP_UART_RTS_B_SELECT_INPUT 0x09f0 +#define IOMUXC_UART3_IPP_UART_RXD_MUX_SELECT_INPUT 0x09f4 +#define IOMUXC_USBOH3_IPP_IND_UH3_CLK_SELECT_INPUT 0x09f8 +#define IOMUXC_USBOH3_IPP_IND_UH3_DATA_0_SELECT_INPUT 0x09fc +#define IOMUXC_USBOH3_IPP_IND_UH3_DATA_1_SELECT_INPUT 0x0a00 +#define IOMUXC_USBOH3_IPP_IND_UH3_DATA_2_SELECT_INPUT 0x0a04 +#define IOMUXC_USBOH3_IPP_IND_UH3_DATA_3_SELECT_INPUT 0x0a08 +#define IOMUXC_USBOH3_IPP_IND_UH3_DATA_4_SELECT_INPUT 0x0a0c +#define IOMUXC_USBOH3_IPP_IND_UH3_DATA_5_SELECT_INPUT 0x0a10 +#define IOMUXC_USBOH3_IPP_IND_UH3_DATA_6_SELECT_INPUT 0x0a14 +#define IOMUXC_USBOH3_IPP_IND_UH3_DATA_7_SELECT_INPUT 0x0a18 +#define IOMUXC_USBOH3_IPP_IND_UH3_DIR_SELECT_INPUT 0x0a1c +#define IOMUXC_USBOH3_IPP_IND_UH3_NXT_SELECT_INPUT 0x0a20 +#define IOMUXC_USBOH3_IPP_IND_UH3_STP_SELECT_INPUT 0x0a24 + +/* MUX & PAD Control */ + +#define MUX_PIN(name) \ + IOMUX_PIN(IOMUXC_SW_MUX_CTL_PAD_##name, \ + IOMUXC_SW_PAD_CTL_PAD_##name) + +#define MUX_PIN_MUX(name) \ + IOMUX_PIN(IOMUXC_SW_MUX_CTL_PAD_##name, IOMUX_PAD_NONE) + +#define MUX_PIN_PAD(name) \ + IOMUX_PIN(IOMUX_MUX_NONE, IOMUXC_SW_PAD_CTL_PAD_##name) + +#define MUX_PIN_GRP(name) \ + IOMUX_PIN(IOMUX_MUX_NONE, IOMUXC_SW_PAD_CTL_GRP_##name) + +#define MUX_PIN_PATH(name) \ + IOMUX_PIN(IOMUXC_##name##_SELECT_INPUT, IOMUX_MUX_NONE) + +/* INPUT Control */ + +#define MUX_SELECT(name) (name##_SELECT_INPUT) + +#endif /* _IMX51_IOMUXREG_H */ Added: projects/efika_mx/sys/arm/freescale/imx/imx51_iomuxvar.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/efika_mx/sys/arm/freescale/imx/imx51_iomuxvar.h Mon Dec 24 13:41:46 2012 (r244661) @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 2012 The FreeBSD Foundation + * All rights reserved. + * + * Portions of this software were developed by Oleksandr Rybalko + * under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Dec 24 14:12:44 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 09ED1A59; Mon, 24 Dec 2012 14:12:44 +0000 (UTC) (envelope-from ray@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id E25C68FC0C; Mon, 24 Dec 2012 14:12:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBOEChWo020184; Mon, 24 Dec 2012 14:12:43 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBOEChoK020182; Mon, 24 Dec 2012 14:12:43 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201212241412.qBOEChoK020182@svn.freebsd.org> From: Aleksandr Rybalko Date: Mon, 24 Dec 2012 14:12:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244662 - projects/efika_mx/sys/arm/freescale/imx X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Dec 2012 14:12:44 -0000 Author: ray Date: Mon Dec 24 14:12:43 2012 New Revision: 244662 URL: http://svnweb.freebsd.org/changeset/base/244662 Log: Hide not yet item properly. Modified: projects/efika_mx/sys/arm/freescale/imx/imx51_iomux.c Modified: projects/efika_mx/sys/arm/freescale/imx/imx51_iomux.c ============================================================================== --- projects/efika_mx/sys/arm/freescale/imx/imx51_iomux.c Mon Dec 24 13:41:46 2012 (r244661) +++ projects/efika_mx/sys/arm/freescale/imx/imx51_iomux.c Mon Dec 24 14:12:43 2012 (r244662) @@ -166,7 +166,7 @@ iomux_set_pad(unsigned int pin, unsigned iomux_set_pad_sub(iomuxsc, pin, config); } -#if notyet +#ifdef notyet void iomux_set_input(unsigned int input, unsigned int config) { From owner-svn-src-projects@FreeBSD.ORG Mon Dec 24 22:24:13 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C5BB92F3; Mon, 24 Dec 2012 22:24:13 +0000 (UTC) (envelope-from ray@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id AB9C88FC14; Mon, 24 Dec 2012 22:24:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBOMODKk092343; Mon, 24 Dec 2012 22:24:13 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBOMODNj092342; Mon, 24 Dec 2012 22:24:13 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201212242224.qBOMODNj092342@svn.freebsd.org> From: Aleksandr Rybalko Date: Mon, 24 Dec 2012 22:24:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244666 - projects/efika_mx/sys/dev/fdt X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Dec 2012 22:24:13 -0000 Author: ray Date: Mon Dec 24 22:24:13 2012 New Revision: 244666 URL: http://svnweb.freebsd.org/changeset/base/244666 Log: Rise FDT max interrupts count. Sponsored by: FreeBSD Foundation Modified: projects/efika_mx/sys/dev/fdt/fdt_common.h Modified: projects/efika_mx/sys/dev/fdt/fdt_common.h ============================================================================== --- projects/efika_mx/sys/dev/fdt/fdt_common.h Mon Dec 24 21:35:48 2012 (r244665) +++ projects/efika_mx/sys/dev/fdt/fdt_common.h Mon Dec 24 22:24:13 2012 (r244666) @@ -39,7 +39,7 @@ #define FDT_MEM_REGIONS 8 -#define DI_MAX_INTR_NUM 8 +#define DI_MAX_INTR_NUM 16 struct fdt_pci_range { u_long base_pci; From owner-svn-src-projects@FreeBSD.ORG Mon Dec 24 22:26:04 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 051A3418; Mon, 24 Dec 2012 22:26:04 +0000 (UTC) (envelope-from ray@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C44948FC12; Mon, 24 Dec 2012 22:26:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBOMQ36N092625; Mon, 24 Dec 2012 22:26:03 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBOMQ34Q092621; Mon, 24 Dec 2012 22:26:03 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201212242226.qBOMQ34Q092621@svn.freebsd.org> From: Aleksandr Rybalko Date: Mon, 24 Dec 2012 22:26:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244667 - projects/efika_mx/sys/dev/fdt X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Dec 2012 22:26:04 -0000 Author: ray Date: Mon Dec 24 22:26:03 2012 New Revision: 244667 URL: http://svnweb.freebsd.org/changeset/base/244667 Log: Define attach order for FDT buses. Sponsored by: FreeBSD Foundation Modified: projects/efika_mx/sys/dev/fdt/fdtbus.c projects/efika_mx/sys/dev/fdt/simplebus.c Modified: projects/efika_mx/sys/dev/fdt/fdtbus.c ============================================================================== --- projects/efika_mx/sys/dev/fdt/fdtbus.c Mon Dec 24 22:24:13 2012 (r244666) +++ projects/efika_mx/sys/dev/fdt/fdtbus.c Mon Dec 24 22:26:03 2012 (r244667) @@ -140,7 +140,8 @@ static driver_t fdtbus_driver = { devclass_t fdtbus_devclass; -DRIVER_MODULE(fdtbus, nexus, fdtbus_driver, fdtbus_devclass, 0, 0); +EARLY_DRIVER_MODULE(fdtbus, nexus, fdtbus_driver, fdtbus_devclass, 0, 0, + BUS_PASS_BUS); static void fdtbus_identify(driver_t *driver, device_t parent) Modified: projects/efika_mx/sys/dev/fdt/simplebus.c ============================================================================== --- projects/efika_mx/sys/dev/fdt/simplebus.c Mon Dec 24 22:24:13 2012 (r244666) +++ projects/efika_mx/sys/dev/fdt/simplebus.c Mon Dec 24 22:26:03 2012 (r244667) @@ -131,8 +131,10 @@ static driver_t simplebus_driver = { devclass_t simplebus_devclass; -DRIVER_MODULE(simplebus, fdtbus, simplebus_driver, simplebus_devclass, 0, 0); -DRIVER_MODULE(simplebus, simplebus, simplebus_driver, simplebus_devclass, 0, 0); +EARLY_DRIVER_MODULE(simplebus, fdtbus, simplebus_driver, simplebus_devclass, + 0, 0, BUS_PASS_BUS); +EARLY_DRIVER_MODULE(simplebus, simplebus, simplebus_driver, simplebus_devclass, + 0, 0, BUS_PASS_BUS); static int simplebus_probe(device_t dev) From owner-svn-src-projects@FreeBSD.ORG Mon Dec 24 22:28:53 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 459DC639; Mon, 24 Dec 2012 22:28:53 +0000 (UTC) (envelope-from ray@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 2AA328FC0C; Mon, 24 Dec 2012 22:28:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBOMSrTE093128; Mon, 24 Dec 2012 22:28:53 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBOMSrcd093127; Mon, 24 Dec 2012 22:28:53 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201212242228.qBOMSrcd093127@svn.freebsd.org> From: Aleksandr Rybalko Date: Mon, 24 Dec 2012 22:28:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244668 - projects/efika_mx/sys/dev/fdt X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Dec 2012 22:28:53 -0000 Author: ray Date: Mon Dec 24 22:28:52 2012 New Revision: 244668 URL: http://svnweb.freebsd.org/changeset/base/244668 Log: Resources can be optional, so report lack of resource only if verbose. Sponsored by: FreeBSD Foundation Modified: projects/efika_mx/sys/dev/fdt/simplebus.c Modified: projects/efika_mx/sys/dev/fdt/simplebus.c ============================================================================== --- projects/efika_mx/sys/dev/fdt/simplebus.c Mon Dec 24 22:26:03 2012 (r244667) +++ projects/efika_mx/sys/dev/fdt/simplebus.c Mon Dec 24 22:28:52 2012 (r244668) @@ -259,7 +259,7 @@ simplebus_alloc_resource(device_t bus, d type = SYS_RES_MEMORY; rle = resource_list_find(&di->di_res, type, *rid); - if (rle == NULL) { + if (rle == NULL && bootverbose) { device_printf(bus, "no default resources for " "rid = %d, type = %d\n", *rid, type); return (NULL); From owner-svn-src-projects@FreeBSD.ORG Tue Dec 25 13:00:25 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2FBD8722; Tue, 25 Dec 2012 13:00:25 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 0EA428FC0A; Tue, 25 Dec 2012 13:00:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qBPD0PBG058915; Tue, 25 Dec 2012 13:00:25 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBPD0K7N058879; Tue, 25 Dec 2012 13:00:20 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201212251300.qBPD0K7N058879@svn.freebsd.org> From: Alexander Motin Date: Tue, 25 Dec 2012 13:00:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244677 - in projects/calloutng: . bin/date contrib/binutils/bfd contrib/gdb/gdb contrib/libc-vis contrib/libstdc++/include/std contrib/llvm/include/llvm/MC contrib/llvm/lib/ExecutionEn... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Dec 2012 13:00:25 -0000 Author: mav Date: Tue Dec 25 13:00:19 2012 New Revision: 244677 URL: http://svnweb.freebsd.org/changeset/base/244677 Log: MFC @ r244676 Added: projects/calloutng/contrib/libc-vis/ - copied from r244676, head/contrib/libc-vis/ projects/calloutng/contrib/mknod/ - copied from r244676, head/contrib/mknod/ projects/calloutng/contrib/mtree/ - copied from r244676, head/contrib/mtree/ projects/calloutng/lib/libc/gen/unvis-compat.c - copied unchanged from r244676, head/lib/libc/gen/unvis-compat.c projects/calloutng/lib/libnetbsd/ - copied from r244676, head/lib/libnetbsd/ projects/calloutng/lib/libstand/amd64/ - copied from r244676, head/lib/libstand/amd64/ projects/calloutng/sys/arm/arm/cpufunc_asm_arm11x6.S - copied unchanged from r244676, head/sys/arm/arm/cpufunc_asm_arm11x6.S projects/calloutng/sys/boot/ficl64/ - copied from r244676, head/sys/boot/ficl64/ projects/calloutng/sys/kern/subr_busdma_bufalloc.c - copied unchanged from r244676, head/sys/kern/subr_busdma_bufalloc.c projects/calloutng/sys/sys/busdma_bufalloc.h - copied unchanged from r244676, head/sys/sys/busdma_bufalloc.h projects/calloutng/tools/regression/usr.bin/printf/regress.zero.out - copied unchanged from r244676, head/tools/regression/usr.bin/printf/regress.zero.out projects/calloutng/usr.sbin/nmtree/ - copied from r244676, head/usr.sbin/nmtree/ Deleted: projects/calloutng/include/vis.h projects/calloutng/lib/libc/gen/unvis.3 projects/calloutng/lib/libc/gen/unvis.c projects/calloutng/lib/libc/gen/vis.3 projects/calloutng/lib/libc/gen/vis.c projects/calloutng/sys/boot/userboot/libstand/amd64/ Modified: projects/calloutng/UPDATING projects/calloutng/bin/date/netdate.c projects/calloutng/contrib/binutils/bfd/elflink.c projects/calloutng/contrib/gdb/gdb/dwarf2read.c projects/calloutng/contrib/gdb/gdb/gdbtypes.c projects/calloutng/contrib/gdb/gdb/gdbtypes.h projects/calloutng/contrib/gdb/gdb/hpread.c projects/calloutng/contrib/gdb/gdb/parse.c projects/calloutng/contrib/gdb/gdb/stabsread.c projects/calloutng/contrib/libstdc++/include/std/std_limits.h projects/calloutng/contrib/llvm/include/llvm/MC/MCExpr.h projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h projects/calloutng/contrib/llvm/lib/MC/MCExpr.cpp projects/calloutng/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h projects/calloutng/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp projects/calloutng/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td projects/calloutng/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp projects/calloutng/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp projects/calloutng/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td projects/calloutng/contrib/llvm/lib/Target/Mips/MipsJITInfo.cpp projects/calloutng/contrib/llvm/lib/Target/Mips/MipsJITInfo.h projects/calloutng/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp projects/calloutng/contrib/llvm/lib/Transforms/Scalar/SROA.cpp projects/calloutng/contrib/llvm/tools/clang/include/clang/Sema/Scope.h projects/calloutng/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/calloutng/contrib/llvm/tools/clang/lib/Basic/Version.cpp projects/calloutng/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp projects/calloutng/contrib/llvm/tools/clang/lib/Driver/ToolChains.h projects/calloutng/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/calloutng/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp projects/calloutng/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp projects/calloutng/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp projects/calloutng/contrib/xz/AUTHORS projects/calloutng/contrib/xz/ChangeLog projects/calloutng/contrib/xz/README projects/calloutng/contrib/xz/THANKS projects/calloutng/contrib/xz/po/de.po projects/calloutng/contrib/xz/po/fr.po projects/calloutng/contrib/xz/po/it.po projects/calloutng/contrib/xz/po/pl.po projects/calloutng/contrib/xz/src/common/sysdefs.h projects/calloutng/contrib/xz/src/liblzma/api/lzma/version.h projects/calloutng/contrib/xz/src/liblzma/simple/simple_coder.c projects/calloutng/contrib/xz/src/liblzma/simple/simple_private.h projects/calloutng/contrib/xz/src/xz/args.c projects/calloutng/contrib/xz/src/xz/coder.c projects/calloutng/contrib/xz/src/xz/message.c projects/calloutng/contrib/xz/src/xz/xz.1 projects/calloutng/etc/defaults/rc.conf projects/calloutng/etc/login.conf projects/calloutng/etc/newsyslog.conf projects/calloutng/etc/periodic/daily/Makefile projects/calloutng/gnu/lib/libgcc/Makefile projects/calloutng/gnu/usr.bin/binutils/as/Makefile projects/calloutng/include/Makefile projects/calloutng/lib/Makefile projects/calloutng/lib/clang/include/clang/Basic/Version.inc projects/calloutng/lib/libc/gen/Makefile.inc projects/calloutng/lib/libc/gen/Symbol.map projects/calloutng/lib/libc/gen/check_utility_compat.c projects/calloutng/lib/libc/iconv/citrus_mmap.c projects/calloutng/lib/libc/nls/msgcat.c projects/calloutng/lib/libcompiler_rt/Makefile projects/calloutng/lib/libnetgraph/sock.c projects/calloutng/release/picobsd/build/picobsd projects/calloutng/sbin/hastd/parse.y projects/calloutng/sbin/ifconfig/af_nd6.c projects/calloutng/sbin/ifconfig/ifconfig.c projects/calloutng/sbin/route/route.c projects/calloutng/sbin/savecore/savecore.8 projects/calloutng/sbin/savecore/savecore.c projects/calloutng/sbin/setkey/setkey.8 projects/calloutng/share/i18n/csmapper/Makefile.part projects/calloutng/share/man/man4/arcmsr.4 projects/calloutng/share/man/man9/lock.9 projects/calloutng/share/man/man9/make_dev.9 projects/calloutng/share/misc/committers-src.dot projects/calloutng/share/mk/bsd.lib.mk projects/calloutng/share/mk/bsd.own.mk projects/calloutng/share/mk/sys.mk projects/calloutng/sys/arm/arm/busdma_machdep-v6.c projects/calloutng/sys/arm/arm/busdma_machdep.c projects/calloutng/sys/arm/arm/cpufunc.c projects/calloutng/sys/arm/arm/elf_trampoline.c projects/calloutng/sys/arm/arm/identcpu.c projects/calloutng/sys/arm/arm/locore.S projects/calloutng/sys/arm/arm/pmap-v6.c projects/calloutng/sys/arm/arm/pmap.c projects/calloutng/sys/arm/broadcom/bcm2835/bcm2835_gpio.c projects/calloutng/sys/arm/broadcom/bcm2835/files.bcm2835 projects/calloutng/sys/arm/conf/PANDABOARD projects/calloutng/sys/arm/conf/RPI-B projects/calloutng/sys/arm/conf/VERSATILEPB projects/calloutng/sys/arm/include/armreg.h projects/calloutng/sys/arm/include/cpuconf.h projects/calloutng/sys/arm/include/cpufunc.h projects/calloutng/sys/arm/include/intr.h projects/calloutng/sys/arm/include/pmap.h projects/calloutng/sys/arm/include/vm.h projects/calloutng/sys/arm/versatile/files.versatile projects/calloutng/sys/boot/ficl/Makefile projects/calloutng/sys/boot/i386/efi/ldscript.amd64 projects/calloutng/sys/boot/userboot/libstand/Makefile projects/calloutng/sys/cam/scsi/scsi_enc_ses.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/calloutng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c projects/calloutng/sys/cddl/dev/dtrace/dtrace_debug.c projects/calloutng/sys/conf/files projects/calloutng/sys/conf/files.arm projects/calloutng/sys/conf/options.arm projects/calloutng/sys/dev/ale/if_ale.c projects/calloutng/sys/dev/arcmsr/arcmsr.c projects/calloutng/sys/dev/arcmsr/arcmsr.h projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/calloutng/sys/dev/atkbdc/psm.c projects/calloutng/sys/dev/cxgbe/t4_l2t.c projects/calloutng/sys/dev/cxgbe/t4_main.c projects/calloutng/sys/dev/ixgbe/ixgbe.c projects/calloutng/sys/dev/ixgbe/ixgbe.h projects/calloutng/sys/dev/mii/brgphy.c projects/calloutng/sys/dev/mii/miidevs projects/calloutng/sys/dev/netmap/ixgbe_netmap.h projects/calloutng/sys/dev/nvme/nvme.c projects/calloutng/sys/dev/nvme/nvme_ctrlr.c projects/calloutng/sys/dev/nvme/nvme_private.h projects/calloutng/sys/dev/nvme/nvme_test.c projects/calloutng/sys/dev/sound/usb/uaudio.c projects/calloutng/sys/dev/usb/serial/usb_serial.c projects/calloutng/sys/dev/usb/serial/usb_serial.h projects/calloutng/sys/dev/usb/storage/umass.c projects/calloutng/sys/dev/usb/storage/ustorage_fs.c projects/calloutng/sys/dev/usb/usb_busdma.c projects/calloutng/sys/dev/usb/usb_msctest.c projects/calloutng/sys/dev/usb/usb_transfer.c projects/calloutng/sys/dev/usb/usbdi.h projects/calloutng/sys/dev/usb/wlan/if_uath.c projects/calloutng/sys/dev/usb/wlan/if_uathvar.h projects/calloutng/sys/dev/usb/wlan/if_upgt.c projects/calloutng/sys/dev/usb/wlan/if_upgtvar.h projects/calloutng/sys/dev/usb/wlan/if_urtw.c projects/calloutng/sys/dev/usb/wlan/if_urtwvar.h projects/calloutng/sys/dev/wtap/if_wtap.c projects/calloutng/sys/fs/devfs/devfs_vnops.c projects/calloutng/sys/fs/ext2fs/ext2_dinode.h projects/calloutng/sys/fs/ext2fs/ext2_inode_cnv.c projects/calloutng/sys/fs/ext2fs/ext2_vfsops.c projects/calloutng/sys/fs/ext2fs/ext2fs.h projects/calloutng/sys/geom/label/g_label.c projects/calloutng/sys/kern/kern_conf.c projects/calloutng/sys/kern/kern_descrip.c projects/calloutng/sys/kern/kern_jail.c projects/calloutng/sys/kern/kern_lock.c projects/calloutng/sys/kern/kern_mutex.c projects/calloutng/sys/kern/kern_priv.c projects/calloutng/sys/kern/kern_rmlock.c projects/calloutng/sys/kern/kern_rwlock.c projects/calloutng/sys/kern/kern_sig.c projects/calloutng/sys/kern/kern_sx.c projects/calloutng/sys/kern/subr_smp.c projects/calloutng/sys/kern/subr_syscall.c projects/calloutng/sys/kern/sys_generic.c projects/calloutng/sys/kern/vfs_bio.c projects/calloutng/sys/kern/vfs_mount.c projects/calloutng/sys/kern/vfs_subr.c projects/calloutng/sys/kgssapi/gss_accept_sec_context.c projects/calloutng/sys/kgssapi/gss_acquire_cred.c projects/calloutng/sys/kgssapi/gss_canonicalize_name.c projects/calloutng/sys/kgssapi/gss_delete_sec_context.c projects/calloutng/sys/kgssapi/gss_display_status.c projects/calloutng/sys/kgssapi/gss_export_name.c projects/calloutng/sys/kgssapi/gss_impl.c projects/calloutng/sys/kgssapi/gss_import_name.c projects/calloutng/sys/kgssapi/gss_init_sec_context.c projects/calloutng/sys/kgssapi/gss_pname_to_uid.c projects/calloutng/sys/kgssapi/gss_release_cred.c projects/calloutng/sys/kgssapi/gss_release_name.c projects/calloutng/sys/kgssapi/gss_set_cred_option.c projects/calloutng/sys/kgssapi/gssapi_impl.h projects/calloutng/sys/mips/include/param.h projects/calloutng/sys/net/if_bridge.c projects/calloutng/sys/net80211/ieee80211_hostap.c projects/calloutng/sys/net80211/ieee80211_proto.c projects/calloutng/sys/netinet/in.c projects/calloutng/sys/netinet/tcp_input.c projects/calloutng/sys/netinet6/ip6_output.c projects/calloutng/sys/netinet6/ip6_var.h projects/calloutng/sys/netpfil/ipfw/ip_fw2.c projects/calloutng/sys/netpfil/ipfw/ip_fw_dynamic.c projects/calloutng/sys/netpfil/ipfw/ip_fw_log.c projects/calloutng/sys/netpfil/ipfw/ip_fw_private.h projects/calloutng/sys/netpfil/pf/pf.c projects/calloutng/sys/netpfil/pf/pf_norm.c projects/calloutng/sys/sys/file.h projects/calloutng/sys/sys/ktr.h projects/calloutng/sys/tools/vnode_if.awk projects/calloutng/sys/ufs/ffs/ffs_softdep.c projects/calloutng/sys/vm/uma_int.h projects/calloutng/sys/vm/vm.h projects/calloutng/sys/vm/vm_map.c projects/calloutng/sys/vm/vm_mmap.c projects/calloutng/sys/vm/vm_unix.c projects/calloutng/tools/build/mk/OptionalObsoleteFiles.inc projects/calloutng/tools/regression/usr.bin/printf/regress.sh projects/calloutng/tools/tools/netrate/netreceive/Makefile projects/calloutng/tools/tools/netrate/netreceive/netreceive.c projects/calloutng/usr.bin/clang/clang/clang.1 projects/calloutng/usr.bin/grep/grep.c projects/calloutng/usr.bin/grep/grep.h projects/calloutng/usr.bin/grep/util.c projects/calloutng/usr.bin/indent/indent_globs.h projects/calloutng/usr.bin/printf/printf.c projects/calloutng/usr.bin/sort/sort.c projects/calloutng/usr.bin/sort/sort.h projects/calloutng/usr.sbin/Makefile projects/calloutng/usr.sbin/acpi/acpidump/acpi.c projects/calloutng/usr.sbin/acpi/acpidump/acpidump.8 projects/calloutng/usr.sbin/bsdconfig/bsdconfig projects/calloutng/usr.sbin/bsdconfig/console/console projects/calloutng/usr.sbin/bsdconfig/console/font projects/calloutng/usr.sbin/bsdconfig/console/keymap projects/calloutng/usr.sbin/bsdconfig/console/repeat projects/calloutng/usr.sbin/bsdconfig/console/saver projects/calloutng/usr.sbin/bsdconfig/console/screenmap projects/calloutng/usr.sbin/bsdconfig/console/ttys projects/calloutng/usr.sbin/bsdconfig/diskmgmt/diskmgmt projects/calloutng/usr.sbin/bsdconfig/docsinstall/docsinstall projects/calloutng/usr.sbin/bsdconfig/dot/dot projects/calloutng/usr.sbin/bsdconfig/examples/bsdconfigrc projects/calloutng/usr.sbin/bsdconfig/mouse/disable projects/calloutng/usr.sbin/bsdconfig/mouse/enable projects/calloutng/usr.sbin/bsdconfig/mouse/flags projects/calloutng/usr.sbin/bsdconfig/mouse/mouse projects/calloutng/usr.sbin/bsdconfig/mouse/port projects/calloutng/usr.sbin/bsdconfig/mouse/type projects/calloutng/usr.sbin/bsdconfig/networking/defaultrouter projects/calloutng/usr.sbin/bsdconfig/networking/devices projects/calloutng/usr.sbin/bsdconfig/networking/hostname projects/calloutng/usr.sbin/bsdconfig/networking/nameservers projects/calloutng/usr.sbin/bsdconfig/networking/networking projects/calloutng/usr.sbin/bsdconfig/networking/share/common.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/device.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/hostname.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/ipaddr.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/media.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/netmask.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/resolv.subr projects/calloutng/usr.sbin/bsdconfig/networking/share/routing.subr projects/calloutng/usr.sbin/bsdconfig/password/password projects/calloutng/usr.sbin/bsdconfig/password/share/password.subr projects/calloutng/usr.sbin/bsdconfig/security/kern_securelevel projects/calloutng/usr.sbin/bsdconfig/security/security projects/calloutng/usr.sbin/bsdconfig/share/common.subr projects/calloutng/usr.sbin/bsdconfig/share/dialog.subr projects/calloutng/usr.sbin/bsdconfig/share/mustberoot.subr projects/calloutng/usr.sbin/bsdconfig/share/strings.subr projects/calloutng/usr.sbin/bsdconfig/share/sysrc.subr projects/calloutng/usr.sbin/bsdconfig/startup/misc projects/calloutng/usr.sbin/bsdconfig/startup/rcadd projects/calloutng/usr.sbin/bsdconfig/startup/rcconf projects/calloutng/usr.sbin/bsdconfig/startup/rcdelete projects/calloutng/usr.sbin/bsdconfig/startup/rcedit projects/calloutng/usr.sbin/bsdconfig/startup/rcvar projects/calloutng/usr.sbin/bsdconfig/startup/share/rcconf.subr projects/calloutng/usr.sbin/bsdconfig/startup/share/rcedit.subr projects/calloutng/usr.sbin/bsdconfig/startup/share/rcvar.subr projects/calloutng/usr.sbin/bsdconfig/startup/startup projects/calloutng/usr.sbin/bsdconfig/timezone/share/continents.subr projects/calloutng/usr.sbin/bsdconfig/timezone/share/countries.subr projects/calloutng/usr.sbin/bsdconfig/timezone/share/iso3166.subr projects/calloutng/usr.sbin/bsdconfig/timezone/share/menus.subr projects/calloutng/usr.sbin/bsdconfig/timezone/share/zones.subr projects/calloutng/usr.sbin/bsdconfig/timezone/timezone projects/calloutng/usr.sbin/bsdconfig/ttys/ttys projects/calloutng/usr.sbin/bsdconfig/usermgmt/groupadd projects/calloutng/usr.sbin/bsdconfig/usermgmt/groupdel projects/calloutng/usr.sbin/bsdconfig/usermgmt/groupedit projects/calloutng/usr.sbin/bsdconfig/usermgmt/groupinput projects/calloutng/usr.sbin/bsdconfig/usermgmt/share/group_input.subr projects/calloutng/usr.sbin/bsdconfig/usermgmt/share/user_input.subr projects/calloutng/usr.sbin/bsdconfig/usermgmt/useradd projects/calloutng/usr.sbin/bsdconfig/usermgmt/userdel projects/calloutng/usr.sbin/bsdconfig/usermgmt/useredit projects/calloutng/usr.sbin/bsdconfig/usermgmt/userinput projects/calloutng/usr.sbin/bsdconfig/usermgmt/usermgmt projects/calloutng/usr.sbin/gssd/Makefile projects/calloutng/usr.sbin/gssd/gssd.8 projects/calloutng/usr.sbin/gssd/gssd.c projects/calloutng/usr.sbin/mountd/mountd.c projects/calloutng/usr.sbin/mptable/mptable.c projects/calloutng/usr.sbin/mtest/mtest.c projects/calloutng/usr.sbin/ndp/ndp.8 projects/calloutng/usr.sbin/nfsd/nfsd.c projects/calloutng/usr.sbin/pkg/pkg.c projects/calloutng/usr.sbin/rpcbind/rpcbind.c projects/calloutng/usr.sbin/syslogd/syslogd.c projects/calloutng/usr.sbin/ypserv/yp_main.c Directory Properties: projects/calloutng/ (props changed) projects/calloutng/contrib/binutils/ (props changed) projects/calloutng/contrib/gdb/ (props changed) projects/calloutng/contrib/libstdc++/ (props changed) projects/calloutng/contrib/llvm/ (props changed) projects/calloutng/contrib/llvm/tools/clang/ (props changed) projects/calloutng/contrib/xz/ (props changed) projects/calloutng/gnu/lib/ (props changed) projects/calloutng/gnu/usr.bin/binutils/ (props changed) projects/calloutng/lib/libc/ (props changed) projects/calloutng/sbin/ (props changed) projects/calloutng/share/man/man4/ (props changed) projects/calloutng/sys/ (props changed) projects/calloutng/sys/boot/ (props changed) projects/calloutng/sys/boot/i386/efi/ (props changed) projects/calloutng/sys/cddl/contrib/opensolaris/ (props changed) projects/calloutng/sys/conf/ (props changed) Modified: projects/calloutng/UPDATING ============================================================================== --- projects/calloutng/UPDATING Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/UPDATING Tue Dec 25 13:00:19 2012 (r244677) @@ -26,6 +26,24 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20121223: + After switching to Clang as the default compiler some users of ZFS + on i386 systems started to experience stack overflow kernel panics. + Please consider using 'options KSTACK_PAGES=4' in such configurations. + +20121222: + GEOM_LABEL now mangles label names read from file system metadata. + Mangling affect labels containing spaces, non-printable characters, + '%' or '"'. Device names in /etc/fstab and other places may need to + be updated. + +20121217: + By default, only the 10 most recent kernel dumps will be saved. To + restore the previous behaviour (no limit on the number of kernel dumps + stored in the dump directory) add the following line to /etc/rc.conf: + + savecore_flags="" + 20121201: With the addition of auditdistd(8), a new auditdistd user is now depended on during installworld. "mergemaster -p" can be used to add Modified: projects/calloutng/bin/date/netdate.c ============================================================================== --- projects/calloutng/bin/date/netdate.c Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/bin/date/netdate.c Tue Dec 25 13:00:19 2012 (r244677) @@ -85,7 +85,7 @@ netsettime(time_t tval) dest.sin_addr.s_addr = htonl((u_long)INADDR_ANY); s = socket(AF_INET, SOCK_DGRAM, 0); if (s < 0) { - if (errno != EPROTONOSUPPORT) + if (errno != EAFNOSUPPORT) warn("timed"); return (retval = 2); } Modified: projects/calloutng/contrib/binutils/bfd/elflink.c ============================================================================== --- projects/calloutng/contrib/binutils/bfd/elflink.c Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/binutils/bfd/elflink.c Tue Dec 25 13:00:19 2012 (r244677) @@ -10584,6 +10584,7 @@ elf_gc_sweep (bfd *abfd, struct bfd_link { /* Keep debug and special sections. */ if ((o->flags & (SEC_DEBUGGING | SEC_LINKER_CREATED)) != 0 + || elf_section_data (o)->this_hdr.sh_type == SHT_NOTE || (o->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0) o->gc_mark = 1; Modified: projects/calloutng/contrib/gdb/gdb/dwarf2read.c ============================================================================== --- projects/calloutng/contrib/gdb/gdb/dwarf2read.c Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/gdb/gdb/dwarf2read.c Tue Dec 25 13:00:19 2012 (r244677) @@ -834,6 +834,8 @@ static void read_tag_const_type (struct static void read_tag_volatile_type (struct die_info *, struct dwarf2_cu *); +static void read_tag_restrict_type (struct die_info *, struct dwarf2_cu *); + static void read_tag_string_type (struct die_info *, struct dwarf2_cu *); static void read_subroutine_type (struct die_info *, struct dwarf2_cu *); @@ -3729,7 +3731,8 @@ read_tag_const_type (struct die_info *di } base_type = die_type (die, cu); - die->type = make_cv_type (1, TYPE_VOLATILE (base_type), base_type, 0); + die->type = make_cvr_type (1, TYPE_VOLATILE (base_type), + TYPE_RESTRICT (base_type), base_type, 0); } static void @@ -3743,7 +3746,23 @@ read_tag_volatile_type (struct die_info } base_type = die_type (die, cu); - die->type = make_cv_type (TYPE_CONST (base_type), 1, base_type, 0); + die->type = make_cvr_type (TYPE_CONST (base_type), 1, + TYPE_RESTRICT (base_type), base_type, 0); +} + +static void +read_tag_restrict_type (struct die_info *die, struct dwarf2_cu *cu) +{ + struct type *base_type; + + if (die->type) + { + return; + } + + base_type = die_type (die, cu); + die->type = make_cvr_type (TYPE_CONST (base_type), TYPE_VOLATILE (base_type), + 1, base_type, 0); } /* Extract all information from a DW_TAG_string_type DIE and add to @@ -6086,6 +6105,9 @@ read_type_die (struct die_info *die, str case DW_TAG_volatile_type: read_tag_volatile_type (die, cu); break; + case DW_TAG_restrict_type: + read_tag_restrict_type (die, cu); + break; case DW_TAG_string_type: read_tag_string_type (die, cu); break; Modified: projects/calloutng/contrib/gdb/gdb/gdbtypes.c ============================================================================== --- projects/calloutng/contrib/gdb/gdb/gdbtypes.c Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/gdb/gdb/gdbtypes.c Tue Dec 25 13:00:19 2012 (r244677) @@ -502,7 +502,8 @@ make_type_with_address_space (struct typ We allocate new memory if needed. */ struct type * -make_cv_type (int cnst, int voltl, struct type *type, struct type **typeptr) +make_cvr_type (int cnst, int voltl, int restrct, struct type *type, + struct type **typeptr) { struct type *ntype; /* New type */ struct type *tmp_type = type; /* tmp type */ @@ -517,6 +518,9 @@ make_cv_type (int cnst, int voltl, struc if (voltl) new_flags |= TYPE_FLAG_VOLATILE; + if (restrct) + new_flags |= TYPE_FLAG_RESTRICT; + if (typeptr && *typeptr != NULL) { /* Objfile is per-core-type. This const-qualified type had best @@ -1371,7 +1375,7 @@ struct type * check_typedef (struct type *type) { struct type *orig_type = type; - int is_const, is_volatile; + int is_const, is_volatile, is_restrict; while (TYPE_CODE (type) == TYPE_CODE_TYPEDEF) { @@ -1407,6 +1411,7 @@ check_typedef (struct type *type) is_const = TYPE_CONST (type); is_volatile = TYPE_VOLATILE (type); + is_restrict = TYPE_RESTRICT (type); /* If this is a struct/class/union with no fields, then check whether a full definition exists somewhere else. This is for systems where a @@ -1424,7 +1429,7 @@ check_typedef (struct type *type) } newtype = lookup_transparent_type (name); if (newtype) - make_cv_type (is_const, is_volatile, newtype, &type); + make_cvr_type (is_const, is_volatile, is_restrict, newtype, &type); } /* Otherwise, rely on the stub flag being set for opaque/stubbed types */ else if (TYPE_STUB (type) && !currently_reading_symtab) @@ -1442,7 +1447,8 @@ check_typedef (struct type *type) } sym = lookup_symbol (name, 0, STRUCT_DOMAIN, 0, (struct symtab **) NULL); if (sym) - make_cv_type (is_const, is_volatile, SYMBOL_TYPE (sym), &type); + make_cvr_type (is_const, is_volatile, is_restrict, SYMBOL_TYPE (sym), + &type); } if (TYPE_TARGET_STUB (type)) Modified: projects/calloutng/contrib/gdb/gdb/gdbtypes.h ============================================================================== --- projects/calloutng/contrib/gdb/gdb/gdbtypes.h Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/gdb/gdb/gdbtypes.h Tue Dec 25 13:00:19 2012 (r244677) @@ -273,6 +273,13 @@ enum type_code #define TYPE_ADDRESS_CLASS_ALL(t) (TYPE_INSTANCE_FLAGS(t) \ & TYPE_FLAG_ADDRESS_CLASS_ALL) +/* Restrict type. If this is set, the corresponding type has a + * restrict modifier. + */ + +#define TYPE_FLAG_RESTRICT (1 << 17) +#define TYPE_RESTRICT(t) (TYPE_INSTANCE_FLAGS (t) & TYPE_FLAG_RESTRICT) + /* Array bound type. */ enum array_bound_type { @@ -1099,7 +1106,8 @@ extern struct type *lookup_reference_typ extern struct type *make_reference_type (struct type *, struct type **); -extern struct type *make_cv_type (int, int, struct type *, struct type **); +extern struct type *make_cvr_type (int, int, int, struct type *, + struct type **); extern void replace_type (struct type *, struct type *); Modified: projects/calloutng/contrib/gdb/gdb/hpread.c ============================================================================== --- projects/calloutng/contrib/gdb/gdb/hpread.c Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/gdb/gdb/hpread.c Tue Dec 25 13:00:19 2012 (r244677) @@ -4939,8 +4939,9 @@ hpread_type_lookup (dnttpointer hp_type, * "m_void" modifiers? Is static_flag really needed here? * (m_static used for methods of classes, elsewhere). */ - tmp_type = make_cv_type (dn_bufp->dmodifier.m_const, + tmp_type = make_cvr_type (dn_bufp->dmodifier.m_const, dn_bufp->dmodifier.m_volatile, + 0, hpread_type_lookup (dn_bufp->dmodifier.type, objfile), 0); return tmp_type; Modified: projects/calloutng/contrib/gdb/gdb/parse.c ============================================================================== --- projects/calloutng/contrib/gdb/gdb/parse.c Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/gdb/gdb/parse.c Tue Dec 25 13:00:19 2012 (r244677) @@ -1167,13 +1167,15 @@ follow_types (struct type *follow_type) case tp_end: done = 1; if (make_const) - follow_type = make_cv_type (make_const, - TYPE_VOLATILE (follow_type), - follow_type, 0); + follow_type = make_cvr_type (make_const, + TYPE_VOLATILE (follow_type), + TYPE_RESTRICT (follow_type), + follow_type, 0); if (make_volatile) - follow_type = make_cv_type (TYPE_CONST (follow_type), - make_volatile, - follow_type, 0); + follow_type = make_cvr_type (TYPE_CONST (follow_type), + make_volatile, + TYPE_RESTRICT (follow_type), + follow_type, 0); if (make_addr_space) follow_type = make_type_with_address_space (follow_type, make_addr_space); @@ -1192,13 +1194,15 @@ follow_types (struct type *follow_type) case tp_pointer: follow_type = lookup_pointer_type (follow_type); if (make_const) - follow_type = make_cv_type (make_const, - TYPE_VOLATILE (follow_type), - follow_type, 0); + follow_type = make_cvr_type (make_const, + TYPE_VOLATILE (follow_type), + TYPE_RESTRICT (follow_type), + follow_type, 0); if (make_volatile) - follow_type = make_cv_type (TYPE_CONST (follow_type), - make_volatile, - follow_type, 0); + follow_type = make_cvr_type (TYPE_CONST (follow_type), + make_volatile, + TYPE_RESTRICT (follow_type), + follow_type, 0); if (make_addr_space) follow_type = make_type_with_address_space (follow_type, make_addr_space); @@ -1208,13 +1212,15 @@ follow_types (struct type *follow_type) case tp_reference: follow_type = lookup_reference_type (follow_type); if (make_const) - follow_type = make_cv_type (make_const, - TYPE_VOLATILE (follow_type), - follow_type, 0); + follow_type = make_cvr_type (make_const, + TYPE_VOLATILE (follow_type), + TYPE_RESTRICT (follow_type), + follow_type, 0); if (make_volatile) - follow_type = make_cv_type (TYPE_CONST (follow_type), - make_volatile, - follow_type, 0); + follow_type = make_cvr_type (TYPE_CONST (follow_type), + make_volatile, + TYPE_RESTRICT (follow_type), + follow_type, 0); if (make_addr_space) follow_type = make_type_with_address_space (follow_type, make_addr_space); Modified: projects/calloutng/contrib/gdb/gdb/stabsread.c ============================================================================== --- projects/calloutng/contrib/gdb/gdb/stabsread.c Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/gdb/gdb/stabsread.c Tue Dec 25 13:00:19 2012 (r244677) @@ -1750,13 +1750,13 @@ again: case 'k': /* Const qualifier on some type (Sun) */ type = read_type (pp, objfile); - type = make_cv_type (1, TYPE_VOLATILE (type), type, + type = make_cvr_type (1, TYPE_VOLATILE (type), TYPE_RESTRICT(type), type, dbx_lookup_type (typenums)); break; case 'B': /* Volatile qual on some type (Sun) */ type = read_type (pp, objfile); - type = make_cv_type (TYPE_CONST (type), 1, type, + type = make_cvr_type (TYPE_CONST (type), 1, TYPE_RESTRICT(type), type, dbx_lookup_type (typenums)); break; Modified: projects/calloutng/contrib/libstdc++/include/std/std_limits.h ============================================================================== --- projects/calloutng/contrib/libstdc++/include/std/std_limits.h Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/libstdc++/include/std/std_limits.h Tue Dec 25 13:00:19 2012 (r244677) @@ -134,10 +134,11 @@ #define __glibcxx_signed(T) ((T)(-1) < 0) #define __glibcxx_min(T) \ - (__glibcxx_signed (T) ? (T)1 << __glibcxx_digits (T) : (T)0) + (__glibcxx_signed (T) ? (((T)1 << (__glibcxx_digits (T) - 1)) << 1) : (T)0) #define __glibcxx_max(T) \ - (__glibcxx_signed (T) ? ((T)1 << __glibcxx_digits (T)) - 1 : ~(T)0) + (__glibcxx_signed (T) ? \ + (((((T)1 << (__glibcxx_digits (T) - 1)) - 1) << 1) + 1) : ~(T)0) #define __glibcxx_digits(T) \ (sizeof(T) * __CHAR_BIT__ - __glibcxx_signed (T)) Modified: projects/calloutng/contrib/llvm/include/llvm/MC/MCExpr.h ============================================================================== --- projects/calloutng/contrib/llvm/include/llvm/MC/MCExpr.h Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/llvm/include/llvm/MC/MCExpr.h Tue Dec 25 13:00:19 2012 (r244677) @@ -197,7 +197,11 @@ public: VK_Mips_GOT_PAGE, VK_Mips_GOT_OFST, VK_Mips_HIGHER, - VK_Mips_HIGHEST + VK_Mips_HIGHEST, + VK_Mips_GOT_HI16, + VK_Mips_GOT_LO16, + VK_Mips_CALL_HI16, + VK_Mips_CALL_LO16 }; private: Modified: projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp ============================================================================== --- projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp Tue Dec 25 11:11:26 2012 (r244676) +++ projects/calloutng/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp Tue Dec 25 13:00:19 2012 (r244677) @@ -346,7 +346,7 @@ uint8_t *RuntimeDyldImpl::createStubFunc uint32_t *StubAddr = (uint32_t*)Addr; *StubAddr = 0xe51ff004; // ldr pc,