162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# Copyright (C) 2008-2011 Freescale Semiconductor Inc. 362306a36Sopenharmony_ci%YAML 1.2 462306a36Sopenharmony_ci--- 562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/crypto/fsl,sec-v4.0.yaml# 662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 762306a36Sopenharmony_ci 862306a36Sopenharmony_cititle: Freescale SEC 4 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cimaintainers: 1162306a36Sopenharmony_ci - '"Horia Geantă" <horia.geanta@nxp.com>' 1262306a36Sopenharmony_ci - Pankaj Gupta <pankaj.gupta@nxp.com> 1362306a36Sopenharmony_ci - Gaurav Jain <gaurav.jain@nxp.com> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cidescription: | 1662306a36Sopenharmony_ci NOTE: the SEC 4 is also known as Freescale's Cryptographic Accelerator 1762306a36Sopenharmony_ci Accelerator and Assurance Module (CAAM). 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci SEC 4 h/w can process requests from 2 types of sources. 2062306a36Sopenharmony_ci 1. DPAA Queue Interface (HW interface between Queue Manager & SEC 4). 2162306a36Sopenharmony_ci 2. Job Rings (HW interface between cores & SEC 4 registers). 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci High Speed Data Path Configuration: 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci HW interface between QM & SEC 4 and also BM & SEC 4, on DPAA-enabled parts 2662306a36Sopenharmony_ci such as the P4080. The number of simultaneous dequeues the QI can make is 2762306a36Sopenharmony_ci equal to the number of Descriptor Controller (DECO) engines in a particular 2862306a36Sopenharmony_ci SEC version. E.g., the SEC 4.0 in the P4080 has 5 DECOs and can thus 2962306a36Sopenharmony_ci dequeue from 5 subportals simultaneously. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci Job Ring Data Path Configuration: 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci Each JR is located on a separate 4k page, they may (or may not) be made visible 3462306a36Sopenharmony_ci in the memory partition devoted to a particular core. The P4080 has 4 JRs, so 3562306a36Sopenharmony_ci up to 4 JRs can be configured; and all 4 JRs process requests in parallel. 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciproperties: 3862306a36Sopenharmony_ci compatible: 3962306a36Sopenharmony_ci oneOf: 4062306a36Sopenharmony_ci - items: 4162306a36Sopenharmony_ci - const: fsl,sec-v5.4 4262306a36Sopenharmony_ci - const: fsl,sec-v5.0 4362306a36Sopenharmony_ci - const: fsl,sec-v4.0 4462306a36Sopenharmony_ci - items: 4562306a36Sopenharmony_ci - enum: 4662306a36Sopenharmony_ci - fsl,imx6ul-caam 4762306a36Sopenharmony_ci - fsl,sec-v5.0 4862306a36Sopenharmony_ci - const: fsl,sec-v4.0 4962306a36Sopenharmony_ci - const: fsl,sec-v4.0 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci reg: 5262306a36Sopenharmony_ci maxItems: 1 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci ranges: 5562306a36Sopenharmony_ci maxItems: 1 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci '#address-cells': 5862306a36Sopenharmony_ci enum: [1, 2] 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci '#size-cells': 6162306a36Sopenharmony_ci enum: [1, 2] 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci clocks: 6462306a36Sopenharmony_ci minItems: 1 6562306a36Sopenharmony_ci maxItems: 4 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci clock-names: 6862306a36Sopenharmony_ci minItems: 1 6962306a36Sopenharmony_ci maxItems: 4 7062306a36Sopenharmony_ci items: 7162306a36Sopenharmony_ci enum: [mem, aclk, ipg, emi_slow] 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci dma-coherent: true 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci interrupts: 7662306a36Sopenharmony_ci maxItems: 1 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci fsl,sec-era: 7962306a36Sopenharmony_ci description: Defines the 'ERA' of the SEC device. 8062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_cipatternProperties: 8362306a36Sopenharmony_ci '^jr@[0-9a-f]+$': 8462306a36Sopenharmony_ci type: object 8562306a36Sopenharmony_ci additionalProperties: false 8662306a36Sopenharmony_ci description: 8762306a36Sopenharmony_ci Job Ring (JR) Node. Defines data processing interface to SEC 4 across the 8862306a36Sopenharmony_ci peripheral bus for purposes of processing cryptographic descriptors. The 8962306a36Sopenharmony_ci specified address range can be made visible to one (or more) cores. The 9062306a36Sopenharmony_ci interrupt defined for this node is controlled within the address range of 9162306a36Sopenharmony_ci this node. 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci properties: 9462306a36Sopenharmony_ci compatible: 9562306a36Sopenharmony_ci oneOf: 9662306a36Sopenharmony_ci - items: 9762306a36Sopenharmony_ci - const: fsl,sec-v5.4-job-ring 9862306a36Sopenharmony_ci - const: fsl,sec-v5.0-job-ring 9962306a36Sopenharmony_ci - const: fsl,sec-v4.0-job-ring 10062306a36Sopenharmony_ci - items: 10162306a36Sopenharmony_ci - const: fsl,sec-v5.0-job-ring 10262306a36Sopenharmony_ci - const: fsl,sec-v4.0-job-ring 10362306a36Sopenharmony_ci - const: fsl,sec-v4.0-job-ring 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci reg: 10662306a36Sopenharmony_ci maxItems: 1 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci interrupts: 10962306a36Sopenharmony_ci maxItems: 1 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci fsl,liodn: 11262306a36Sopenharmony_ci description: 11362306a36Sopenharmony_ci Specifies the LIODN to be used in conjunction with the ppid-to-liodn 11462306a36Sopenharmony_ci table that specifies the PPID to LIODN mapping. Needed if the PAMU is 11562306a36Sopenharmony_ci used. Value is a 12 bit value where value is a LIODN ID for this JR. 11662306a36Sopenharmony_ci This property is normally set by boot firmware. 11762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 11862306a36Sopenharmony_ci maximum: 0xfff 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci '^rtic@[0-9a-f]+$': 12162306a36Sopenharmony_ci type: object 12262306a36Sopenharmony_ci additionalProperties: false 12362306a36Sopenharmony_ci description: 12462306a36Sopenharmony_ci Run Time Integrity Check (RTIC) Node. Defines a register space that 12562306a36Sopenharmony_ci contains up to 5 sets of addresses and their lengths (sizes) that will be 12662306a36Sopenharmony_ci checked at run time. After an initial hash result is calculated, these 12762306a36Sopenharmony_ci addresses are checked by HW to monitor any change. If any memory is 12862306a36Sopenharmony_ci modified, a Security Violation is triggered (see SNVS definition). 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci properties: 13162306a36Sopenharmony_ci compatible: 13262306a36Sopenharmony_ci oneOf: 13362306a36Sopenharmony_ci - items: 13462306a36Sopenharmony_ci - const: fsl,sec-v5.4-rtic 13562306a36Sopenharmony_ci - const: fsl,sec-v5.0-rtic 13662306a36Sopenharmony_ci - const: fsl,sec-v4.0-rtic 13762306a36Sopenharmony_ci - const: fsl,sec-v4.0-rtic 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci reg: 14062306a36Sopenharmony_ci maxItems: 1 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci ranges: 14362306a36Sopenharmony_ci maxItems: 1 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci interrupts: 14662306a36Sopenharmony_ci maxItems: 1 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci '#address-cells': 14962306a36Sopenharmony_ci const: 1 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci '#size-cells': 15262306a36Sopenharmony_ci const: 1 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci patternProperties: 15562306a36Sopenharmony_ci '^rtic-[a-z]@[0-9a-f]+$': 15662306a36Sopenharmony_ci type: object 15762306a36Sopenharmony_ci additionalProperties: false 15862306a36Sopenharmony_ci description: 15962306a36Sopenharmony_ci Run Time Integrity Check (RTIC) Memory Node defines individual RTIC 16062306a36Sopenharmony_ci memory regions that are used to perform run-time integrity check of 16162306a36Sopenharmony_ci memory areas that should not modified. The node defines a register 16262306a36Sopenharmony_ci that contains the memory address & length (combined) and a second 16362306a36Sopenharmony_ci register that contains the hash result in big endian format. 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci properties: 16662306a36Sopenharmony_ci compatible: 16762306a36Sopenharmony_ci oneOf: 16862306a36Sopenharmony_ci - items: 16962306a36Sopenharmony_ci - const: fsl,sec-v5.4-rtic-memory 17062306a36Sopenharmony_ci - const: fsl,sec-v5.0-rtic-memory 17162306a36Sopenharmony_ci - const: fsl,sec-v4.0-rtic-memory 17262306a36Sopenharmony_ci - const: fsl,sec-v4.0-rtic-memory 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci reg: 17562306a36Sopenharmony_ci items: 17662306a36Sopenharmony_ci - description: RTIC memory address 17762306a36Sopenharmony_ci - description: RTIC hash result 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci fsl,liodn: 18062306a36Sopenharmony_ci description: 18162306a36Sopenharmony_ci Specifies the LIODN to be used in conjunction with the 18262306a36Sopenharmony_ci ppid-to-liodn table that specifies the PPID to LIODN mapping. 18362306a36Sopenharmony_ci Needed if the PAMU is used. Value is a 12 bit value where value 18462306a36Sopenharmony_ci is a LIODN ID for this JR. This property is normally set by boot 18562306a36Sopenharmony_ci firmware. 18662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 18762306a36Sopenharmony_ci maximum: 0xfff 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci fsl,rtic-region: 19062306a36Sopenharmony_ci description: 19162306a36Sopenharmony_ci Specifies the HW address (36 bit address) for this region 19262306a36Sopenharmony_ci followed by the length of the HW partition to be checked; 19362306a36Sopenharmony_ci the address is represented as a 64 bit quantity followed 19462306a36Sopenharmony_ci by a 32 bit length. 19562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_cirequired: 19862306a36Sopenharmony_ci - compatible 19962306a36Sopenharmony_ci - reg 20062306a36Sopenharmony_ci - ranges 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ciadditionalProperties: false 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ciexamples: 20562306a36Sopenharmony_ci - | 20662306a36Sopenharmony_ci crypto@300000 { 20762306a36Sopenharmony_ci compatible = "fsl,sec-v4.0"; 20862306a36Sopenharmony_ci #address-cells = <1>; 20962306a36Sopenharmony_ci #size-cells = <1>; 21062306a36Sopenharmony_ci reg = <0x300000 0x10000>; 21162306a36Sopenharmony_ci ranges = <0 0x300000 0x10000>; 21262306a36Sopenharmony_ci interrupts = <92 2>; 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci jr@1000 { 21562306a36Sopenharmony_ci compatible = "fsl,sec-v4.0-job-ring"; 21662306a36Sopenharmony_ci reg = <0x1000 0x1000>; 21762306a36Sopenharmony_ci interrupts = <88 2>; 21862306a36Sopenharmony_ci }; 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci jr@2000 { 22162306a36Sopenharmony_ci compatible = "fsl,sec-v4.0-job-ring"; 22262306a36Sopenharmony_ci reg = <0x2000 0x1000>; 22362306a36Sopenharmony_ci interrupts = <89 2>; 22462306a36Sopenharmony_ci }; 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci jr@3000 { 22762306a36Sopenharmony_ci compatible = "fsl,sec-v4.0-job-ring"; 22862306a36Sopenharmony_ci reg = <0x3000 0x1000>; 22962306a36Sopenharmony_ci interrupts = <90 2>; 23062306a36Sopenharmony_ci }; 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci jr@4000 { 23362306a36Sopenharmony_ci compatible = "fsl,sec-v4.0-job-ring"; 23462306a36Sopenharmony_ci reg = <0x4000 0x1000>; 23562306a36Sopenharmony_ci interrupts = <91 2>; 23662306a36Sopenharmony_ci }; 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci rtic@6000 { 23962306a36Sopenharmony_ci compatible = "fsl,sec-v4.0-rtic"; 24062306a36Sopenharmony_ci #address-cells = <1>; 24162306a36Sopenharmony_ci #size-cells = <1>; 24262306a36Sopenharmony_ci reg = <0x6000 0x100>; 24362306a36Sopenharmony_ci ranges = <0x0 0x6100 0xe00>; 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ci rtic-a@0 { 24662306a36Sopenharmony_ci compatible = "fsl,sec-v4.0-rtic-memory"; 24762306a36Sopenharmony_ci reg = <0x00 0x20>, <0x100 0x80>; 24862306a36Sopenharmony_ci }; 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci rtic-b@20 { 25162306a36Sopenharmony_ci compatible = "fsl,sec-v4.0-rtic-memory"; 25262306a36Sopenharmony_ci reg = <0x20 0x20>, <0x200 0x80>; 25362306a36Sopenharmony_ci }; 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ci rtic-c@40 { 25662306a36Sopenharmony_ci compatible = "fsl,sec-v4.0-rtic-memory"; 25762306a36Sopenharmony_ci reg = <0x40 0x20>, <0x300 0x80>; 25862306a36Sopenharmony_ci }; 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci rtic-d@60 { 26162306a36Sopenharmony_ci compatible = "fsl,sec-v4.0-rtic-memory"; 26262306a36Sopenharmony_ci reg = <0x60 0x20>, <0x500 0x80>; 26362306a36Sopenharmony_ci }; 26462306a36Sopenharmony_ci }; 26562306a36Sopenharmony_ci }; 26662306a36Sopenharmony_ci... 267