svn commit: r258805 - head/sys/dev/ofw

Nathan Whitehorn nwhitehorn at FreeBSD.org
Sun Dec 1 19:03:21 UTC 2013


Author: nwhitehorn
Date: Sun Dec  1 19:03:20 2013
New Revision: 258805
URL: http://svnweb.freebsd.org/changeset/base/258805

Log:
  Open Firmware mandates that certain cross-references, in particular those
  in /chosen, be ihandles. The ePAPR spec makes those cross-reference phandles,
  since FDT has no concept of ihandles. Have the OF FDT CI module interpret
  queries about ihandles as cross-reference phandles.

Modified:
  head/sys/dev/ofw/ofw_fdt.c

Modified: head/sys/dev/ofw/ofw_fdt.c
==============================================================================
--- head/sys/dev/ofw/ofw_fdt.c	Sun Dec  1 18:37:31 2013	(r258804)
+++ head/sys/dev/ofw/ofw_fdt.c	Sun Dec  1 19:03:20 2013	(r258805)
@@ -207,7 +207,8 @@ static phandle_t
 ofw_fdt_instance_to_package(ofw_t ofw, ihandle_t instance)
 {
 
-	return (-1);
+	/* Where real OF uses ihandles in the tree, FDT uses xref phandles */
+	return (OF_xref_phandle(instance));
 }
 
 /* Get the length of a property of a package. */
@@ -350,8 +351,13 @@ ofw_fdt_finddevice(ofw_t ofw, const char
 static ssize_t
 ofw_fdt_instance_to_path(ofw_t ofw, ihandle_t instance, char *buf, size_t len)
 {
+	phandle_t phandle;
 
-	return (-1);
+	phandle = OF_instance_to_package(instance);
+	if (phandle == -1)
+		return (-1);
+
+	return (OF_package_to_path(phandle, buf, len));
 }
 
 /* Return the fully qualified pathname corresponding to a package. */


More information about the svn-src-head mailing list