Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Jul 2012 22:48:12 +0000 (UTC)
From:      Jakub Wojciech Klama <jceel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r238757 - in user/jceel/soc2012_armv6/sys/arm: arm include
Message-ID:  <201207242248.q6OMmCoU082783@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207242248.q6OMmCoU082783>