| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| { |
| name: "entropy_src" |
| import_testplans: ["hw/dv/tools/dvsim/testplans/csr_testplan.hjson", |
| "hw/dv/tools/dvsim/testplans/intr_test_testplan.hjson", |
| "hw/dv/tools/dvsim/testplans/alert_test_testplan.hjson", |
| "hw/dv/tools/dvsim/testplans/tl_device_access_types_testplan.hjson", |
| "hw/dv/tools/dvsim/testplans/stress_all_with_reset_testplan.hjson"] |
| entries: [ |
| { |
| name: smoke |
| desc: ''' |
| Enable entropy_src in LFSR mode, wait for interrupt, verify entropy |
| for power-on seed. |
| ''' |
| milestone: V1 |
| tests: ["entropy_src_smoke"] |
| } |
| { |
| name: firmware |
| desc: ''' |
| Verify ability to access entropy register based on value of efuse input |
| Verify es_regen bit enables/disables write access to control registers |
| Verify registers at End-Of-Test |
| ''' |
| milestone: V2 |
| tests: [] |
| } |
| { |
| name: firmware_mode |
| desc: ''' |
| Verify health_checks aren't active |
| Verify bypass active |
| Verify read FIFO |
| - Random FIFO depths |
| ''' |
| milestone: V2 |
| tests: [] |
| } |
| { |
| name: lfsr_mode |
| desc: ''' |
| Verify LFSR entropy matches predicted |
| - Random seeds |
| - Random rng activity |
| - Random rates |
| - Verify FIPS bits match predicted |
| ''' |
| milestone: V2 |
| tests: ["entropy_src_rng"] |
| } |
| { |
| name: rng_mode |
| desc: ''' |
| Verify rng entropy |
| - Random FIFO depths |
| - Random rates |
| - Verify rng single_bit_mode for all bit_selector values |
| Verify FIPS bits match predicted |
| ''' |
| milestone: V2 |
| tests: ["entropy_src_rng"] |
| } |
| { |
| name: health_checks |
| desc: ''' |
| Verify AdaptProp, RepCnt, RepCntSym, Bucket, Markov health check results match predicted. |
| - Generate passing and failing raw entropy streams |
| - Random window sizes |
| - Default and random hi/lo bypass/fips thresholds |
| - Enables/fail counts/clears |
| - Verify hi/lo bypass/fips watermarks |
| - Verify External health check behaves as predicted |
| - Verify outputs match internal reg values/entropy bus |
| - Pulse inputs and verify captured |
| - Verify health testing stops when no demand for entropy |
| ''' |
| milestone: V2 |
| tests: [] |
| } |
| { |
| name: conditioning |
| desc: ''' |
| Verify genbits in bypass mode as predicted. |
| Verify genbits after shah3 conditioning as predicted. |
| ''' |
| milestone: V2 |
| tests: [] |
| } |
| { |
| name: interrupts |
| desc: ''' |
| Verify es_entropy_valid interrupt asserts as predicted. |
| Verify es_health_test_failed interrupt asserts as predicted. |
| Verify es_fifo_err interrupt asserts as predicted. |
| ''' |
| milestone: V2 |
| tests: [] |
| } |
| { |
| name: alerts |
| desc: ''' |
| Verify es_alert_count_met asserts as expected. |
| ''' |
| milestone: V2 |
| tests: [] |
| } |
| { |
| name: stress_all |
| desc: ''' |
| Combine the individual test points while injecting TL errors and |
| running CSR tests in parallel. |
| ''' |
| milestone: V2 |
| tests: ["entropy_src_stress_all"] |
| } |
| { |
| name: fifo_errs |
| desc: ''' |
| Verify they never occur with asserts |
| ''' |
| milestone: V2 |
| tests: [] |
| } |
| ] |
| } |