svn commit: r238757 - in user/jceel/soc2012_armv6/sys/arm: arm
include
Jakub Wojciech Klama
jceel at FreeBSD.org
Tue Jul 24 22:48:13 UTC 2012
Author: jceel
Date: Tue Jul 24 22:48:12 2012
New Revision: 238757
URL: http://svn.freebsd.org/changeset/base/238757
Log:
Make arm_process_devmap() able to map FDT device nodes which
are placed directly on root.
Modified:
user/jceel/soc2012_armv6/sys/arm/arm/machdep.c
user/jceel/soc2012_armv6/sys/arm/include/pmap.h
Modified: user/jceel/soc2012_armv6/sys/arm/arm/machdep.c
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/arm/machdep.c Tue Jul 24 22:32:03 2012 (r238756)
+++ user/jceel/soc2012_armv6/sys/arm/arm/machdep.c Tue Jul 24 22:48:12 2012 (r238757)
@@ -928,26 +928,24 @@ arm_process_devmap(struct pmap_devmap *d
if (node == -1)
goto notfound;
-
+
if ((parent = OF_parent(node)) <= 0)
goto notfound;
-
+
if (fdt_addrsize_cells(parent, &addr_cells, &size_cells))
goto notfound;
+
+ fdt_regsize(node, &start, &size);
if ((par_addr_cells = fdt_parent_addr_cells(parent)) > 2)
- goto notfound;
+ goto noparent;
nranges = fdt_read_ranges(parent, &rptr, addr_cells,
par_addr_cells, size_cells);
- if (nranges <= 0)
- goto notfound;
-
- fdt_regsize(node, &start, &size);
-
- start += fdt_ranges_lookup(ranges, nranges, start, size);
-
+ if (nranges > 0)
+ start += fdt_ranges_lookup(ranges, nranges, start, size);
+noparent:
entry->pd_pa = rounddown(start, PAGE_SIZE);
entry->pd_size = roundup(size, PAGE_SIZE);
Modified: user/jceel/soc2012_armv6/sys/arm/include/pmap.h
==============================================================================
--- user/jceel/soc2012_armv6/sys/arm/include/pmap.h Tue Jul 24 22:32:03 2012 (r238756)
+++ user/jceel/soc2012_armv6/sys/arm/include/pmap.h Tue Jul 24 22:48:12 2012 (r238757)
@@ -637,9 +637,12 @@ struct pmap_devmap {
int pd_cache; /* cache attributes */
};
-#define DEVMAP_FDT(_name, _prot, _cache) {_name, 0, 0, 0, _prot, _cache}
-#define DEVMAP_ENTRY(_pa, _size, _prot, _cache) {NULL, 0, _pa, _size, _prot, _cache}
-#define DEVMAP_END {NULL, 0, 0, 0, 0, 0}
+#define DEVMAP_FDT(_name, _prot, _cache) \
+ {_name, 0, 0, 0, _prot, _cache}
+#define DEVMAP_ENTRY(_pa, _size, _prot, _cache) \
+ {NULL, 0, _pa, _size, _prot, _cache}
+#define DEVMAP_END\
+ {NULL, 0, 0, 0, 0, 0}
const struct pmap_devmap *pmap_devmap_find_pa(vm_paddr_t, vm_size_t);
const struct pmap_devmap *pmap_devmap_find_va(vm_offset_t, vm_size_t);
More information about the svn-src-user
mailing list