-
Notifications
You must be signed in to change notification settings - Fork 705
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PMP Verif Plan and tests #2648
Open
OlivierBetschi
wants to merge
18
commits into
openhwgroup:master
Choose a base branch
from
boschglobal:pmp/verif_plan_txt
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
PMP Verif Plan and tests #2648
Changes from all commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
1d24c02
draft verif plan for PMP
dat9val 3e4c3d2
added PMP Verif Features and Verif Plan Draft
dat9val 324ec7c
added priorities on some high-priority tests
dat9val 62b1c3c
added priorities on some high-priority tests
dat9val 6890893
Add PMP verif plan integrated in VP tool
OlivierBetschi 149db8b
Add dvplan_PMP.md
OlivierBetschi 4ad5ff2
Add PMP tests
OlivierBetschi f7ab662
Remove custom PMP test config
OlivierBetschi 3103472
Modify PMP scripts to be included into CI : add the script in gitlab-…
OlivierBetschi 84c7ed8
Make log files available on the dashboard
OlivierBetschi 7e12d6e
Update header file
OlivierBetschi dd3eaa3
Add pmp_test into uvm package
OlivierBetschi ed56480
Only use even addresses for pmpaddr test
OlivierBetschi a7fbfd0
Remove spike tandem setting for PMP tests as spike is not enabled
OlivierBetschi 17d77ae
Rollback of uvm_test parameter : after more testing it is not necessa…
OlivierBetschi 8bdf4c9
Update PMP tests
OlivierBetschi 20c0179
Remove uvm_test option and associated include in uvm package
OlivierBetschi 23e25e6
Add SPIKE_TANDEM option
OlivierBetschi File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,358 @@ | ||
!Feature | ||
next_elt_id: 15 | ||
name: TRISTAN Restrictions | ||
id: 0 | ||
display_order: 0 | ||
subfeatures: !!omap | ||
- 000_general: !Subfeature | ||
name: 000_general | ||
tag: VP_PMP_F000_S000 | ||
next_elt_id: 1 | ||
display_order: 0 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S000_I000 | ||
description: "\nthe verif plan is written for 32bits architecture only" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 001_number of harts: !Subfeature | ||
name: 001_number of harts | ||
tag: VP_PMP_F000_S001 | ||
next_elt_id: 2 | ||
display_order: 1 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S001_I000 | ||
description: "\nthere is only 1 hart in cv32a6" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 002_mxlen: !Subfeature | ||
name: 002_mxlen | ||
tag: VP_PMP_F000_S002 | ||
next_elt_id: 1 | ||
display_order: 2 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S002_I000 | ||
description: "\nMXLEN is always 32bits" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 003_xlen: !Subfeature | ||
name: 003_xlen | ||
tag: VP_PMP_F000_S003 | ||
next_elt_id: 1 | ||
display_order: 3 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S003_I000 | ||
description: "\nXLEN=MXLEN=32, so the PMP address registers are XLEN bits | ||
long, so no zero-extension needed" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 004_granularity: !Subfeature | ||
name: 004_granularity | ||
tag: VP_PMP_F000_S004 | ||
next_elt_id: 1 | ||
display_order: 4 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S004_I000 | ||
description: "\nPMP granularity is 8 bytes (G=1), but the verif plan is written | ||
to take G=0 into account (NA4)" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 005_number of pmp entries: !Subfeature | ||
name: 005_number of pmp entries | ||
tag: VP_PMP_F000_S005 | ||
next_elt_id: 1 | ||
display_order: 5 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S005_I000 | ||
description: "\nthere are 8 HW implemented PMP entries" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 006_hardwired regions: !Subfeature | ||
name: 006_hardwired regions | ||
tag: VP_PMP_F000_S006 | ||
next_elt_id: 1 | ||
display_order: 6 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S006_I000 | ||
description: "\nnone of the 8 PMP entries is hardwired privileges" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 007_virtual memory: !Subfeature | ||
name: 007_virtual memory | ||
tag: VP_PMP_F000_S007 | ||
next_elt_id: 1 | ||
display_order: 7 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S007_I000 | ||
description: "\nno virtual memory is implemented\nas a consequence no page-based | ||
virtual memory is implemented" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 008_physical memory regions: !Subfeature | ||
name: 008_physical memory regions | ||
tag: VP_PMP_F000_S008 | ||
next_elt_id: 1 | ||
display_order: 8 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S008_I000 | ||
description: "\nthe list of all physical memory regions\n - system memory | ||
regions\n - I-$\n - D-$\n - I-scratchpad (preload mode)\n - I-scratchpad | ||
(functional mode)\n - D-scratchpad\n - ahb_periph" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 009_pmp entry disabling: !Subfeature | ||
name: 009_pmp entry disabling | ||
tag: VP_PMP_F000_S009 | ||
next_elt_id: 1 | ||
display_order: 9 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S009_I000 | ||
description: "\nwe assume an already written PMP entry (i) can be disabled\n\ | ||
\ - if L=0, by clearing pmpcfg(i)\n - if L=1, only by hart reset" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 010_access-faults (violations): !Subfeature | ||
name: 010_access-faults (violations) | ||
tag: VP_PMP_F000_S010 | ||
next_elt_id: 1 | ||
display_order: 10 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S010_I000 | ||
description: "\nThe testbench/testcases architecture ensures that:\n - any | ||
time there is an access-fault type, we check it matches the related access-type\n | ||
- all violations are trapped at the processor\n\n{Page 56 Volume II: RISC-V | ||
Privileged Architectures V20211203}\nPMP violations are always trapped precisely | ||
at the processor" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 011_testcases modularity: !Subfeature | ||
name: 011_testcases modularity | ||
tag: VP_PMP_F000_S011 | ||
next_elt_id: 1 | ||
display_order: 11 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S011_I000 | ||
description: "\nThe verif plan is written assuming there is a way (like SystemVerilog | ||
interaction):\n - to factorize the testcases in code blocks (in particular | ||
configuration code block and access code block)\n - to randomize the code | ||
blocks data and addresses\n - to randomize the sequence of code blocks" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 012_access types: !Subfeature | ||
name: 012_access types | ||
tag: VP_PMP_F000_S012 | ||
next_elt_id: 1 | ||
display_order: 12 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S012_I000 | ||
description: "at the time of writing,\nthe verif plan makes no distinction | ||
between load and load-reserved instructions. they are gathered in the same | ||
access type, subtleties unknown\nthe verif plan makes no distinction between | ||
store, store-conditional, and AMO instructions. they are gathered in the | ||
same access type, subtleties unknown" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 013_multiple accesses instructions: !Subfeature | ||
name: 013_multiple accesses instructions | ||
tag: VP_PMP_F000_S013 | ||
next_elt_id: 1 | ||
display_order: 13 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S013_I000 | ||
description: "\nwe assume there is no added value to test multiple accesses | ||
instructions" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
- 014_misaligned instructions: !Subfeature | ||
name: 014_misaligned instructions | ||
tag: VP_PMP_F000_S014 | ||
next_elt_id: 1 | ||
display_order: 14 | ||
items: !!omap | ||
- '000': !VerifItem | ||
name: '000' | ||
tag: VP_PMP_F000_S014_I000 | ||
description: "\nwe assume that instructions are mandatorily aligned" | ||
reqt_doc: '' | ||
ref_mode: page | ||
ref_page: '' | ||
ref_section: '' | ||
ref_viewer: firefox | ||
verif_goals: '' | ||
pfc: -1 | ||
test_type: -1 | ||
cov_method: -1 | ||
cores: -1 | ||
coverage_loc: '' | ||
comments: '' | ||
vptool_gitrev: '$Id: a8b561f68549658061625891c533e7d45996bc9e $' | ||
io_fmt_gitrev: '$Id: 61ab4e53ca49e21d56c416f0af0fa04d148e8001 $' | ||
config_gitrev: '$Id: 5192fced2cfa10be5e18e827922e31e7489ed987 $' | ||
ymlcfg_gitrev: '$Id: ce5e73bd5e8e0099334cb657afb7a624a99afbda $' |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to have the logfiles on the dashboard
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add "SPIKE_TANDEM: 1" to enable tandem and collect the ci results ?