[sorry if this is the wrong list, please direct me to the right one as needed]
I'm trying to get my head wrapped around FDT to understand how UEFI firmware can produce this (and possibly use it internally) and pass it to the OS.
I've been trying to find the authoritative specification describing DT and FDT. My experience searching resulted in a lot of dead links. Is the spec the ePAPR specification? How does this specification get updated to provide compatibility or enhancements that the current spec does not address like ARM architecture additions?
Also is there a central registry, if any, of strings for vendors or compatible hardware? For example if I have a property 'compatible = "hp,widget123";' who determines whether 'hp' standard for Hewlett-Packard or Henry's Pickles? Along the same lines if there is a standard interface like a "gic" where is the spec/document describing what a "gic" is and how is it updated?
Sorry for the newbie DT questions... I guess I've been spoiled by the UEFI spec providing all the information I've needed in the past in once place. :)
Thanks,
Eugene
On Tue, Sep 20, 2011 at 05:31:52PM +0000, Cohen, Eugene wrote:
[sorry if this is the wrong list, please direct me to the right one as needed]
I'm trying to get my head wrapped around FDT to understand how UEFI firmware can produce this (and possibly use it internally) and pass it to the OS.
I've been trying to find the authoritative specification describing DT and FDT. My experience searching resulted in a lot of dead links. Is the spec the ePAPR specification? How does this specification get updated to provide compatibility or enhancements that the current spec does not address like ARM architecture additions?
ePAPR is definitely the starting place. power.org is responsible for the spec, and they released version 1.1 earlier this year. It does a good job of capturing all the important information from the old Open Firmware IEEE specification in a single document.
However, as you point out it is focused on the power architecture. There aren't any ARM bindings described in it. For specific bindings, and for extensions to the spec, you actually need to go and look in the Documentation/devicetree/ directory in the Linux kernel source. This is *temporary* though. All of that documentation will be split out into a completely independent repository in the very near future (in a few weeks). The only reason it was in with the kernel source is that the Linux kernel is where most of the development focus has been, so it happened to be convenient.
Also is there a central registry, if any, of strings for vendors or compatible hardware? For example if I have a property 'compatible = "hp,widget123";' who determines whether 'hp' standard for Hewlett-Packard or Henry's Pickles? Along the same lines if there is a standard interface like a "gic" where is the spec/document describing what a "gic" is and how is it updated?
It will be in the same documentation repository; There isn't currently a single file listing all the prefixes, but it can be easily added.
g.
On Tue, Sep 20, 2011 at 11:58 AM, Grant Likely grant.likely@secretlab.ca wrote:
On Tue, Sep 20, 2011 at 05:31:52PM +0000, Cohen, Eugene wrote:
[sorry if this is the wrong list, please direct me to the right one as needed]
I'm trying to get my head wrapped around FDT to understand how UEFI firmware can produce this (and possibly use it internally) and pass it to the OS.
I've been trying to find the authoritative specification describing DT and FDT. My experience searching resulted in a lot of dead links. Is the spec the ePAPR specification? How does this specification get updated to provide compatibility or enhancements that the current spec does not address like ARM architecture additions?
ePAPR is definitely the starting place. power.org is responsible for the spec, and they released version 1.1 earlier this year. It does a good job of capturing all the important information from the old Open Firmware IEEE specification in a single document.
However, as you point out it is focused on the power architecture. There aren't any ARM bindings described in it. For specific bindings, and for extensions to the spec, you actually need to go and look in the Documentation/devicetree/ directory in the Linux kernel source. This is *temporary* though. All of that documentation will be split out into a completely independent repository in the very near future (in a few weeks). The only reason it was in with the kernel source is that the Linux kernel is where most of the development focus has been, so it happened to be convenient.
Also is there a central registry, if any, of strings for vendors or compatible hardware? For example if I have a property 'compatible = "hp,widget123";' who determines whether 'hp' standard for Hewlett-Packard or Henry's Pickles? Along the same lines if there is a standard interface like a "gic" where is the spec/document describing what a "gic" is and how is it updated?
It will be in the same documentation repository; There isn't currently a single file listing all the prefixes, but it can be easily added.
Update on this; There is now a vendor prefix file that is in my devicetree/next branch which will be merged in the LInux v3.2 merge window.
g.
boot-architecture@lists.linaro.org