| <!-- 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>ImplementationDefined - 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">↚ Home</div></a> | 
 |         </div> | 
 |     </div> | 
 |  | 
 |     <div class="container"> | 
 |          | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 | <div class="row"> | 
 |      | 
 |      | 
 |      | 
 |              | 
 |         <h2> | 
 |                 <span class="title-namespace">Fields.</span><span class=" title-type">ImplementationDefined</span> | 
 |  | 
 |             <!-- if oneOf is set, then type is ignored --> | 
 |                 <span class="type">object</span> | 
 |         </h2> | 
 |  | 
 |  | 
 |      | 
 |  | 
 |     <div class="static-markdown"><p>An <code>IMPLEMENTATION DEFINED</code> field is a field that is not fully defined by the architecture, so that implementations can insert their own fields.</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.ImplementationDefined</code> | 
 |                         </dd> | 
 |                     </dl> | 
 |                  | 
 |  | 
 |  | 
 |             </td> | 
 |         </tr> | 
 |          | 
 |         <tr id="/properties/constraints" class="property"> | 
 |                 <th class="col-md-4"> | 
 |                 <a href="#/properties/constraints">constraints</a> | 
 |             </th> | 
 |             <td class="col-md-4"> | 
 |                         <div><span class="type">array</span> [</div> | 
 |                            | 
 |      | 
 |  | 
 |          | 
 |             <div class="items-oneOf"> | 
 |                     <a href="Array_schema.html" class="schema_link">Array</a> | 
 |             </div> | 
 |             <div class="items-oneOf"> | 
 |                     <a href="ConditionalField_schema.html" class="schema_link">ConditionalField</a> | 
 |             </div> | 
 |             <div class="items-oneOf"> | 
 |                     <a href="ConstantField_schema.html" class="schema_link">ConstantField</a> | 
 |             </div> | 
 |             <div class="items-oneOf"> | 
 |                     <a href="Dynamic_schema.html" class="schema_link">Dynamic</a> | 
 |             </div> | 
 |             <div class="items-oneOf"> | 
 |                     <a href="Field_schema.html" class="schema_link">Field</a> | 
 |             </div> | 
 |             <div class="items-oneOf"> | 
 |                     <a href="Reserved_schema.html" class="schema_link">Reserved</a> | 
 |             </div> | 
 |             <div class="items-oneOf"> | 
 |                     <a href="ReservedInternal_schema.html" class="schema_link">ReservedInternal</a> | 
 |             </div> | 
 |             <div class="items-oneOf"> | 
 |                     <a href="Vector_schema.html" class="schema_link">Vector</a> | 
 |             </div> | 
 |      | 
 |  | 
 |                             <div>], <span class="type">null</span></div> | 
 |             </td> | 
 |             <td class="col-md-4"> | 
 |                     <div><p>If the <code>constraints</code> are defined (not null), then the implementer must choose the fields | 
 | specified in the <code>constraints</code>.</p></div> | 
 |                     <div> | 
 |                         <b>Default</b> | 
 |                         <pre class="schema-json"><code class="language-json">null</code></pre> | 
 |                     </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>If defined by the architecture, an implementation is allowed to edit this field, | 
 | however an implementation must not change the original architectural meaning.</p></div> | 
 |                          | 
 |     <div> | 
 |         See | 
 |             <a href="../Fields/Field_schema.html#/properties/description" class="schema_link">properties.description</a> in | 
 |             <a href="../Fields/Field_schema.html#/properties/description" class="schema_link">Fields.Field</a> | 
 |         for more information. | 
 |     </div> | 
 |  | 
 |                  | 
 |  | 
 |  | 
 |             </td> | 
 |         </tr> | 
 |          | 
 |         <tr id="/properties/display" class="property"> | 
 |                 <th class="col-md-4"> | 
 |                 <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"> | 
 |                          | 
 |     <div> | 
 |         See | 
 |             <a href="../Fields/Field_schema.html#/properties/display" class="schema_link">properties.display</a> in | 
 |             <a href="../Fields/Field_schema.html#/properties/display" class="schema_link">Fields.Field</a> | 
 |         for more information. | 
 |     </div> | 
 |  | 
 |                  | 
 |  | 
 |  | 
 |             </td> | 
 |         </tr> | 
 |          | 
 |         <tr id="/properties/name" class="property"> | 
 |                 <th class="col-md-4"> | 
 |                 <a href="#/properties/name">name</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>If the <code>name</code> is defined by the architecture (not null), an implementer cannot change the name of the implemented field.</p></div> | 
 |                          | 
 |     <div> | 
 |         See | 
 |             <a href="../Fields/Field_schema.html#/properties/name" class="schema_link">properties.name</a> in | 
 |             <a href="../Fields/Field_schema.html#/properties/name" class="schema_link">Fields.Field</a> | 
 |         for more information. | 
 |     </div> | 
 |  | 
 |                  | 
 |  | 
 |  | 
 |             </td> | 
 |         </tr> | 
 |          | 
 |         <tr id="/properties/rangeset" class="property"> | 
 |                 <th class="col-md-4"> | 
 |                 <a href="#/properties/rangeset">rangeset<sup>◊</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> | 
 |         See | 
 |             <a href="../Fields/Field_schema.html#/properties/rangeset" class="schema_link">properties.rangeset</a> in | 
 |             <a href="../Fields/Field_schema.html#/properties/rangeset" class="schema_link">Fields.Field</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>If reset is defined an implementer must use the reset provided.</p></div> | 
 |                          | 
 |     <div> | 
 |         See | 
 |             <a href="../Fields/Field_schema.html#/properties/resets" class="schema_link">properties.resets</a> in | 
 |             <a href="../Fields/Field_schema.html#/properties/resets" class="schema_link">Fields.Field</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> | 
 |         See | 
 |             <a href="../Fields/Field_schema.html#/properties/volatile" class="schema_link">properties.volatile</a> in | 
 |             <a href="../Fields/Field_schema.html#/properties/volatile" class="schema_link">Fields.Field</a> | 
 |         for more information. | 
 |     </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>◊ Required</dt> | 
 |                             <dd>Properties marked with ◊ 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">{ | 
 |     "_type": "Fields.ImplementationDefined",  | 
 |     "rangeset": [ | 
 |         { | 
 |             "_type": "Range",  | 
 |             "start": 0,  | 
 |             "width": 8 | 
 |         } | 
 |     ] | 
 | }</code></pre> | 
 |             <pre class="schema-json"><code class="language-json">{ | 
 |     "_type": "Fields.ImplementationDefined",  | 
 |     "rangeset": [ | 
 |         { | 
 |             "_type": "Range",  | 
 |             "start": 0,  | 
 |             "width": 8 | 
 |         } | 
 |     ],  | 
 |     "constraints": [ | 
 |         { | 
 |             "_type": "Fields.Field",  | 
 |             "name": "F",  | 
 |             "rangeset": [ | 
 |                 { | 
 |                     "_type": "Range",  | 
 |                     "start": 0,  | 
 |                     "width": 8 | 
 |                 } | 
 |             ],  | 
 |             "values": { | 
 |                 "_type": "Valuesets.Values",  | 
 |                 "values": [ | 
 |                     { | 
 |                         "_type": "Values.Value",  | 
 |                         "meaning": "The first value",  | 
 |                         "value": "'00'" | 
 |                     },  | 
 |                     { | 
 |                         "_type": "Values.Value",  | 
 |                         "meaning": "The second value",  | 
 |                         "value": "'01'" | 
 |                     } | 
 |                 ] | 
 |             } | 
 |         },  | 
 |         { | 
 |             "_type": "Fields.Reserved",  | 
 |             "rangeset": [ | 
 |                 { | 
 |                     "_type": "Range",  | 
 |                     "start": 0,  | 
 |                     "width": 8 | 
 |                 } | 
 |             ],  | 
 |             "value": "RES0" | 
 |         } | 
 |     ] | 
 | }</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">{ | 
 |   "additionalProperties": false, | 
 |   "examples": [ | 
 |     { | 
 |       "_type": "Fields.ImplementationDefined", | 
 |       "rangeset": [ | 
 |         { | 
 |           "_type": "Range", | 
 |           "start": 0, | 
 |           "width": 8 | 
 |         } | 
 |       ] | 
 |     }, | 
 |     { | 
 |       "_type": "Fields.ImplementationDefined", | 
 |       "rangeset": [ | 
 |         { | 
 |           "_type": "Range", | 
 |           "start": 0, | 
 |           "width": 8 | 
 |         } | 
 |       ], | 
 |       "constraints": [ | 
 |         { | 
 |           "_type": "Fields.Field", | 
 |           "name": "F", | 
 |           "rangeset": [ | 
 |             { | 
 |               "_type": "Range", | 
 |               "start": 0, | 
 |               "width": 8 | 
 |             } | 
 |           ], | 
 |           "values": { | 
 |             "_type": "Valuesets.Values", | 
 |             "values": [ | 
 |               { | 
 |                 "_type": "Values.Value", | 
 |                 "meaning": "The first value", | 
 |                 "value": "'00'" | 
 |               }, | 
 |               { | 
 |                 "_type": "Values.Value", | 
 |                 "meaning": "The second value", | 
 |                 "value": "'01'" | 
 |               } | 
 |             ] | 
 |           } | 
 |         }, | 
 |         { | 
 |           "_type": "Fields.Reserved", | 
 |           "rangeset": [ | 
 |             { | 
 |               "_type": "Range", | 
 |               "start": 0, | 
 |               "width": 8 | 
 |             } | 
 |           ], | 
 |           "value": "RES0" | 
 |         } | 
 |       ] | 
 |     } | 
 |   ], | 
 |   "info": [ | 
 |     "An `IMPLEMENTATION DEFINED` field is a field that is not fully defined by the architecture, so that implementations can insert their own fields." | 
 |   ], | 
 |   "properties": { | 
 |     "_meta": { | 
 |       "$ref": "../Meta.json" | 
 |     }, | 
 |     "_type": { | 
 |       "enum": [ | 
 |         "Fields.ImplementationDefined" | 
 |       ] | 
 |     }, | 
 |     "constraints": { | 
 |       "info": [ | 
 |         [ | 
 |           "If the `constraints` are defined (not null), then the implementer must choose the fields", | 
 |           "specified in the `constraints`." | 
 |         ] | 
 |       ], | 
 |       "type": [ | 
 |         "array", | 
 |         "null" | 
 |       ], | 
 |       "default": null, | 
 |       "items": { | 
 |         "uniqueItems": true, | 
 |         "oneOf": [ | 
 |           { | 
 |             "$ref": "Array.json" | 
 |           }, | 
 |           { | 
 |             "$ref": "ConditionalField.json" | 
 |           }, | 
 |           { | 
 |             "$ref": "ConstantField.json" | 
 |           }, | 
 |           { | 
 |             "$ref": "Dynamic.json" | 
 |           }, | 
 |           { | 
 |             "$ref": "Field.json" | 
 |           }, | 
 |           { | 
 |             "$ref": "Reserved.json" | 
 |           }, | 
 |           { | 
 |             "$ref": "ReservedInternal.json" | 
 |           }, | 
 |           { | 
 |             "$ref": "Vector.json" | 
 |           } | 
 |         ] | 
 |       } | 
 |     }, | 
 |     "description": { | 
 |       "info": [ | 
 |         [ | 
 |           "If defined by the architecture, an implementation is allowed to edit this field,", | 
 |           "however an implementation must not change the original architectural meaning." | 
 |         ] | 
 |       ], | 
 |       "see": "../Fields/Field.json", | 
 |       "$ref": "../Traits/HasDescription.json#/definitions/description" | 
 |     }, | 
 |     "display": { | 
 |       "see": "../Fields/Field.json", | 
 |       "type": [ | 
 |         "string", | 
 |         "null" | 
 |       ] | 
 |     }, | 
 |     "volatile": { | 
 |       "see": "../Fields/Field.json", | 
 |       "type": "boolean" | 
 |     }, | 
 |     "name": { | 
 |       "see": "../Fields/Field.json", | 
 |       "info": [ | 
 |         "If the `name` is defined by the architecture (not null), an implementer cannot change the name of the implemented field." | 
 |       ], | 
 |       "type": [ | 
 |         "string", | 
 |         "null" | 
 |       ] | 
 |     }, | 
 |     "rangeset": { | 
 |       "see": "../Fields/Field.json", | 
 |       "$ref": "../Rangeset.json" | 
 |     }, | 
 |     "resets": { | 
 |       "see": "../Fields/Field.json", | 
 |       "$ref": "../FieldResets.json", | 
 |       "info": [ | 
 |         "If reset is defined an implementer must use the reset provided." | 
 |       ] | 
 |     } | 
 |   }, | 
 |   "required": [ | 
 |     "rangeset" | 
 |   ], | 
 |   "title": "ImplementationDefined", | 
 |   "type": "object", | 
 |   "$schema": "http://json-schema.org/draft-04/schema#" | 
 | }</code></pre> | 
 | </div> | 
 |  | 
 |     </div> | 
 |  | 
 |     <div class="container"> | 
 |         <div class="footer text-right"> | 
 |             Copyright © 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> |