blob: cc9e5ecbdcf491518c0a5bf37efdacc22e79d028 [file] [log] [blame]
<!-- Copyright (c) 2010-2025 Arm Limited or its affiliates. All rights reserved. -->
<!-- This document is Non-confidential and licensed under the BSD 3-clause license. -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<!--FAVICON.ico-->
<meta name="msapplication-TileColor" content="#2b5797">
<meta name="msapplication-TileImage" content="../img/mstile-144x144.png">
<link rel="icon" href="../img/favicon.ico">
<title>Field - ARM Machine Readable Schema - 2.7.1</title>
<!--CSS-->
<link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../css/schema.css">
<link rel="stylesheet" type="text/css" href="../css/hljs-github.css">
</head>
<body>
<div class="container">
<div class="row heading">
<div class="col-md-6 pull-left"><a href="../index.html"><img src="../img/arm.svg" class="logo" /></a></div>
<div class="col-md-6 pull-left"><h1>AARCHMRS Schema <small>2.7.1</small></h1></div>
<!--Show the home button-->
<a href="../index.html"><div class="back-to-home">&nlarr; Home</div></a>
</div>
</div>
<div class="container">
<div class="row">
<h2>
<span class="title-namespace">Fields.</span><span class=" title-type">Field</span>
<!-- if oneOf is set, then type is ignored -->
<span class="type">object</span>
</h2>
<div class="static-markdown"><p>A Field defines a named field with the meaning definition of each of its known values.</p></div>
</div>
<div class="row">
<div>
<!-- A simple object -->
<h3 class="type">object</h3>
<table class="table table-hover properties">
<thead>
<tr>
<th class="col-md-4">Properties</th>
<th class="col-md-4">Type</th>
<th class="col-md-4">Description</th>
</tr>
</thead>
<tbody>
<!-- properties -->
<tr id="/properties/_meta" class="property">
<th class="col-md-4">
<a href="#/properties/_meta">_meta</a>
</th>
<td class="col-md-4">
<a href="../Meta_schema.html" class="schema_link">Meta</a>
</td>
<td class="col-md-4">
<div>
See
<a href="../Meta_schema.html" class="schema_link">Meta</a>
for more information.
</div>
</td>
</tr>
<tr id="/properties/_type" class="property">
<th class="col-md-4">
<a href="#/properties/_type">_type</a>
</th>
<td class="col-md-4">
</td>
<td class="col-md-4">
<dl>
<dt>Enum</dt>
<dd>
<code>Fields.Field</code>
</dd>
</dl>
</td>
</tr>
<tr id="/properties/access" class="property">
<th class="col-md-4">
<a href="#/properties/access">access</a>
</th>
<td class="col-md-4">
<a href="../Traits/HasFieldAccess_schema.html#/definitions/access" class="schema_link">Traits.HasFieldAccess</a>
</td>
<td class="col-md-4">
<div>
See
<a href="../Traits/HasFieldAccess_schema.html#/definitions/access" class="schema_link">definitions.access</a> in
<a href="../Traits/HasFieldAccess_schema.html#/definitions/access" class="schema_link">Traits.HasFieldAccess</a>
for more information.
</div>
</td>
</tr>
<tr id="/properties/description" class="property">
<th class="col-md-4">
<a href="#/properties/description">description</a>
</th>
<td class="col-md-4">
<a href="../Traits/HasDescription_schema.html#/definitions/description" class="schema_link">Traits.HasDescription</a>
</td>
<td class="col-md-4">
<div><p>Provides an architectural description of this field.</p>
<p>You can use a dictionary that contains <code>before</code> and <code>after</code> keys, where:</p>
<ul>
<li>The <code>before</code> key is used to define architectural information that should be rendered before the values are represented.</li>
<li>The <code>after</code> key is used to define architectural information that should be rendered description after the values are represented.</li>
</ul>
<p>If the property value is of type <code>string</code>, this behaves as having a description with just the <em>before</em> key,
<code>before</code> and <code>after</code> have no architectural significance, this is just for rendering.</p></div>
<div>
See
<a href="../Traits/HasDescription_schema.html#/definitions/description" class="schema_link">definitions.description</a> in
<a href="../Traits/HasDescription_schema.html#/definitions/description" class="schema_link">Traits.HasDescription</a>
for more information.
</div>
</td>
</tr>
<tr id="/properties/display" class="property">
<th class="col-md-4 deprecated">
<a href="#/properties/display">display</a>
</th>
<td class="col-md-4">
<ul class="inline list-type">
<li class="inline type">string</li>
<li class="inline type">null</li>
</ul>
</td>
<td class="col-md-4">
<dl>
<dt>Deprecated</dt>
<dd>this property is deprecated and should not be used.</dd>
</dl>
<div><p>The display name of the field.</p>
<p>When null the <code>name</code> property is used as the display name.</p>
<p>Some architectural fields use this property, it is preferred to use the <code>name</code> property instead.</p></div>
</td>
</tr>
<tr id="/properties/name" class="property">
<th class="col-md-4">
<a href="#/properties/name">name<sup>&loz;</sup></a>
</th>
<td class="col-md-4">
<ul class="inline list-type">
<li class="inline type">string</li>
<li class="inline type">null</li>
</ul>
</td>
<td class="col-md-4">
<div><p>The canonical name of the field. The name must be unique within this fieldset.</p></div>
</td>
</tr>
<tr id="/properties/rangeset" class="property">
<th class="col-md-4">
<a href="#/properties/rangeset">rangeset<sup>&loz;</sup></a>
</th>
<td class="col-md-4">
<a href="../Rangeset_schema.html" class="schema_link">Rangeset</a>
</td>
<td class="col-md-4">
<div><p>A rangeset indicates the location this field appears in it's parent.</p>
<ul>
<li><code>0</code>: This field appears at the 0th location.</li>
<li><code>3:0</code>: This field is a 4 bit field spanning from the 3rd most significant bit (msb) to the 0th least significant bit (lsb) of it's parent.</li>
<li><code>5, 3:2, 0</code>: This field's msb is at 5th bit and lsb is at the 0th bit, with 4th bit and 1st bit not being a part of this field.</li>
</ul>
<p>The width of the rangeset represents the width of this field.</p></div>
<div>
See
<a href="../Rangeset_schema.html" class="schema_link">Rangeset</a>
for more information.
</div>
</td>
</tr>
<tr id="/properties/resets" class="property">
<th class="col-md-4">
<a href="#/properties/resets">resets</a>
</th>
<td class="col-md-4">
<a href="../FieldResets_schema.html" class="schema_link">FieldResets</a>
</td>
<td class="col-md-4">
<div><p>The reset value that applies to this field</p></div>
<div>
See
<a href="../FieldResets_schema.html" class="schema_link">FieldResets</a>
for more information.
</div>
</td>
</tr>
<tr id="/properties/values" class="property">
<th class="col-md-4">
<a href="#/properties/values">values</a>
</th>
<td class="col-md-4">
<a href="../Valuesets/ValuesetAbstract_schema.html#/definitions/children" class="schema_link">Valuesets.ValuesetAbstract</a>
</td>
<td class="col-md-4">
<div><p>A set of <strong>Value</strong> objects. Each object indicates one of the valid values that may be present in this field, along with a textual description of its meaning.</p></div>
<div>
See
<a href="../Valuesets/ValuesetAbstract_schema.html#/definitions/children" class="schema_link">definitions.children</a> in
<a href="../Valuesets/ValuesetAbstract_schema.html#/definitions/children" class="schema_link">Valuesets.ValuesetAbstract</a>
for more information.
</div>
</td>
</tr>
<tr id="/properties/volatile" class="property">
<th class="col-md-4">
<a href="#/properties/volatile">volatile</a>
</th>
<td class="col-md-4">
<ul class="inline list-type">
<li class="inline type">boolean</li>
</ul>
</td>
<td class="col-md-4">
<div><p>The volatile property indicates whether a field's value may change between different accesses, even if it does not appear to be modified. In general, it means that the field's value might be updated by the hardware.</p>
<p>For Example:</p>
<ul>
<li>A status register field changing value.</li>
<li>A counter incrementing.</li>
</ul></div>
<div>
<b>Default</b>
<pre class="schema-json"><code class="language-json">false</code></pre>
</div>
</td>
</tr>
<!-- patternProperties -->
<!-- object property attributes -->
<tr>
<td colspan="3">
<dl>
<dt>Additional Properties</dt>
<dd>Not Allowed</dd>
</dl>
</td>
</tr>
<tr>
<td colspan="3">
<dl>
<dt>&loz; Required</dt>
<dd>Properties marked with &loz; are required properties.</dd>
</dl>
</td>
</tr>
</tbody>
</table>
<!-- array, and it has described items -->
</div>
<h5>Examples</h5>
<div>
<pre class="schema-json"><code class="language-json">{
&#34;_type&#34;: &#34;Fields.Field&#34;,
&#34;name&#34;: &#34;F1&#34;,
&#34;rangeset&#34;: [
{
&#34;_type&#34;: &#34;Range&#34;,
&#34;start&#34;: 2,
&#34;width&#34;: 4
}
],
&#34;description&#34;: {
&#34;_type&#34;: &#34;Description&#34;,
&#34;before&#34;: &#34;A field in a register called F1&#34;,
&#34;after&#34;: &#34;All other values are reserved&#34;
},
&#34;values&#34;: {
&#34;_type&#34;: &#34;Valuesets.Values&#34;,
&#34;values&#34;: [
{
&#34;_type&#34;: &#34;Values.Value&#34;,
&#34;meaning&#34;: &#34;First value&#34;,
&#34;value&#34;: &#34;&#39;00&#39;&#34;
},
{
&#34;_type&#34;: &#34;Values.Value&#34;,
&#34;meaning&#34;: &#34;Second value&#34;,
&#34;value&#34;: &#34;&#39;10&#39;&#34;
},
{
&#34;_type&#34;: &#34;Values.Value&#34;,
&#34;meaning&#34;: &#34;Third value&#34;,
&#34;value&#34;: &#34;&#39;01&#39;&#34;
}
]
},
&#34;resets&#34;: {
&#34;_type&#34;: &#34;FieldResets&#34;,
&#34;domains&#34;: {
&#34;cold&#34;: {
&#34;_type&#34;: &#34;Values.Value&#34;,
&#34;value&#34;: &#34;&#39;00&#39;&#34;,
&#34;meaning&#34;: &#34;The reset value, which resets to First value&#34;
}
}
},
&#34;volatile&#34;: false
}</code></pre>
</div>
</div>
<div class="row schema">
<h3>Schema <small><a href="http://json-schema.org/draft-04/schema#">http://json-schema.org/draft-04/schema#</a></small></h3>
<pre class="schema-json"><code class="language-json">{
"info": [
"A Field defines a named field with the meaning definition of each of its known values."
],
"properties": {
"_meta": {
"$ref": "../Meta.json"
},
"_type": {
"enum": [
"Fields.Field"
]
},
"access": {
"$ref": "../Traits/HasFieldAccess.json#/definitions/access"
},
"description": {
"$ref": "../Traits/HasDescription.json#/definitions/description",
"info": [
"Provides an architectural description of this field.",
"You can use a dictionary that contains `before` and `after` keys, where:",
[
" - The `before` key is used to define architectural information that should be rendered before the values are represented.",
" - The `after` key is used to define architectural information that should be rendered description after the values are represented."
],
[
"If the property value is of type `string`, this behaves as having a description with just the _before_ key, ",
"`before` and `after` have no architectural significance, this is just for rendering."
]
]
},
"display": {
"info": [
"The display name of the field.",
"When null the `name` property is used as the display name.",
"Some architectural fields use this property, it is preferred to use the `name` property instead."
],
"deprecated": true,
"type": [
"string",
"null"
]
},
"volatile": {
"info": [
"The volatile property indicates whether a field's value may change between different accesses, even if it does not appear to be modified. In general, it means that the field's value might be updated by the hardware.",
"For Example:",
[
"- A status register field changing value.",
"- A counter incrementing."
]
],
"default": false,
"type": "boolean"
},
"name": {
"info": [
"The canonical name of the field. The name must be unique within this fieldset."
],
"type": [
"string",
"null"
]
},
"rangeset": {
"$ref": "../Rangeset.json",
"info": [
"A rangeset indicates the location this field appears in it's parent.",
[
" - `0`: This field appears at the 0th location.",
" - `3:0`: This field is a 4 bit field spanning from the 3rd most significant bit (msb) to the 0th least significant bit (lsb) of it's parent.",
" - `5, 3:2, 0`: This field's msb is at 5th bit and lsb is at the 0th bit, with 4th bit and 1st bit not being a part of this field."
],
"The width of the rangeset represents the width of this field."
]
},
"resets": {
"$ref": "../FieldResets.json",
"info": [
"The reset value that applies to this field"
]
},
"values": {
"$ref": "../Valuesets/ValuesetAbstract.json#/definitions/children",
"info": [
"A set of __Value__ objects. Each object indicates one of the valid values that may be present in this field, along with a textual description of its meaning."
]
}
},
"required": [
"name",
"rangeset"
],
"title": "Field",
"type": "object",
"examples": [
{
"_type": "Fields.Field",
"name": "F1",
"rangeset": [
{
"_type": "Range",
"start": 2,
"width": 4
}
],
"description": {
"_type": "Description",
"before": "A field in a register called F1",
"after": "All other values are reserved"
},
"values": {
"_type": "Valuesets.Values",
"values": [
{
"_type": "Values.Value",
"meaning": "First value",
"value": "'00'"
},
{
"_type": "Values.Value",
"meaning": "Second value",
"value": "'10'"
},
{
"_type": "Values.Value",
"meaning": "Third value",
"value": "'01'"
}
]
},
"resets": {
"_type": "FieldResets",
"domains": {
"cold": {
"_type": "Values.Value",
"value": "'00'",
"meaning": "The reset value, which resets to First value"
}
}
},
"volatile": false
}
],
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false
}</code></pre>
</div>
</div>
<div class="container">
<div class="footer text-right">
Copyright &copy; 2025 ARM Limited or its affiliates. All rights reserved.
</div>
</div>
<script src="../js/highlight/highlight.js"></script>
<script src="../js/highlight/languages/json.min.js"></script>
<script src="../js/highlight/languages/django.min.js"></script> <!-- JINJA2 -->
<script src="../js/highlight/languages/yaml.min.js"></script>
<script src="../js/highlight/languages/isa.js"></script>
<script type="text/javascript">
window.onload = function() {
hljs.configure({
cssSelector: ".schema-json code, .includes code, pre code",
noHighlightRe: /^(no-?highlight|nohl)$/i,
});
hljs.highlightAll()
};
</script>
</body>
</html>