[PATCH v5 4/4] memory: Add ECC properties

Rob Herring robh at kernel.org
Thu Sep 7 18:58:07 CEST 2023


On Wed, Aug 30, 2023 at 6:18 PM Simon Glass <sjg at chromium.org> wrote:
>
> Some memories provide ECC detection and/or correction. For software which
> wants to check memory, it is helpful to see which regions provide this
> feature.
>
> Add this as a property of the /memory nodes, since it presumably follows
> the hardware-level memory system.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v5:
> - Redo to make this property specific to ECC
> - Provide properties both for detection and correction
>
> Changes in v3:
> - Add new patch to update the /memory nodes
>
>  dtschema/schemas/memory.yaml | 30 ++++++++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
>
> diff --git a/dtschema/schemas/memory.yaml b/dtschema/schemas/memory.yaml
> index 1d74410..944aa9f 100644
> --- a/dtschema/schemas/memory.yaml
> +++ b/dtschema/schemas/memory.yaml
> @@ -34,7 +34,37 @@ patternProperties:
>          description:
>            For the purpose of identification, each NUMA node is associated with
>            a unique token known as a node id.
> +      ecc-detection:
> +        $ref: /schemas/types.yaml#/definitions/string
> +        enum:
> +          - none
> +          - single-bit
> +          - multi-bit
> +        description: |
> +          If present, this inidcates the type of memory errors which can be

typo

> +          detected and reported by the Error-Correction Code (ECC) memory
> +          subsystem:
>
> +            none       - No error detection is possible
> +            single-bit - Detects and reports single-bit ECC errors
> +            multi-bit  - Detects and reports multiple-bit ECC errors

I don't think 'multi' is specific enough. Perhaps this should be an
int instead with how many bits. (And '-bits' is a standard unit suffix
so a type isn't needed)

> +
> +          If not present, this is equivalent to 'none'.

Can be expressed as schema:

default: none

Though if that's the default why have it as a value? (It's fine though)

> +      ecc-correction:
> +        $ref: /schemas/types.yaml#/definitions/string
> +        enum:
> +          - none
> +          - single-bit
> +          - multi-bit
> +        description: |
> +          If present, this inidcates the type of memory errors which can be

typo

> +          corrected by the Error-Correction Code (ECC) memory subsystem:
> +
> +            none       - No error correction is possible
> +            single-bit - Corrects single-bit ECC errors
> +            multi-bit  - Corrects multiple-bit ECC errors
> +
> +          If not present, this is equivalent to 'none'.

One issue is with 2 properties nonsensical combinations are allowed.
Not really any way to handle that in the schema though.

Rob


More information about the U-Boot mailing list