[aes] Add shadow CTRL register, interface with alert handler
This commit adds a shadow CTRL register according to @tjaychen's Shadow
Register RFC:
- If the content of the staged register and the value written to the
actual register do not match, this causes an update error and triggers
an alert. The register is not updated.
- If the contents of actual and shadow registers differ, this causes a
storage error and triggers an alert.
- Invalid mode field values are resolved to the new reset value
AES_NONE = 4'b1000.
- The cipher core is not allowed to start or finish unless the mode field
is set to a valid value.
Signed-off-by: Pirmin Vogel <vogelpi@lowrisc.org>
diff --git a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
index 035da53..2507a0d 100644
--- a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
+++ b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
@@ -723,7 +723,15 @@
available_output_list: []
available_inout_list: []
interrupt_list: []
- alert_list: []
+ alert_list:
+ [
+ {
+ name: ctrl_err
+ width: 1
+ type: alert
+ async: 0
+ }
+ ]
wakeup_list: []
scan: "false"
scan_reset: "false"
@@ -3278,12 +3286,20 @@
]
alert_module:
[
+ aes
hmac
otbn
]
alert:
[
{
+ name: aes_ctrl_err
+ width: 1
+ type: alert
+ async: 0
+ module_name: aes
+ }
+ {
name: hmac_msg_push_sha_disabled
width: 1
type: alert