Skip to content

Commit 225b26f

Browse files
committed
[ot] docs/opentitan: earlgrey: Update flash_ctrl status in docs
Also add more detailed documentation to the prelude of the flash controller source file that goes into more detail about what is still not implemented, and what may not be a goal for emulation. Signed-off-by: Alex Jones <[email protected]>
1 parent 4809d11 commit 225b26f

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

docs/opentitan/earlgrey.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121
* CSRNG
2222
* EDN
2323
* Flash controller
24-
* missing ECCs/ICVs, scrambling functionality and alerts
25-
* no modelling of erase suspend
24+
* largely functional but without ECCs/ICVs, scrambling functionality & alerts
25+
* no modelling of erase suspend or RMA entry
26+
* lc_ctrl NVM debug signal not implemented, escalation partially implemented
2627
* HMAC
2728
* OTBN
2829
* missing side-loading

hw/opentitan/ot_flash.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,22 @@
2727
* THE SOFTWARE.
2828
*
2929
* Known limitations:
30-
* - ECC/ICV/Scrambling functionality is not yet implemented in QEMU,
30+
* - ECC/ICV/Scrambling functionality is completely unsupported in QEMU,
3131
* including ECC single error support.
32+
* - In addition, the loading of flash address and flash data scrambling keys
33+
* from OTP is likewise not included in initialisation.
34+
* - The lc_ctrl `LC_NVM_DEBUG_EN` is currently unused. The `LC_ESCALATE_EN`
35+
* signal is partially implemented (disables the flash).
3236
* - Alert functionality is only partially modelled.
33-
* - Program Repair / High Endurance enables are meaningless in the OpenTitan
34-
* Generic Flash Bank and so are not emulated.
35-
* - Erase Suspend is not emulated in QEMU (erases are done synchronously, so
36-
* you can suspend, but the bit will immediately be cleared).
37+
* - Life cycle RMA Entry is not implemented.
38+
*
39+
* Other notes:
40+
* - Program Repair / High Endurance enables are meaningless in the OT
41+
* Generic Flash Bank and so are not emulated.
42+
* - Erase suspend is not emulated as erases are done synchronously, so
43+
* you can suspend, but the bit will be immediately cleared.
44+
* - Flash operations are generally treated as synchronous, so arbitration
45+
* between SW and HW is entirely unsupported.
3746
*/
3847

3948
#include "qemu/osdep.h"

0 commit comments

Comments
 (0)