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