Date: Fri, 25 Jul 2008 09:15:35 +0100 From: Matt Sealey <matt@genesi-usa.com> To: Philip Schulz <philip.s.schulz@googlemail.com> Cc: powerpc@freebsd.org, "M. Warner Losh" <imp@bsdimp.com> Subject: Re: Device trees Message-ID: <48898BA7.8090508@genesi-usa.com> In-Reply-To: <1c66db910807240451n5c181956rfe82b2ba4e80c5ae@mail.gmail.com> References: <20080723.164741.163264646.imp@bsdimp.com> <D33D2388-8237-406D-8162-1DF9013277A2@jeamland.net> <20080723.213817.1661913390.imp@bsdimp.com> <1c66db910807240451n5c181956rfe82b2ba4e80c5ae@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Philip Schulz wrote: > > Unless I misunderstood what you guys said, I think it should be done > the other way around. > > It's my understanding that Linux always uses the FDT internally. If it > finds that it's being booted from a full Open Firmware implementation > with device tree, it will first parse the device tree and convert it > to an FDT. That way, Linux doesn't have to do any client interface > calls once it's past the device tree parsing stage. I think that's > good, see below. It would be more correct to say that both device tree implementations are parsed and pushed into a single internal device tree representation. The only difference is OpenFirmware implementations had this done anyway (since quiesce is called and the OF is killed, they need a copy of the DT) and in a flattened device tree, a text representation is compiled and this binary blob is attached to the kernel either manually or by boot firmware. I would definitely suggest a similar route; using the CIF to access the device drivers hardly ever works properly, and it's slow (horrible calling convention) and cannot support interrupts (everything must be polled, through that horrible calling convention). There is little point keeping anything but RTAS around (RTAS is important :) -- Matt Sealey <matt@genesi-usa.com> Genesi, Manager, Developer Relations
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48898BA7.8090508>