[chip, testplan] Update chip testplan

- This commit addresses the comments and updates from the testplan
review meeting held on 5/25/2021.
- The meeting notes are below:
https://docs.google.com/document/d/1OhPP-HjciwKpIh0wWt1xqPqPf0Y0powmmww6xekwMeE/

- Update AES, entropy src, csrng and EDN sections of the chip testplan.

Signed-off-by: Srikrishna Iyer <sriyer@google.com>
diff --git a/hw/top_earlgrey/data/chip_testplan.hjson b/hw/top_earlgrey/data/chip_testplan.hjson
index d5366bf..5a0c48e 100644
--- a/hw/top_earlgrey/data/chip_testplan.hjson
+++ b/hw/top_earlgrey/data/chip_testplan.hjson
@@ -912,18 +912,49 @@
 
             Write a 32-byte key and a 16-byte plain text to the AES registers and trigger the AES
             computation to start. Wait for the AES operation to complete by polling the status
-            register (or interrupt if available). Check the digest registers for correctness against
-            the expected digest value.
+            register. Check the digest registers for correctness against the expected digest value.
             '''
       milestone: V2
       tests: []
     }
     {
-      name: chip_aes_shadow_reg_alert
-      desc: '''Verify shadow reg alert from AES.
+      name: chip_aes_entropy
+      desc: '''Verify the AES entropy input used by the internal PRNGs.
 
-            Inject a storage error via backdoor to generate this alert signal while the SW is
-            actively executing some piece of code. Verify alert propagation to an NMI.
+            - Write the initial key share, IV and data in CSRs (known combinations).
+            - Configure the entropy_src to generate entropy in LFSR mode.
+            - Write the PRNG_RESEED bit to reseed the internal state of the PRNG.
+            - Poll the status idle bit to ensure reseed operation is complete.
+            - Trigger the AES operation to run and wait for it to complete.
+            - Check the digest against the expected value.
+            - Write the KEY_IV_DATA_IN_CLEAR and DATA_OUT_CLEAR trigger bits to 1 and wait for it to
+              complete by polling the status idle bit.
+            - Read back the data out CSRs - they should all read garbage values.
+            - Assertion check verifies that the internal states (data_in, key share and IV are also
+              garbage, i.e. different from the originally written values.
+            - Assertion checks proves that all interfaces are connected across AST RNG, ES, CSRNG,
+              EDN and AES.
+            - Predict the generated entropy bits and check against the observed for correctness.
+            '''
+      milestone: V2
+      tests: []
+    }
+    {
+      name: chip_aes_edn_reset
+      desc: '''Verify that the EDN clock / reset is connected to AES.
+
+            - Ensure that the PRNG within AES resets when the EDN logic is held in reset.
+            '''
+      milestone: V2
+      tests: []
+    }
+    {
+      name: chip_aes_lc_escalate_en
+      desc: '''Verify the effect of LC escalate en signal on AES.
+
+            - Trigger an LC escalatation signal by writing to alert_test CSR (in some other IP).
+            - Trigger an AES operation to run.
+            - When the escalation kicks in, verify that the AES is in the error state.
             '''
       milestone: V2
       tests: []
@@ -944,6 +975,15 @@
       milestone: V2
       tests: []
     }
+    {
+      name: chip_aes_sideload
+      desc: '''Verify the AES sideload mechanism.
+
+            Details TBD, design updates pending.
+            '''
+      milestone: V2
+      tests: []
+    }
 
     // HMAC (pre-verified IP) integration tests:
     {
@@ -1077,54 +1117,115 @@
       tests: []
     }
 
-    // CSRNG tests:
-    {
-      name: chip_csrng_cmd
-      desc: '''Verify the cmd interface to CSRNG.
-
-            Details TBD. SW test validates the reception of cmd req done interrupt.
-            '''
-      milestone: V2
-      tests: []
-    }
-    {
-      name: chip_csrng_entropy_src
-      desc: '''Verify the interface to entropy_src.
-
-            Details TBD.
-            '''
-      milestone: V2
-      tests: []
-    }
-    {
-      name: chip_csrng_fuse
-      desc: '''Verify the fuse input to CSRNG.
-
-            Details TBD.
-            '''
-      milestone: V2
-      tests: []
-    }
-
     // ENTROPY_SRC (pre-verified IP) integration tests:
     {
       name: chip_entropy_src_ast_rng_req
       desc: '''Verify the RNG req to ast.
 
-            Details TBD. SW test validates the reception of the entropy valid interrupt.
+            - Program the entropy src in normal RNG mode.
+            - Route the entropy data received from RNG to the FIFO.
+            - Verify that the FIFO depth is non-zero via SW - indicating the reception of data over
+              the AST RNG interface.
+            - Verify the correctness of the received data with assertion based connectivity checks.
             '''
       milestone: V2
       tests: []
     }
     {
-      name: chip_entropy_src_fuse
-      desc: '''Verify the fuse input entropy_src.
+      name: chip_entropy_src_ast_fips
+      desc: '''Verify the connectivity of rng_fips_o feedback signal to RNG.
 
             Details TBD.
             '''
       milestone: V2
       tests: []
     }
+    {
+      name: chip_entropy_src_csrng
+      desc: '''Verify the transfer of entropy bits to CSRNG.
+
+            Verify the entropy valid interrupt.
+            At the CSRNG, validate the reception of entropy req interrupt.
+            Details TBD.
+            '''
+      milestone: V2
+      tests: []
+    }
+    {
+      name: chip_entropy_src_cs_aes_halt
+      desc: '''Verify the aes halt handshake with CSRNG.
+
+            Details TBD.
+            '''
+      milestone: V2
+      tests: []
+    }
+    {
+      name: chip_entropy_src_fuse_en_fw_read
+      desc: '''Verify the fuse input entropy_src.
+
+            - Initialize the OTP with this fuse bit set to 1.
+            - Perform an entropy request operation.
+            - Read the entropy_data_fifo via SW; verify that it reads valid values.
+            - Reset the chip, but this time, initialize the OTP with this fuse bit set to 0.
+            - Perform an entropy request operation.
+            - Read the internal state via SW; verify that it reads all zeros this time.
+            '''
+      milestone: V2
+      tests: []
+    }
+
+    // CSRNG tests:
+    {
+      name: chip_csrng_edn_cmd
+      desc: '''Verify incoming command interface from EDN.
+
+            - Have each EDN instance issue an instantiate command to CSRNG.
+            - When done, verify the reception of cmd req done interrupt.
+            - Check the data returned to EDN via connectivity assertion checks.
+            - TODO: explore the ability to generate predictable data and verify the received value.
+            Details TBD.
+            '''
+      milestone: V2
+      tests: []
+    }
+    {
+      name: chip_csrng_fuse_en_sw_app_read
+      desc: '''Verify the fuse input to CSRNG.
+
+            - Initialize the OTP with this fuse bit set to 1.
+            - Issue an instantiate command to request entropy.
+            - Verify that SW can read the internal states.
+            - Reset the chip and repeat the steps above, but this time, with OTP fuse bit set to 0.
+            - Verify that the SW reads back all zeros when reading the internal states.
+            '''
+      milestone: V2
+      tests: []
+    }
+    {
+      name: chip_csrng_lc_hw_debug_en
+      desc: '''Verify the effect of LC HW debug enable on CSRNG.
+
+            TODO: This is pending SCA security review and might be removed.
+            '''
+      milestone: V2
+      tests: []
+    }
+
+    // EDN (pre-verified IP) integration tests:
+    {
+      name: chip_edn_entropy_reqs
+      desc: '''Verify the entropy requests from all peripherals.
+
+            Verify that there are no misconnects between each peripheral requesting entropy.
+            TODO: system level scenario: have all entropy sources request entropy in the same test
+            one after to show boot to post boot load, cycling all entropy blocks off and on again.
+            Ensure there are no deadlocks and everything works as expected.
+            X'ref'ed with each IP test that requsts entropy from EDN.
+            '''
+      milestone: V2
+      tests: []
+    }
 
     // KEYMGR (pre-verified IP) integration tests: