blob: 4e82111d78e4c31ab1002a000505b8ae64c3d11b [file] [log] [blame]
// 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"]
testpoints: [
{
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: []
}
]
}