162306a36Sopenharmony_ciSEC 6 is as Freescale's Cryptographic Accelerator and Assurance Module (CAAM). 262306a36Sopenharmony_ciCurrently Freescale powerpc chip C29X is embedded with SEC 6. 362306a36Sopenharmony_ciSEC 6 device tree binding include: 462306a36Sopenharmony_ci -SEC 6 Node 562306a36Sopenharmony_ci -Job Ring Node 662306a36Sopenharmony_ci -Full Example 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci===================================================================== 962306a36Sopenharmony_ciSEC 6 Node 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciDescription 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci Node defines the base address of the SEC 6 block. 1462306a36Sopenharmony_ci This block specifies the address range of all global 1562306a36Sopenharmony_ci configuration registers for the SEC 6 block. 1662306a36Sopenharmony_ci For example, In C293, we could see three SEC 6 node. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciPROPERTIES 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci - compatible 2162306a36Sopenharmony_ci Usage: required 2262306a36Sopenharmony_ci Value type: <string> 2362306a36Sopenharmony_ci Definition: Must include "fsl,sec-v6.0". 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci - fsl,sec-era 2662306a36Sopenharmony_ci Usage: optional 2762306a36Sopenharmony_ci Value type: <u32> 2862306a36Sopenharmony_ci Definition: A standard property. Define the 'ERA' of the SEC 2962306a36Sopenharmony_ci device. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci - #address-cells 3262306a36Sopenharmony_ci Usage: required 3362306a36Sopenharmony_ci Value type: <u32> 3462306a36Sopenharmony_ci Definition: A standard property. Defines the number of cells 3562306a36Sopenharmony_ci for representing physical addresses in child nodes. 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci - #size-cells 3862306a36Sopenharmony_ci Usage: required 3962306a36Sopenharmony_ci Value type: <u32> 4062306a36Sopenharmony_ci Definition: A standard property. Defines the number of cells 4162306a36Sopenharmony_ci for representing the size of physical addresses in 4262306a36Sopenharmony_ci child nodes. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci - reg 4562306a36Sopenharmony_ci Usage: required 4662306a36Sopenharmony_ci Value type: <prop-encoded-array> 4762306a36Sopenharmony_ci Definition: A standard property. Specifies the physical 4862306a36Sopenharmony_ci address and length of the SEC 6 configuration registers. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci - ranges 5162306a36Sopenharmony_ci Usage: required 5262306a36Sopenharmony_ci Value type: <prop-encoded-array> 5362306a36Sopenharmony_ci Definition: A standard property. Specifies the physical address 5462306a36Sopenharmony_ci range of the SEC 6.0 register space (-SNVS not included). A 5562306a36Sopenharmony_ci triplet that includes the child address, parent address, & 5662306a36Sopenharmony_ci length. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci Note: All other standard properties (see the Devicetree Specification) 5962306a36Sopenharmony_ci are allowed but are optional. 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ciEXAMPLE 6262306a36Sopenharmony_ci crypto@a0000 { 6362306a36Sopenharmony_ci compatible = "fsl,sec-v6.0"; 6462306a36Sopenharmony_ci fsl,sec-era = <6>; 6562306a36Sopenharmony_ci #address-cells = <1>; 6662306a36Sopenharmony_ci #size-cells = <1>; 6762306a36Sopenharmony_ci reg = <0xa0000 0x20000>; 6862306a36Sopenharmony_ci ranges = <0 0xa0000 0x20000>; 6962306a36Sopenharmony_ci }; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci===================================================================== 7262306a36Sopenharmony_ciJob Ring (JR) Node 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci Child of the crypto node defines data processing interface to SEC 6 7562306a36Sopenharmony_ci across the peripheral bus for purposes of processing 7662306a36Sopenharmony_ci cryptographic descriptors. The specified address 7762306a36Sopenharmony_ci range can be made visible to one (or more) cores. 7862306a36Sopenharmony_ci The interrupt defined for this node is controlled within 7962306a36Sopenharmony_ci the address range of this node. 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci - compatible 8262306a36Sopenharmony_ci Usage: required 8362306a36Sopenharmony_ci Value type: <string> 8462306a36Sopenharmony_ci Definition: Must include "fsl,sec-v6.0-job-ring". 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci - reg 8762306a36Sopenharmony_ci Usage: required 8862306a36Sopenharmony_ci Value type: <prop-encoded-array> 8962306a36Sopenharmony_ci Definition: Specifies a two JR parameters: an offset from 9062306a36Sopenharmony_ci the parent physical address and the length the JR registers. 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci - interrupts 9362306a36Sopenharmony_ci Usage: required 9462306a36Sopenharmony_ci Value type: <prop_encoded-array> 9562306a36Sopenharmony_ci Definition: Specifies the interrupts generated by this 9662306a36Sopenharmony_ci device. The value of the interrupts property 9762306a36Sopenharmony_ci consists of one interrupt specifier. The format 9862306a36Sopenharmony_ci of the specifier is defined by the binding document 9962306a36Sopenharmony_ci describing the node's interrupt parent. 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ciEXAMPLE 10262306a36Sopenharmony_ci jr@1000 { 10362306a36Sopenharmony_ci compatible = "fsl,sec-v6.0-job-ring"; 10462306a36Sopenharmony_ci reg = <0x1000 0x1000>; 10562306a36Sopenharmony_ci interrupts = <49 2 0 0>; 10662306a36Sopenharmony_ci }; 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci=================================================================== 10962306a36Sopenharmony_ciFull Example 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ciSince some chips may contain more than one SEC, the dtsi contains 11262306a36Sopenharmony_cionly the node contents, not the node itself. A chip using the SEC 11362306a36Sopenharmony_cishould include the dtsi inside each SEC node. Example: 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ciIn qoriq-sec6.0.dtsi: 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci compatible = "fsl,sec-v6.0"; 11862306a36Sopenharmony_ci fsl,sec-era = <6>; 11962306a36Sopenharmony_ci #address-cells = <1>; 12062306a36Sopenharmony_ci #size-cells = <1>; 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci jr@1000 { 12362306a36Sopenharmony_ci compatible = "fsl,sec-v6.0-job-ring", 12462306a36Sopenharmony_ci "fsl,sec-v5.2-job-ring", 12562306a36Sopenharmony_ci "fsl,sec-v5.0-job-ring", 12662306a36Sopenharmony_ci "fsl,sec-v4.4-job-ring", 12762306a36Sopenharmony_ci "fsl,sec-v4.0-job-ring"; 12862306a36Sopenharmony_ci reg = <0x1000 0x1000>; 12962306a36Sopenharmony_ci }; 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci jr@2000 { 13262306a36Sopenharmony_ci compatible = "fsl,sec-v6.0-job-ring", 13362306a36Sopenharmony_ci "fsl,sec-v5.2-job-ring", 13462306a36Sopenharmony_ci "fsl,sec-v5.0-job-ring", 13562306a36Sopenharmony_ci "fsl,sec-v4.4-job-ring", 13662306a36Sopenharmony_ci "fsl,sec-v4.0-job-ring"; 13762306a36Sopenharmony_ci reg = <0x2000 0x1000>; 13862306a36Sopenharmony_ci }; 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ciIn the C293 device tree, we add the include of public property: 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci crypto@a0000 { 14362306a36Sopenharmony_ci /include/ "qoriq-sec6.0.dtsi" 14462306a36Sopenharmony_ci } 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci crypto@a0000 { 14762306a36Sopenharmony_ci reg = <0xa0000 0x20000>; 14862306a36Sopenharmony_ci ranges = <0 0xa0000 0x20000>; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci jr@1000 { 15162306a36Sopenharmony_ci interrupts = <49 2 0 0>; 15262306a36Sopenharmony_ci }; 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci jr@2000 { 15562306a36Sopenharmony_ci interrupts = <50 2 0 0>; 15662306a36Sopenharmony_ci }; 15762306a36Sopenharmony_ci }; 158