udb 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.data/spec/schemas/README.adoc +6 -3
  3. data/.data/spec/schemas/csr_schema.json +1 -5
  4. data/.data/spec/std/isa/csr/Smrnmi/mnstatus.yaml +0 -11
  5. data/.data/spec/std/isa/csr/hstatus.yaml +0 -2
  6. data/.data/spec/std/isa/csr/mconfigptr.yaml +0 -3
  7. data/.data/spec/std/isa/csr/misa.yaml +0 -4
  8. data/.data/spec/std/isa/csr/mstatus.yaml +0 -13
  9. data/.data/spec/std/isa/csr/schema.adoc +0 -6
  10. data/lib/udb/doc_link.rb +16 -13
  11. data/lib/udb/paths.rb +91 -0
  12. data/lib/udb/resolver.rb +1 -79
  13. data/lib/udb/version.rb +2 -1
  14. data/lib/udb/yaml/yaml_resolver.rb +3 -2
  15. metadata +3 -27
  16. data/.data/spec/std/isa/ext/Xmock.yaml +0 -30
  17. data/.data/spec/std/isa/param/MOCK_1_BIT_INT.yaml +0 -17
  18. data/.data/spec/std/isa/param/MOCK_25_BIT_INT.yaml +0 -17
  19. data/.data/spec/std/isa/param/MOCK_2_BIT_INT.yaml +0 -17
  20. data/.data/spec/std/isa/param/MOCK_32_BIT_INT.yaml +0 -17
  21. data/.data/spec/std/isa/param/MOCK_64_BIT_INT.yaml +0 -17
  22. data/.data/spec/std/isa/param/MOCK_ARRAY_BOOL_ARRAY_OF_8_FIRST_2_FALSE.yaml +0 -22
  23. data/.data/spec/std/isa/param/MOCK_ARRAY_INT_ENUM.yaml +0 -23
  24. data/.data/spec/std/isa/param/MOCK_ARRAY_MAX_ONLY.yaml +0 -21
  25. data/.data/spec/std/isa/param/MOCK_ARRAY_MIN_ONLY.yaml +0 -21
  26. data/.data/spec/std/isa/param/MOCK_ARRAY_STRING_ENUM1.yaml +0 -21
  27. data/.data/spec/std/isa/param/MOCK_ARRAY_STRING_ENUM2.yaml +0 -21
  28. data/.data/spec/std/isa/param/MOCK_BOOL_1.yaml +0 -15
  29. data/.data/spec/std/isa/param/MOCK_BOOL_2.yaml +0 -15
  30. data/.data/spec/std/isa/param/MOCK_ENUM_2_INTS.yaml +0 -18
  31. data/.data/spec/std/isa/param/MOCK_ENUM_2_STRINGS.yaml +0 -18
  32. data/.data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_1023.yaml +0 -17
  33. data/.data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_127.yaml +0 -17
  34. data/.data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_128.yaml +0 -17
  35. data/.data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_2.yaml +0 -17
  36. data/.data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_999.yaml +0 -17
  37. data/.data/spec/std/isa/param/MOCK_INT_RANGE_1000_TO_2048.yaml +0 -17
  38. data/.data/spec/std/isa/param/MOCK_INT_RANGE_1_TO_128.yaml +0 -17
  39. data/.data/spec/std/isa/proc_cert_class/MockProcessor.yaml +0 -13
  40. data/.data/spec/std/isa/profile_family/Mock.yaml +0 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cba91646e49cff73f519ba03d2e8af8231c4452112a4ff8b897eda049210c128
4
- data.tar.gz: 4678776cb3b1405c5171d6016ccaec35135cdaf5785437c77b16b7a37c8d13c9
3
+ metadata.gz: d153646bfddc91ed1ea91a1682e7a38185601ecdb3a930d20c997c9609cddcfa
4
+ data.tar.gz: 557547a04c8a9fba8c9d1af6aee8d2707c5ce4fa899371e171482fb2037cfc51
5
5
  SHA512:
6
- metadata.gz: cbcb181aafd72f9d7fb904125f272872bfebb7c9a900d648412f01ea7b541d35cc4b27b4ae0b22b6008e45dcd565776ac49819eea4a2d9985a16d1faec938f81
7
- data.tar.gz: 732cdfe4b0b6273034cae2308316991cf25f141c504221d5762250b803b0894a8ec2c47bfef646659ce3c6273ae6e83000e67e86f3955a3f28161b9ffa35986b
6
+ metadata.gz: 27848eabc18fca2cb68d75a062cab95157c4b2c8464910059ac45bf81eba0079aee491556d0e4c93d356bb2cebb506b64eb6435acbf6ea9ba10eb7138d3b96d2
7
+ data.tar.gz: 4603d6032e3762b1e16e805b63a328d52fb7766b6e4903dd351dfb5a69ca4db09614089e8a30a00cef69a0fa097f61706236f9d5b60fececd4d79fd8827cc70f
@@ -33,8 +33,11 @@ published as GitHub releases under the tag `schemas/<schema_name>/<version>`.
33
33
  |===
34
34
  | Version | Published URL
35
35
 
36
- | 0.1 (current)
37
- | https://riscv.github.io/riscv-unified-db/schemas/csr_schema.json/v0.1/csr_schema.json (example)
36
+ | 0.1 (current for all schemas except csr_schema.json)
37
+ | https://riscv.github.io/riscv-unified-db/schemas/ext_schema.json/v0.1/ext_schema.json (example)
38
+
39
+ | 0.2 (current for csr_schema.json)
40
+ | https://riscv.github.io/riscv-unified-db/schemas/csr_schema.json/v0.2/csr_schema.json
38
41
  |===
39
42
 
40
43
  == Schema Identification (`$id`)
@@ -43,7 +46,7 @@ Every schema file contains a top-level `$id` key whose value is the version
43
46
  string (e.g. `v0.1`). Source data files reference schemas using the bare
44
47
  filename (e.g. `csr_schema.json#`). When data files are resolved, the
45
48
  `$schema` field is rewritten to include the version prefix
46
- (e.g. `v0.1/csr_schema.json#`) so that the resolved file records the exact
49
+ (e.g. `v0.2/csr_schema.json#`) so that the resolved file records the exact
47
50
  schema version used.
48
51
 
49
52
  [source,json]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "v0.1",
3
+ "$id": "v0.2",
4
4
  "title": "CSR description",
5
5
  "description": "A CSR register specification",
6
6
  "$defs": {
@@ -57,10 +57,6 @@
57
57
  "sw_write_ast": {
58
58
  "type": "object"
59
59
  },
60
- "legal?(csr_value)": {
61
- "type": "string",
62
- "description": "Function that returns whether or not an attempted value for the field is legal. The csr_value parameter is the *entire* attempted CSR write value. Fields within the attempted write value can be accessed with a dot operator (e.g., csr_value.SXL, csr_value.VGEIN, ...)"
63
- },
64
60
  "description": {
65
61
  "$ref": "schema_defs.json#/$defs/spec_text",
66
62
  "description": "Function of the field"
@@ -50,17 +50,6 @@ fields:
50
50
  } else {
51
51
  return csr_value.MNPP;
52
52
  }
53
- legal?(csr_value): |
54
- if (csr_value.MNPP == 2'b01 && !implemented?(ExtensionName::S)) {
55
- return false;
56
- } else if (csr_value.MNPP == 2'b00 && !implemented?(ExtensionName::U)) {
57
- return false;
58
- } else if (csr_value.MNPP == 2'b10) {
59
- # never a valid value
60
- return false;
61
- } else {
62
- return true;
63
- }
64
53
  MNPELP:
65
54
  location: 9
66
55
  description: |
@@ -145,8 +145,6 @@ fields:
145
145
  return CsrFieldType::RWR;
146
146
  }
147
147
  reset_value: UNDEFINED_LEGAL
148
- legal?(csr_value): |
149
- return csr_value.VGEIN <= NUM_EXTERNAL_GUEST_INTERRUPTS;
150
148
  sw_write(csr_value): |
151
149
  if (csr_value.VGEIN <= NUM_EXTERNAL_GUEST_INTERRUPTS) {
152
150
  return csr_value.VGEIN;
@@ -56,6 +56,3 @@ fields:
56
56
  type: RO
57
57
  reset_value(): |
58
58
  return CONFIG_PTR_ADDRESS;
59
- legal?(csr_value): |
60
- # pointer must be naturally aligned to MXLEN
61
- return ((MXLEN-1) | csr_value.ADDRESS) == 0;
@@ -109,8 +109,6 @@ fields:
109
109
 
110
110
  # fall-through; write the intended value
111
111
  return csr_value.F;
112
- legal?(csr_value): |
113
- return !(csr_value.F == 0 && csr_value.D == 1);
114
112
  G:
115
113
  location: 6
116
114
  description: |
@@ -195,8 +193,6 @@ fields:
195
193
 
196
194
  # fall-through; write the intended value
197
195
  return csr_value.Q;
198
- legal?(csr_value): |
199
- return !(csr_value.Q == 1 && csr_value.D == 0);
200
196
  S:
201
197
  location: 18
202
198
  description: |
@@ -433,17 +433,6 @@ fields:
433
433
  } else {
434
434
  return csr_value.MPP;
435
435
  }
436
- legal?(csr_value): |
437
- if (csr_value.MPP == 2'b01 && !implemented?(ExtensionName::S)) {
438
- return false;
439
- } else if (csr_value.MPP == 2'b00 && !implemented?(ExtensionName::U)) {
440
- return false;
441
- } else if (csr_value.MPP == 2'b10) {
442
- # never a valid value
443
- return false;
444
- } else {
445
- return true;
446
- }
447
436
  VS:
448
437
  location: 10-9
449
438
  long_name: Vector context Status
@@ -524,8 +513,6 @@ fields:
524
513
  } else {
525
514
  return csr_value.SPP;
526
515
  }
527
- legal?(csr_value): |
528
- return csr_value.SPP != 2'b10;
529
516
  MPIE:
530
517
  location: 7
531
518
  long_name: M-mode Previous Interrupt Enable
@@ -212,12 +212,6 @@ Custom Write Function::
212
212
  | *description* | Function implementing custom write behavior for the CSR. The csr_value parameter is the *entire* attempted CSR write value. Fields within the attempted write value can be accessed with a dot operator (e.g., csr_value.SXL, csr_value.VGEIN, ...)
213
213
  |===
214
214
 
215
- |===
216
- | *key* | legal?(csr_value)
217
- | *value type* | String of IDL code that returns whether or not an attempted write is legal
218
- | *description* | Function that returns whether or not an attempted value for the field is legal. The csr_value parameter is the *entire* attempted CSR write value. Fields within the attempted write value can be accessed with a dot operator (e.g., csr_value.SXL, csr_value.VGEIN, ...)
219
- |===
220
-
221
215
  Alias::
222
216
 
223
217
  Some fields are aliases for another field, often in a different CSR. THe `alias` key is used to indicate that this field just points somewhere else.
data/lib/udb/doc_link.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
3
  # SPDX-License-Identifier: BSD-3-Clause-Clear
3
4
 
@@ -29,21 +30,23 @@
29
30
  # where <id> is the ID of the normative rule
30
31
  # IDL code idl:code:inst:<inst-name>:<location>
31
32
  # TODO for CSR and CSR Fields
32
- class Udb::DocLink
33
- # @param dst_link [String] The documentation link provided in the YAML
34
- # @param db_obj [String] Database object
35
- def initialize(dst_link, db_obj)
36
- raise ArgumentError, "Need String but was passed a #{data.class}" unless dst_link.is_a?(String)
37
- @dst_link = dst_link
33
+ module Udb
34
+ class DocLink
35
+ # @param dst_link [String] The documentation link provided in the YAML
36
+ # @param db_obj [String] Database object
37
+ def initialize(dst_link, db_obj)
38
+ raise ArgumentError, "Need String but was passed a #{data.class}" unless dst_link.is_a?(String)
39
+ @dst_link = dst_link
38
40
 
39
- raise ArgumentError, "Missing documentation link for #{db_obj.name} of kind #{db_obj.kind}" if @dst_link.nil?
40
- end
41
+ raise ArgumentError, "Missing documentation link for #{db_obj.name} of kind #{db_obj.kind}" if @dst_link.nil?
42
+ end
41
43
 
42
- # @return [String] Unique ID of the linked to normative rule
43
- def dst_link = @dst_link
44
+ # @return [String] Unique ID of the linked to normative rule
45
+ def dst_link = @dst_link
44
46
 
45
- # @return [String] Asciidoc to create desired link.
46
- def to_adoc
47
- "<<#{@dst_link},#{@dst_link}>>"
47
+ # @return [String] Asciidoc to create desired link.
48
+ def to_adoc
49
+ "<<#{@dst_link},#{@dst_link}>>"
50
+ end
48
51
  end
49
52
  end
data/lib/udb/paths.rb ADDED
@@ -0,0 +1,91 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+
4
+ # typed: true
5
+ # frozen_string_literal: true
6
+
7
+ require "pathname"
8
+ require "sorbet-runtime"
9
+
10
+ require_relative "version"
11
+
12
+ module Udb
13
+ extend T::Sig
14
+
15
+ sig { returns(Pathname) }
16
+ def self.gem_path
17
+ @gem_path ||= Pathname.new(Gem::Specification.find_by_name("udb").full_gem_path)
18
+ end
19
+
20
+ sig { params(from_dir: Pathname).returns(T.nilable(Pathname)) }
21
+ def self.find_udb_root(from_dir)
22
+ if from_dir.root?
23
+ nil
24
+ elsif (from_dir / "do").executable? && (from_dir / "spec").directory?
25
+ from_dir
26
+ else
27
+ find_udb_root(from_dir.dirname)
28
+ end
29
+ end
30
+ private_class_method :find_udb_root
31
+
32
+ sig { returns(T.nilable(Pathname)) }
33
+ def self.repo_root
34
+ @root ||=
35
+ if ENV.key?("UDB_ROOT")
36
+ Pathname.new(ENV["UDB_ROOT"])
37
+ else
38
+ find_udb_root(Pathname.new(__dir__))
39
+ end
40
+ end
41
+
42
+ sig { returns(Pathname) }
43
+ def self.default_std_isa_path
44
+ if repo_root.nil?
45
+ # not in the udb repo. try for a copy of the database stored with the gem
46
+ gem_path / ".data" / "spec" / "std" / "isa"
47
+ else
48
+ T.must(repo_root) / "spec" / "std" / "isa"
49
+ end
50
+ end
51
+
52
+ sig { returns(Pathname) }
53
+ def self.default_custom_isa_path
54
+ if repo_root.nil?
55
+ # not in the udb repo. try for a copy of the database stored with the gem
56
+ gem_path / ".data" / "spec" / "custom" / "isa"
57
+ else
58
+ T.must(repo_root) / "spec" / "custom" / "isa"
59
+ end
60
+ end
61
+
62
+ sig { returns(Pathname) }
63
+ def self.default_schemas_path
64
+ if repo_root.nil?
65
+ # not in the udb repo. try for a copy of the database stored with the gem
66
+ gem_path / ".data" / "spec" / "schemas"
67
+ else
68
+ T.must(repo_root) / "spec" / "schemas"
69
+ end
70
+ end
71
+
72
+ sig { returns(Pathname) }
73
+ def self.default_gen_path
74
+ if repo_root.nil?
75
+ # not in the udb repo. use XDG path
76
+ data_home = Pathname.new(ENV.fetch("XDG_DATA_HOME", "#{ENV["HOME"]}/.local/share"))
77
+ data_home / "udb" / Udb.version / "gen"
78
+ else
79
+ T.must(repo_root) / "gen"
80
+ end
81
+ end
82
+
83
+ sig { returns(Pathname) }
84
+ def self.default_cfgs_path
85
+ if repo_root.nil?
86
+ gem_path / ".data" / "cfgs"
87
+ else
88
+ T.must(repo_root) / "cfgs"
89
+ end
90
+ end
91
+ end
data/lib/udb/resolver.rb CHANGED
@@ -9,88 +9,10 @@ require "concurrent/hash"
9
9
  require "sorbet-runtime"
10
10
 
11
11
  require_relative "cfg_arch"
12
+ require_relative "paths"
12
13
  require_relative "yaml/yaml_resolver"
13
14
 
14
15
  module Udb
15
- extend T::Sig
16
-
17
- sig { returns(Pathname) }
18
- def self.gem_path
19
- @gem_path ||= Pathname.new(Gem::Specification.find_by_name("udb").full_gem_path)
20
- end
21
-
22
- sig { params(from_dir: Pathname).returns(T.nilable(Pathname)) }
23
- def self.find_udb_root(from_dir)
24
- if from_dir.root?
25
- nil
26
- elsif (from_dir / "do").executable? && (from_dir / "spec").directory?
27
- from_dir
28
- else
29
- find_udb_root(from_dir.dirname)
30
- end
31
- end
32
- private_class_method :find_udb_root
33
-
34
- sig { returns(T.nilable(Pathname)) }
35
- def self.repo_root
36
- @root ||=
37
- if ENV.key?("UDB_ROOT")
38
- Pathname.new(ENV["UDB_ROOT"])
39
- else
40
- find_udb_root(Pathname.new(__dir__))
41
- end
42
- end
43
-
44
- sig { returns(Pathname) }
45
- def self.default_std_isa_path
46
- if repo_root.nil?
47
- # not in the udb repo. try for a copy of the database stored with the gem
48
- gem_path / ".data" / "spec" / "std" / "isa"
49
- else
50
- T.must(repo_root) / "spec" / "std" / "isa"
51
- end
52
- end
53
-
54
- sig { returns(Pathname) }
55
- def self.default_custom_isa_path
56
- if repo_root.nil?
57
- # not in the udb repo. try for a copy of the database stored with the gem
58
- gem_path / ".data" / "spec" / "custom" / "isa"
59
- else
60
- T.must(repo_root) / "spec" / "custom" / "isa"
61
- end
62
- end
63
-
64
- sig { returns(Pathname) }
65
- def self.default_schemas_path
66
- if repo_root.nil?
67
- # not in the udb repo. try for a copy of the database stored with the gem
68
- gem_path / ".data" / "spec" / "schemas"
69
- else
70
- T.must(repo_root) / "spec" / "schemas"
71
- end
72
- end
73
-
74
- sig { returns(Pathname) }
75
- def self.default_gen_path
76
- if repo_root.nil?
77
- # not in the udb repo. use XDG path
78
- data_home = Pathname.new(ENV.fetch("XDG_DATA_HOME", "#{ENV["HOME"]}/.local/share"))
79
- data_home / "udb" / Udb.version / "gen"
80
- else
81
- T.must(repo_root) / "gen"
82
- end
83
- end
84
-
85
- sig { returns(Pathname) }
86
- def self.default_cfgs_path
87
- if repo_root.nil?
88
- gem_path / ".data" / "cfgs"
89
- else
90
- T.must(repo_root) / "cfgs"
91
- end
92
- end
93
-
94
16
  # resolves the specification in the context of a config, and writes to a generation folder
95
17
  #
96
18
  # The primary interface for users will be #cfg_arch_for
data/lib/udb/version.rb CHANGED
@@ -1,8 +1,9 @@
1
+ # typed: false
1
2
  # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
3
  # SPDX-License-Identifier: BSD-3-Clause-Clear
3
4
 
4
5
  # frozen_string_literal: true
5
6
 
6
7
  module Udb
7
- def self.version = "0.1.1"
8
+ def self.version = "0.1.3"
8
9
  end
@@ -16,6 +16,7 @@ require "idlc"
16
16
  require_relative "comment_parser"
17
17
  require_relative "preserving_emitter"
18
18
  require_relative "../log"
19
+ require_relative "../paths"
19
20
 
20
21
  module Udb
21
22
  module Yaml
@@ -44,11 +45,11 @@ module Udb
44
45
  end
45
46
 
46
47
  # Returns the path to JSON schema files.
47
- # Defaults to <repo_root>/spec/schemas but can be overridden via the constructor.
48
+ # Defaults to Udb.default_schemas_path but can be overridden via the constructor.
48
49
  sig { returns(Pathname) }
49
50
  def schemas_path
50
51
  if @schemas_path.nil?
51
- @schemas_path = Pathname.new(__dir__).parent.parent.parent.parent.parent.parent / "spec" / "schemas"
52
+ @schemas_path = Udb.default_schemas_path
52
53
  end
53
54
  T.must(@schemas_path)
54
55
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: udb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derek Hower
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2026-03-17 00:00:00.000000000 Z
12
+ date: 2026-03-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -1259,7 +1259,6 @@ files:
1259
1259
  - ".data/spec/std/isa/ext/Svvptc.yaml"
1260
1260
  - ".data/spec/std/isa/ext/U.yaml"
1261
1261
  - ".data/spec/std/isa/ext/V.yaml"
1262
- - ".data/spec/std/isa/ext/Xmock.yaml"
1263
1262
  - ".data/spec/std/isa/ext/Za128rs.yaml"
1264
1263
  - ".data/spec/std/isa/ext/Za64rs.yaml"
1265
1264
  - ".data/spec/std/isa/ext/Zaamo.yaml"
@@ -2824,28 +2823,6 @@ files:
2824
2823
  - ".data/spec/std/isa/param/MISALIGNED_MAX_ATOMICITY_GRANULE_SIZE.yaml"
2825
2824
  - ".data/spec/std/isa/param/MISALIGNED_SPLIT_STRATEGY.yaml"
2826
2825
  - ".data/spec/std/isa/param/MISA_CSR_IMPLEMENTED.yaml"
2827
- - ".data/spec/std/isa/param/MOCK_1_BIT_INT.yaml"
2828
- - ".data/spec/std/isa/param/MOCK_25_BIT_INT.yaml"
2829
- - ".data/spec/std/isa/param/MOCK_2_BIT_INT.yaml"
2830
- - ".data/spec/std/isa/param/MOCK_32_BIT_INT.yaml"
2831
- - ".data/spec/std/isa/param/MOCK_64_BIT_INT.yaml"
2832
- - ".data/spec/std/isa/param/MOCK_ARRAY_BOOL_ARRAY_OF_8_FIRST_2_FALSE.yaml"
2833
- - ".data/spec/std/isa/param/MOCK_ARRAY_INT_ENUM.yaml"
2834
- - ".data/spec/std/isa/param/MOCK_ARRAY_MAX_ONLY.yaml"
2835
- - ".data/spec/std/isa/param/MOCK_ARRAY_MIN_ONLY.yaml"
2836
- - ".data/spec/std/isa/param/MOCK_ARRAY_STRING_ENUM1.yaml"
2837
- - ".data/spec/std/isa/param/MOCK_ARRAY_STRING_ENUM2.yaml"
2838
- - ".data/spec/std/isa/param/MOCK_BOOL_1.yaml"
2839
- - ".data/spec/std/isa/param/MOCK_BOOL_2.yaml"
2840
- - ".data/spec/std/isa/param/MOCK_ENUM_2_INTS.yaml"
2841
- - ".data/spec/std/isa/param/MOCK_ENUM_2_STRINGS.yaml"
2842
- - ".data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_1023.yaml"
2843
- - ".data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_127.yaml"
2844
- - ".data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_128.yaml"
2845
- - ".data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_2.yaml"
2846
- - ".data/spec/std/isa/param/MOCK_INT_RANGE_0_TO_999.yaml"
2847
- - ".data/spec/std/isa/param/MOCK_INT_RANGE_1000_TO_2048.yaml"
2848
- - ".data/spec/std/isa/param/MOCK_INT_RANGE_1_TO_128.yaml"
2849
2826
  - ".data/spec/std/isa/param/MSTATEEN_AIA_TYPE.yaml"
2850
2827
  - ".data/spec/std/isa/param/MSTATEEN_CONTEXT_TYPE.yaml"
2851
2828
  - ".data/spec/std/isa/param/MSTATEEN_CSRIND_TYPE.yaml"
@@ -3005,7 +2982,6 @@ files:
3005
2982
  - ".data/spec/std/isa/param/VU_MODE_ENDIANNESS.yaml"
3006
2983
  - ".data/spec/std/isa/proc_cert_class/AC.yaml"
3007
2984
  - ".data/spec/std/isa/proc_cert_class/MC.yaml"
3008
- - ".data/spec/std/isa/proc_cert_class/MockProcessor.yaml"
3009
2985
  - ".data/spec/std/isa/proc_cert_class/RVI.yaml"
3010
2986
  - ".data/spec/std/isa/proc_cert_model/AC100.yaml"
3011
2987
  - ".data/spec/std/isa/proc_cert_model/AC200.yaml"
@@ -3029,7 +3005,6 @@ files:
3029
3005
  - ".data/spec/std/isa/profile/RVB23U64.yaml"
3030
3006
  - ".data/spec/std/isa/profile/RVI20U32.yaml"
3031
3007
  - ".data/spec/std/isa/profile/RVI20U64.yaml"
3032
- - ".data/spec/std/isa/profile_family/Mock.yaml"
3033
3008
  - ".data/spec/std/isa/profile_family/RVA.yaml"
3034
3009
  - ".data/spec/std/isa/profile_family/RVB.yaml"
3035
3010
  - ".data/spec/std/isa/profile_family/RVI.yaml"
@@ -3083,6 +3058,7 @@ files:
3083
3058
  - lib/udb/obj/prm.rb
3084
3059
  - lib/udb/obj/profile.rb
3085
3060
  - lib/udb/obj/register_file.rb
3061
+ - lib/udb/paths.rb
3086
3062
  - lib/udb/portfolio_design.rb
3087
3063
  - lib/udb/presence.rb
3088
3064
  - lib/udb/prm_generator.rb
@@ -1,30 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/ext_schema.json
5
-
6
- $schema: "ext_schema.json#"
7
- kind: extension
8
- name: Xmock
9
- type: privileged
10
- long_name: Mock Extension (for testing database)
11
- description: This is just for testing
12
- versions:
13
- - version: "0.9.9"
14
- state: development
15
- - version: "1.0.0"
16
- state: ratified
17
- ratification_date: 2024-04
18
-
19
- cert_normative_rules:
20
- - id: ext.Xmock.cov1
21
- name: Mock normative rule 1
22
- description: Let's have fun with the `Xmock` extension
23
- doc_links:
24
- - manual:inst:mul:encoding
25
- - udb:doc:inst:mock
26
- - id: ext.Xmock.cov2
27
- name: Mock normative rule 2
28
- description: And some more fun!
29
- doc_links:
30
- - manual:csr:misa:disabling-extension
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_1_BIT_INT
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 1
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_25_BIT_INT
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 33554431
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_2_BIT_INT
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 3
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_32_BIT_INT
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 4294967295
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_64_BIT_INT
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 18446744073709551615
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,22 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_ARRAY_BOOL_ARRAY_OF_8_FIRST_2_FALSE
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: array
13
- items:
14
- - const: false
15
- - const: false
16
- additionalItems:
17
- type: boolean
18
- maxItems: 8
19
- minItems: 8
20
- definedBy:
21
- extension:
22
- name: Xmock
@@ -1,23 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_ARRAY_INT_ENUM
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: array
13
- items:
14
- type: integer
15
- enum:
16
- - 0
17
- - 1
18
- minItems: 1
19
- maxItems: 2
20
- uniqueItems: true
21
- definedBy:
22
- extension:
23
- name: Xmock
@@ -1,21 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_ARRAY_MAX_ONLY
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: array
13
- items:
14
- type: integer
15
- enum:
16
- - 0
17
- - 1
18
- maxItems: 10
19
- definedBy:
20
- extension:
21
- name: Xmock
@@ -1,21 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_ARRAY_MIN_ONLY
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: array
13
- items:
14
- type: integer
15
- enum:
16
- - 0
17
- - 1
18
- minItems: 3
19
- definedBy:
20
- extension:
21
- name: Xmock
@@ -1,21 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_ARRAY_STRING_ENUM1
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: array
13
- items:
14
- type: string
15
- enum:
16
- - ABC
17
- - DEF
18
- - GHI
19
- definedBy:
20
- extension:
21
- name: Xmock
@@ -1,21 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_ARRAY_STRING_ENUM2
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: array
13
- items:
14
- type: string
15
- enum:
16
- - ABC
17
- - DEF
18
- - GHI
19
- definedBy:
20
- extension:
21
- name: Xmock
@@ -1,15 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_BOOL_1
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: boolean
13
- definedBy:
14
- extension:
15
- name: Xmock
@@ -1,15 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_BOOL_2
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: boolean
13
- definedBy:
14
- extension:
15
- name: Xmock
@@ -1,18 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_ENUM_2_INTS
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- enum:
14
- - 32
15
- - 64
16
- definedBy:
17
- extension:
18
- name: Xmock
@@ -1,18 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_ENUM_2_STRINGS
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: string
13
- enum:
14
- - low
15
- - high
16
- definedBy:
17
- extension:
18
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_INT_RANGE_0_TO_1023
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 1023
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_INT_RANGE_0_TO_127
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 127
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_INT_RANGE_0_TO_128
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 128
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_INT_RANGE_0_TO_2
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 2
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_INT_RANGE_0_TO_999
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 0
14
- maximum: 999
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_INT_RANGE_1000_TO_2048
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 1000
14
- maximum: 2048
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,17 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/param_schema.json
5
-
6
- $schema: param_schema.json#
7
- kind: parameter
8
- name: MOCK_INT_RANGE_1_TO_128
9
- description: foo
10
- long_name: TODO
11
- schema:
12
- type: integer
13
- minimum: 1
14
- maximum: 128
15
- definedBy:
16
- extension:
17
- name: Xmock
@@ -1,13 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/proc_cert_class_schema.json
5
-
6
- $schema: proc_cert_class_schema.json#
7
- kind: processor certificate class
8
- processor_kind: Apps Processor
9
- name: MockProcessor
10
- long_name: Mock Processor Certificate Class Long Name
11
-
12
- introduction: |
13
- Here's the Mock Certificate Class introduction.
@@ -1,24 +0,0 @@
1
- # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
- # SPDX-License-Identifier: BSD-3-Clause-Clear
3
-
4
- # yaml-language-server: $schema=../../../schemas/profile_family_schema.json
5
-
6
- $schema: profile_family_schema.json#
7
- kind: profile family
8
- processor_kind: Microcontroller
9
- name: Mock
10
- long_name: Mock Profile Family
11
- marketing_name: Mock Profile Family
12
- introduction: Here's the Mock Profile Family introduction.
13
- description: |
14
- This is the Mock Profile Family description.
15
- It can be longer than the introduction since it gets its own sub-heading.
16
- naming_scheme: |
17
- Here's the Mock Profile Family naming scheme.
18
- company:
19
- name: RISC-V International
20
- url: https://riscv.org
21
- doc_license:
22
- name: Creative Commons Attribution 4.0 International License
23
- url: https://creativecommons.org/licenses/by/4.0/
24
- text_url: https://creativecommons.org/licenses/by/4.0/legalcode.txt