Document number
205065
Version
Rev. N
Issue date
2019-02-04
Sirius OBC and TCM User Manual
Page
65
of
174
5.6.5. Error injection
Error injection is used to verify the EDAC capabilities of the IP.
The IP always writes/reads 8 32-bit data words. If less or an uneven amount of data is
requested from the application the drivers pads this internally.
To ensure that the memory can withstand a full byte corruption of data the 8 words of data
are interleaved over the mass memory chips. This is done transparently from the user
perspective except when writing the error injection vector.
Looking at the massmem_error_injection_t struct defined in 5.6.2.2:
the data_error_injection member is an uint32_t.
Bit 0 of byte 0, 1, 2, 3 affects the first data word.
Bit 1 of byte 0, 1, 2, 3 affects the second data word.
…
Bit 7 of byte 0, 1, 2, 3 affects the eight data word.
To inject a correctible error in the third data word flip either bit 2, 10, 18 or 26.
To inject an uncorrectible in the third data word flip two bits of either 2, 10, 18, 26.
5.6.6. Limitations
The mass memory flash driver may only have one open file descriptor at a time.