[flash_ctrl / top] Various functional updates to flash

- Add ERR_CODE register and separate various error sources
- Update prim_generic_flash interface to align with latest spec
- Add fatal and recoverable alert senders

Signed-off-by: Timothy Chen <timothytim@google.com>

[flash_ctrl] Add flash_ctrl to list of connected alert modules

Signed-off-by: Timothy Chen <timothytim@google.com>
diff --git a/hw/top_earlgrey/data/top_earlgrey.hjson b/hw/top_earlgrey/data/top_earlgrey.hjson
index 7fb9c3c..14aa4d6 100644
--- a/hw/top_earlgrey/data/top_earlgrey.hjson
+++ b/hw/top_earlgrey/data/top_earlgrey.hjson
@@ -583,8 +583,8 @@
           act: "rcv"
           name: "lc_nvm_debug_en"
         },
-        { struct: "logic"
-          package: ""
+        { struct: "lc_tx"
+          package: "lc_ctrl_pkg"
           type: "uni"
           act: "rcv"
           name: "flash_bist_enable"
@@ -781,7 +781,7 @@
   // list all modules that expose alerts
   // first item goes to LSB of the alert source
   alert_module: [ "aes", "otbn", "sensor_ctrl", "keymgr", "otp_ctrl", "lc_ctrl",
-                  "entropy_src", "sram_ctrl_main", "sram_ctrl_ret"]
+                  "entropy_src", "sram_ctrl_main", "sram_ctrl_ret", "flash_ctrl"]
 
   // generated list of alerts:
   alert: [