Flattened Device Tree

Grant Likely grant.likely at secretlab.ca
Fri Jan 22 03:38:37 EST 2010

Oops, originally bcc'd the mailing list instead of cc'd.  resend.

---------- Forwarded message ----------

Hey Rafal,

A friend pointed this status update out to me on the FreeBSD mailing
list.  I'm thrilled to see that you're making progress.

I'm also working on adding Linux FDT support to the ARM architecture,
and I think we need to coordinate.  Specifically, I'd like to agree on
a common boot interface for FDT booting on ARM (and PowerPC for that

For PowerPC, I assume you're adopting the boot interface specified in
ePAPR and are using r3 to pass the FDT blob pointer (page 53 of
ePAPR).  Correct?

What are you using for the ARM boot interface?  For the experiments
performed to date, the dtb is getting passed to the kernel in a new
ATAG, but I thing ATAGs are Linux specific.  Ideally, I'd like to have
exactly one method of passing the dtb to the kernel, and I don't see
any good reason for Linux, FreeBSD, or any other OS to use different
methods.  However, I also don't want to break booting older operating
system images that don't support FDT.  The ATAG approach is nice for
Linux because it just adds an additional data item in a backwards
compatible way.



> ---------- Forwarded message ----------
> Flattened Device Tree for embedded FreeBSD
>    URL: http://wiki.FreeBSD.org/FlattenedDeviceTree
>    URL:
>    http://p4db.FreeBSD.org/changeList.cgi?FSPC=//depot/projects/fdt/...
>    Contact: Rafal Jaworowski <raj at semihalf.com>
>    The purpose of this project is to provide FreeBSD with support for the
>    Flattened Device Tree (FDT) technology, the mechanism for describing
>    computer hardware resources, which cannot be probed or self enumerated,
>    in a uniform and portable way. The primary consumers of this technology
>    are embedded FreeBSD platforms (ARM, AVR32, MIPS, PowerPC), where a lot
>    of designs are based on similar chips but have different assignment of
>    pins, memory layout, addresses bindings, interrupts routing and other
>    resources.
>    Current state highlights:
>      * Environment, supported tools
>           + Integrated device tree compiler (dtc) and libfdt into FreeBSD
>             userspace, kernel and loader build
>      * loader(8)
>           + Full support for device tree blob handling
>           + Load, traverse, modify (including add/remove) device tree
>             nodes and properties
>           + Pass the device tree blob to the kernel
>           + Both ARM and PowerPC loader(8) supported
>      * Kernel side FDT support (common)
>           + Developed OF interface for FDT-backed platforms
>           + ofw_bus I/F (and /dev/openfirm) available with FDT
>           + Integrated FDT resources representation with newbus (fdtbus
>             and simplebus drivers)
>      * PowerPC kernel (Freescale MPC85XX SOC)
>           + MPC8555CDS and MPC8572DS successfully converted to FDT
>             conventions
>      * ARM kernel (Marvell Orion, Kirkwood and Discovery SOC)
>           + Work in progress on integrating FDT infrastructure with ARM
>             platform code
>    Work on this project has been sponsored by the FreeBSD Foundation.
> Open tasks:
>     1. Complete missing pieces for PowerPC (PCI bridge driver conversion
>        to FDT).
>     2. Complete ARM support.
>     3. Merge to SVN.

Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

More information about the devicetree-discuss mailing list