From owner-svn-src-projects@FreeBSD.ORG Wed Dec 26 14:52:40 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 9C52CD68; Wed, 26 Dec 2012 14:52:40 +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 829B08FC14; Wed, 26 Dec 2012 14:52:40 +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 qBQEqeC3085729; Wed, 26 Dec 2012 14:52:40 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qBQEqdDv085726; Wed, 26 Dec 2012 14:52:39 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201212261452.qBQEqdDv085726@svn.freebsd.org> From: Aleksandr Rybalko Date: Wed, 26 Dec 2012 14:52:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r244696 - 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: Wed, 26 Dec 2012 14:52:40 -0000 Author: ray Date: Wed Dec 26 14:52:39 2012 New Revision: 244696 URL: http://svnweb.freebsd.org/changeset/base/244696 Log: Move device mapping to fdtbus_activate_resource. Sponsored by: FreeBSD Foundation Modified: projects/efika_mx/sys/dev/fdt/fdt_common.c projects/efika_mx/sys/dev/fdt/fdtbus.c projects/efika_mx/sys/dev/fdt/simplebus.c Modified: projects/efika_mx/sys/dev/fdt/fdt_common.c ============================================================================== --- projects/efika_mx/sys/dev/fdt/fdt_common.c Wed Dec 26 13:07:17 2012 (r244695) +++ projects/efika_mx/sys/dev/fdt/fdt_common.c Wed Dec 26 14:52:39 2012 (r244696) @@ -421,12 +421,12 @@ fdt_regsize(phandle_t node, u_long *base int fdt_reg_to_rl(phandle_t node, struct resource_list *rl) { - u_long start, end, count; + u_long count; pcell_t *reg, *regptr; pcell_t addr_cells, size_cells; int tuple_size, tuples; int i, rv; - bus_space_handle_t vaddr; + bus_space_handle_t start, end; long busaddr, bussize; if (fdt_addrsize_cells(OF_parent(node), &addr_cells, &size_cells) != 0) @@ -457,14 +457,12 @@ fdt_reg_to_rl(phandle_t node, struct res /* Calculate address range relative to base. */ start += busaddr; - if (bus_space_map(fdtbus_bs_tag, start, count, 0, &vaddr) != 0) - panic("Couldn't map the device memory"); - end = vaddr + count - 1; + end = start + count - 1; - debugf("reg addr start = %lx, end = %lx, count = %lx\n", vaddr, + debugf("reg addr start = %lx, end = %lx, count = %lx\n", start, end, count); - resource_list_add(rl, SYS_RES_MEMORY, i, vaddr, end, + resource_list_add(rl, SYS_RES_MEMORY, i, start, end, count); } rv = 0; Modified: projects/efika_mx/sys/dev/fdt/fdtbus.c ============================================================================== --- projects/efika_mx/sys/dev/fdt/fdtbus.c Wed Dec 26 13:07:17 2012 (r244695) +++ projects/efika_mx/sys/dev/fdt/fdtbus.c Wed Dec 26 14:52:39 2012 (r244696) @@ -616,6 +616,16 @@ static int fdtbus_activate_resource(device_t bus, device_t child, int type, int rid, struct resource *res) { + bus_space_handle_t p; + int error; + + if (type == SYS_RES_MEMORY || type == SYS_RES_IOPORT) { + error = bus_space_map(rman_get_bustag(res), + rman_get_bushandle(res), rman_get_size(res), 0, &p); + if (error) + return (error); + rman_set_bushandle(res, p); + } return (rman_activate_resource(res)); } Modified: projects/efika_mx/sys/dev/fdt/simplebus.c ============================================================================== --- projects/efika_mx/sys/dev/fdt/simplebus.c Wed Dec 26 13:07:17 2012 (r244695) +++ projects/efika_mx/sys/dev/fdt/simplebus.c Wed Dec 26 14:52:39 2012 (r244696) @@ -185,7 +185,6 @@ simplebus_attach(device_t dev) device_printf(dev, "%s: could not process 'reg' " "property\n", di->di_ofw.obd_name); - /* XXX should unmap */ ofw_bus_gen_destroy_devinfo(&di->di_ofw); free(di, M_SIMPLEBUS); continue; @@ -195,7 +194,6 @@ simplebus_attach(device_t dev) device_printf(dev, "%s: could not process " "'interrupts' property\n", di->di_ofw.obd_name); resource_list_free(&di->di_res); - /* XXX should unmap */ ofw_bus_gen_destroy_devinfo(&di->di_ofw); free(di, M_SIMPLEBUS); continue; @@ -207,7 +205,6 @@ simplebus_attach(device_t dev) device_printf(dev, "could not add child: %s\n", di->di_ofw.obd_name); resource_list_free(&di->di_res); - /* XXX should unmap */ ofw_bus_gen_destroy_devinfo(&di->di_ofw); free(di, M_SIMPLEBUS); continue;