svn commit: r210752 - in user/nwhitehorn/ps3/dev: fdt ofw
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Mon Aug 2 12:13:03 UTC 2010
Author: nwhitehorn
Date: Mon Aug 2 12:13:02 2010
New Revision: 210752
URL: http://svn.freebsd.org/changeset/base/210752
Log:
Two more tweaks to FDT:
- fdtbus should simply fail to attach, not panic, if there is no device
tree. Note that, because of fdtbus(4), kernels containing option FDT
will not boot on machines with Open Firmware. What should eventually
happen is that the OF-related code in PPC nexus(4) should be removed
in favor of also using fdtbus on OF platforms.
- ofw_fdt returns the wrong values as error codes. 0 is in principle a
valid phandle, and -1 should be returned to indicate an error condition.
I have patched OF_finddevice() to return -1 on errors for now, but the
FDT code should eventually be systematically checked for this.
Modified:
user/nwhitehorn/ps3/dev/fdt/fdtbus.c
user/nwhitehorn/ps3/dev/ofw/ofw_fdt.c
Modified: user/nwhitehorn/ps3/dev/fdt/fdtbus.c
==============================================================================
--- user/nwhitehorn/ps3/dev/fdt/fdtbus.c Mon Aug 2 11:48:05 2010 (r210751)
+++ user/nwhitehorn/ps3/dev/fdt/fdtbus.c Mon Aug 2 12:13:02 2010 (r210752)
@@ -174,7 +174,7 @@ fdtbus_attach(device_t dev)
int error;
if ((root = OF_peer(0)) == 0)
- panic("fdtbus_attach: no root node.");
+ return (ENXIO);
sc = device_get_softc(dev);
Modified: user/nwhitehorn/ps3/dev/ofw/ofw_fdt.c
==============================================================================
--- user/nwhitehorn/ps3/dev/ofw/ofw_fdt.c Mon Aug 2 11:48:05 2010 (r210751)
+++ user/nwhitehorn/ps3/dev/ofw/ofw_fdt.c Mon Aug 2 12:13:02 2010 (r210752)
@@ -385,6 +385,8 @@ ofw_fdt_finddevice(ofw_t ofw, const char
offset = fdt_path_offset(fdtp, device);
p = (phandle_t)(uintptr_t)fdt_offset_ptr(fdtp, offset, sizeof(p));
+ if (p == 0)
+ p = -1;
return (p);
}
More information about the svn-src-user
mailing list