diff --git a/Rakefile b/Rakefile
index c28b276c6..434aab66b 100755
--- a/Rakefile
+++ b/Rakefile
@@ -489,6 +489,10 @@ task :portfolios do
Rake::Task["#{$root}/gen/proc_ctp/pdf/MockProcessor-CTP.pdf"].invoke
portfolio_start_msg("MockProfileRelease")
Rake::Task["#{$root}/gen/profile/pdf/MockProfileRelease.pdf"].invoke
+ portfolio_start_msg("RVI20-32-CTP")
+ Rake::Task["#{$root}/gen/proc_ctp/pdf/RVI20-32-CTP.pdf"].invoke
+ portfolio_start_msg("RVI20-64-CTP")
+ Rake::Task["#{$root}/gen/proc_ctp/pdf/RVI20-64-CTP.pdf"].invoke
portfolio_start_msg("MC100-32-CTP")
Rake::Task["#{$root}/gen/proc_ctp/pdf/MC100-32-CTP.pdf"].invoke
portfolio_start_msg("MC100-32-CRD")
@@ -534,6 +538,8 @@ task "MockCTP": "#{$root}/gen/proc_ctp/pdf/MockProcessor-CTP.pdf"
task "MockProcessorCTP": "#{$root}/gen/proc_ctp/pdf/MockProcessor-CTP.pdf"
task "MockCTP-HTML": "#{$root}/gen/proc_ctp/pdf/MockProcessor-CTP.html"
task "MockProcessorCTP-HTML": "#{$root}/gen/proc_ctp/pdf/MockProcessor-CTP.html"
+task "RVI20-32-CTP": "#{$root}/gen/proc_ctp/pdf/RVI20-32-CTP.pdf"
+task "RVI20-64-CTP": "#{$root}/gen/proc_ctp/pdf/RVI20-64-CTP.pdf"
task "MC100-32-CTP": "#{$root}/gen/proc_ctp/pdf/MC100-32-CTP.pdf"
task "MC100-32-CTP-HTML": "#{$root}/gen/proc_ctp/pdf/MC100-32-CTP.html"
task "MC100-32-CRD": "#{$root}/gen/proc_crd/pdf/MC100-32-CRD.pdf"
diff --git a/spec/std/isa/proc_cert_class/RVI.yaml b/spec/std/isa/proc_cert_class/RVI.yaml
new file mode 100644
index 000000000..9511bc255
--- /dev/null
+++ b/spec/std/isa/proc_cert_class/RVI.yaml
@@ -0,0 +1,16 @@
+# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+# SPDX-License-Identifier: BSD-3-Clause-Clear
+
+# yaml-language-server: $schema=../../schemas/proc_cert_class_schema.json
+
+$schema: proc_cert_class_schema.json#
+kind: processor certificate class
+processor_kind: Generic Unprivileged
+name: RVI
+long_name: RVI Certificate Class
+
+introduction: |
+ The RVI certificate class corresponds to the RVI Profile Family.
+ This certificate class only includes the RISC-V Unprivileged ISA.
+ Certificates for the RVI certificate class are intended for internal
+ use by the RVCP (RISC-V Certification Program).
diff --git a/spec/std/isa/proc_cert_model/RVI20-32.yaml b/spec/std/isa/proc_cert_model/RVI20-32.yaml
new file mode 100644
index 000000000..6a14e3181
--- /dev/null
+++ b/spec/std/isa/proc_cert_model/RVI20-32.yaml
@@ -0,0 +1,39 @@
+# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+# SPDX-License-Identifier: BSD-3-Clause-Clear
+
+# yaml-language-server: $schema=../../schemas/proc_cert_model_schema.json
+
+$schema: proc_cert_model_schema.json#
+kind: processor certificate model
+name: RVI20-32
+long_name: 32-bit RVI20 Certificate
+class:
+ $ref: proc_cert_class/RVI.yaml#
+
+# MXLEN
+base: 32
+
+# Semantic versions within the model
+versions:
+ - version: "1.0.0"
+
+revision_history:
+ - revision: "0.1.0"
+ date: "2025-07-03"
+ changes:
+ - Created
+
+introduction: |
+ The RVI20-32 processor certificate corresponds to the RVI20U32 profile.
+
+# Specification versions
+tsc_profile_release:
+ $ref: profile_release/RVI20.yaml#
+unpriv_isa_manual_revision: "20240411"
+
+in_scope_priv_modes:
+ - U
+
+extensions:
+ $inherits:
+ - "profile/RVI20U32.yaml#/extensions"
diff --git a/spec/std/isa/proc_cert_model/RVI20-64.yaml b/spec/std/isa/proc_cert_model/RVI20-64.yaml
new file mode 100644
index 000000000..c9f6d9392
--- /dev/null
+++ b/spec/std/isa/proc_cert_model/RVI20-64.yaml
@@ -0,0 +1,19 @@
+# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+# SPDX-License-Identifier: BSD-3-Clause-Clear
+
+# yaml-language-server: $schema=../../schemas/proc_cert_model_schema.json
+
+$schema: proc_cert_model_schema.json#
+kind: processor certificate model
+name: RVI20-64
+long_name: 64-bit RVI20 Certificate
+class:
+ $ref: proc_cert_class/RVI.yaml#
+
+$inherits: "proc_cert_model/RVI20-32.yaml#"
+
+# MXLEN
+base: 64
+
+introduction: |
+ The RVI20-64 processor certificate corresponds to the RVI20U64 profile.
diff --git a/tools/scripts/deploy.sh b/tools/scripts/deploy.sh
index b1b222b48..b8fd614a5 100755
--- a/tools/scripts/deploy.sh
+++ b/tools/scripts/deploy.sh
@@ -130,6 +130,8 @@ parallel ::: \
"./do gen:proc_crd_pdf[MC200-64]" \
"./do gen:proc_crd_pdf[MC300-32]" \
"./do gen:proc_crd_pdf[MC300-64]" \
+ "./do gen:proc_ctp_pdf[RVI20-32]" \
+ "./do gen:proc_ctp_pdf[RVI20-64]" \
"./do gen:proc_ctp_pdf[MC100-32]" \
"./do gen:proc_ctp_pdf[MockProcessor]"
@@ -160,7 +162,7 @@ for crd in AC100 AC200 MC100-32 MC100-64 MC200-32 MC200-64 MC300-32 MC300-64; do
deploy_cp gen/proc_crd/pdf/${crd}-CRD.pdf $DEPLOY_DIR/pdfs
done
-for ctp in MC100-32 MockProcessor; do
+for ctp in RVI20-32 RVI20-64 MC100-32 MockProcessor; do
deploy_log "Copy ${ctp}-CTP PDF"
deploy_cp gen/proc_ctp/pdf/${ctp}-CTP.pdf $DEPLOY_DIR/pdfs
done
@@ -244,6 +246,8 @@ cat <<- EOF > $DEPLOY_DIR/index.html