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