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

From: Rob Herring
Date: Thu Sep 07 2023 - 13:00:34 EST


On Wed, Aug 30, 2023 at 6:18 PM Simon Glass <sjg@xxxxxxxxxxxx> 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@xxxxxxxxxxxx>
> ---
>
> 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