| // 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: [] | |
| } | |
| { | |
| 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: [] | |
| } | |
| { | |
| 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: [] | |
| } | |
| ] | |
| } |