Mem — Requirements
Normative
Defines what a conformant memory driver MUST do. Requirements are clustered by severity — expand a cluster below. Keywords per Requirement Keywords; conformance per Conformance. Requirements do not carry individual status — the set-level status applies to all of them. Signatures, error codes, and configuration properties are in the API Reference, Errors, and Configuration Reference pages. Cross-module rules (types, error model, naming, memory mapping) are in General.
Mandatory (MUST) - 27 Requirements
The conformance contract — an implementation MUST satisfy every requirement here.
CHI-MEM-MUST-01 — Initialization and de-initialization
|
|
CHI-MEM-MUST-02 — Single-job model
|
The driver MUST process at most one job at a time per instance and MUST NOT implement a job queue. |
CHI-MEM-MUST-03 — Job request acceptance
|
A service request that cannot be accepted (for example while a job is pending) MUST be
rejected with |
CHI-MEM-MUST-04 — Asynchronous execution
|
Accepted jobs MUST be executed asynchronously, advanced by |
CHI-MEM-MUST-05 — Job status and result
|
The driver MUST track each instance’s job status and expose the most recent result via
|
CHI-MEM-MUST-06 — Job status transitions
|
On acceptance the result MUST become |
CHI-MEM-MUST-07 — Read
|
|
CHI-MEM-MUST-08 — Write
|
|
CHI-MEM-MUST-09 — Erase
|
|
CHI-MEM-MUST-10 — Blank check
|
|
CHI-MEM-MUST-11 — Suspend and resume
|
|
CHI-MEM-MUST-12 — Hardware-specific service
|
|
CHI-MEM-MUST-13 — ECC error notification
|
|
CHI-MEM-MUST-14 — Optional service availability
|
A service a given instance does not implement MUST return |
CHI-MEM-MUST-15 — No result verification
|
The driver MUST NOT read back to verify the result of a write or erase. |
CHI-MEM-MUST-16 — No alignment or buffering
|
The driver MUST NOT perform address/length alignment or buffer sub-page writes; the caller MUST provide aligned parameters, and misalignment MUST be a development error. |
CHI-MEM-MUST-17 — Address range
|
The driver MUST support the device’s address space within a 32-bit address and length. |
CHI-MEM-MUST-18 — Configuration validation
|
The configuration MUST be validated at or before build time; the driver need not check it at runtime. |
CHI-MEM-MUST-19 — Multiple memory instances
|
The driver MUST support multiple memory instances of the same device, addressed by
|
CHI-MEM-MUST-20 — Direct and indirect invocation
|
Services MUST be invocable directly, and — for a binary image — indirectly through the service function-pointer table. |
CHI-MEM-MUST-21 — Self-contained binary image
|
When built as a separate relocatable image the driver MUST be self-contained: it MUST NOT call external libraries and MUST NOT perform development-error reporting. |
CHI-MEM-MUST-22 — Binary byte order
|
The binary image MUST use the CPU byte order. |
CHI-MEM-MUST-23 — Header structure
|
The image MUST begin with a header carrying a unique id, flags, the header address, and the delimiter address, followed by the service function-pointer table. |
CHI-MEM-MUST-24 — ABI version
|
The header’s ABI version MUST be |
CHI-MEM-MUST-25 — Header and delimiter addresses
|
For a relocatable image the header address and delimiter address MUST be consistent with the image’s own layout as specified in Concepts. |
CHI-MEM-MUST-26 — Delimiter value
|
The delimiter value MUST be the ones’ complement of the unique id. |
CHI-MEM-MUST-27 — Configuration model
|
The driver MUST support the configuration model in Configuration Reference — a
|
Recommended (SHOULD) - 1 Requirement
Strongly advised; an implementation that deviates should understand the implications.
CHI-MEM-SHOULD-01 — ECC error handling
|
On an uncorrectable ECC error the driver SHOULD cancel the job and set
|