On Tue, Mar 23, 2010 at 3:42 PM, Timur Tabi <ti...@freescale.com> wrote: > Define a binding for embedding a QE firmware blob into the device tree. Also > define a new property for the QE node that links to a firmware node. > > Signed-off-by: Timur Tabi <ti...@freescale.com> > --- > .../powerpc/dts-bindings/fsl/cpm_qe/qe.txt | 50 > ++++++++++++++++++++ > 1 files changed, 50 insertions(+), 0 deletions(-) > > diff --git a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt > b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt > index 6e37be1..d9d6431 100644 > --- a/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt > +++ b/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt > @@ -20,6 +20,14 @@ Required properties: > - fsl,qe-num-riscs: define how many RISC engines the QE has. > - fsl,qe-num-snums: define how many serial number(SNUM) the QE can use for > the > threads. > +- fsl,firmware-phandle: > + Usage: required > + Value type: <phandle> > + Definition: Points to a firmware node (see "QE Firmware Node" below) > + that contains the firmware that should be uploaded for this QE. > + The compatible property for the firmware node should say, > + "fsl,qe-firmware". > +
Why the phandle redirection? Why not just put the firmware blob into a property in the QE node, or as a subnode? g. > > Recommended properties > - brg-frequency : the internal clock source frequency for baud-rate > @@ -59,3 +67,45 @@ Example: > reg = <0 c000>; > }; > }; > + > +* QE Firmware Node > + > +This node defines a firmware binary that is embedded in the device tree, for > +the purpose of passing the firmware from bootloader to the kernel, or from > +the hypervisor to the guest. > + > +The firmware node itself contains the firmware binary contents, a compatible > +property, and any firmware-specific properties. The node itself can be > located > +anywhere, but should probably be placed at the top level. The QE node > +that needs the firmware should define a property that links to the firmware > +node's phandle. > + > +This node is typically not defined in the DTS. Instead, the boot loader > +normally creates the node from scratch, using a firmware binary that is > already > +located in non-volatile storage or transferred from a tftp server. > + > +Required properties: > + - compatible > + Usage: required > + Value type: <string> > + Definition: A standard property. Specify a string that indicates what > + kind of firmware it is. For QE, this should be "fsl,qe-firmware". > + > + - fsl,firmware > + Usage: required > + Value type: <prop-encoded-array>, encoded as an array of bytes > + Definition: A standard property. This property contains the firmware > + binary "blob". > + > +Example: > + q...@e0080000 { > + compatible = "fsl,qe"; > + fsl,firmware-phandle = <&qe_firmware>; > + ... > + } > + > + qe_firmware:qe-firmware { > + compatible = "fsl,qe-firmware"; > + fsl,firmware = <0x70 0xcd 0x00 0x00 0x01 0x46 0x45 0x63 ...> > + } > + > -- > 1.6.5 > > _______________________________________________ > devicetree-discuss mailing list > devicetree-disc...@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/devicetree-discuss > -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev