1<?xml version="1.0" encoding="UTF-8"?>
2<!---->
3<!--################################################################################       -->
4<!--# Redfish Schema:  MemoryRegion v1.0.2                                                 -->
5<!--#                                                                                      -->
6<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
7<!--# available at http://www.dmtf.org/standards/redfish                                   -->
8<!--# Copyright 2014-2024 DMTF.                                                            -->
9<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
10<!--################################################################################       -->
11<!---->
12<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
13
14  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
15    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
16  </edmx:Reference>
17  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
18    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
19  </edmx:Reference>
20  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Measures.V1.xml">
21    <edmx:Include Namespace="Org.OData.Measures.V1" Alias="Measures"/>
22  </edmx:Reference>
23  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
24    <edmx:Include Namespace="Resource"/>
25    <edmx:Include Namespace="Resource.v1_0_0"/>
26  </edmx:Reference>
27  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
28    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
29  </edmx:Reference>
30  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/MemoryChunks_v1.xml">
31    <edmx:Include Namespace="MemoryChunks"/>
32  </edmx:Reference>
33
34  <edmx:DataServices>
35
36    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryRegion">
37      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
38      <Annotation Term="Redfish.Language" String="en"/>
39
40      <EntityType Name="MemoryRegion" BaseType="Resource.v1_0_0.Resource" Abstract="true">
41        <Annotation Term="OData.Description" String="The `MemoryRegion` schema contains the definition of a memory region and its configuration."/>
42        <Annotation Term="OData.LongDescription" String="This resource shall represent a memory region in a Redfish implementation."/>
43        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
44        <Annotation Term="Capabilities.InsertRestrictions">
45          <Record>
46            <PropertyValue Property="Insertable" Bool="false"/>
47          </Record>
48        </Annotation>
49        <Annotation Term="Capabilities.UpdateRestrictions">
50          <Record>
51            <PropertyValue Property="Updatable" Bool="true"/>
52          </Record>
53        </Annotation>
54        <Annotation Term="Capabilities.DeleteRestrictions">
55          <Record>
56            <PropertyValue Property="Deletable" Bool="true"/>
57          </Record>
58        </Annotation>
59        <Annotation Term="Redfish.Uris">
60          <Collection>
61            <String>/redfish/v1/Chassis/{ChassisId}/PCIeDevices/{PCIeDeviceId}/CXLLogicalDevices/{CXLLogicalDeviceId}/MemoryRegions/{MemoryRegionId}</String>
62          </Collection>
63        </Annotation>
64      </EntityType>
65    </Schema>
66
67    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryRegion.v1_0_0">
68      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
69      <Annotation Term="Redfish.Release" String="2023.2"/>
70
71      <EntityType Name="MemoryRegion" BaseType="MemoryRegion.MemoryRegion">
72        <Property Name="RegionType" Type="MemoryRegion.v1_0_0.RegionType" Nullable="false">
73          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
74          <Annotation Term="OData.Description" String="The type of memory region."/>
75          <Annotation Term="OData.LongDescription" String="This property shall contain the type of memory region."/>
76          <Annotation Term="Redfish.Required"/>
77        </Property>
78        <Property Name="RegionNumber" Type="Edm.Int64" Nullable="false">
79          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
80          <Annotation Term="OData.Description" String="The memory region number."/>
81          <Annotation Term="OData.LongDescription" String="This property shall contain the memory region number."/>
82        </Property>
83        <Property Name="BlockSizeMiB" Type="Edm.Int64" Nullable="false">
84          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
85          <Annotation Term="OData.Description" String="The memory region block size in mebibytes (MiB)."/>
86          <Annotation Term="OData.LongDescription" String="This property shall contain the memory region block size in mebibytes (MiB).  The region size, base offset, all extent sizes, and all extent base offsets shall be aligned to this block size."/>
87          <Annotation Term="Measures.Unit" String="MiBy"/>
88        </Property>
89        <Property Name="RegionSizeMiB" Type="Edm.Int64" Nullable="false">
90          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
91          <Annotation Term="OData.Description" String="The size of the memory region in mebibytes (MiB)."/>
92          <Annotation Term="OData.LongDescription" String="This property shall contain the size of the memory region in mebibytes (MiB)."/>
93          <Annotation Term="Measures.Unit" String="MiBy"/>
94        </Property>
95        <Property Name="RegionBaseOffsetMiB" Type="Edm.Int64" Nullable="false">
96          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
97          <Annotation Term="OData.Description" String="The offset of the memory region in the device address range in mebibytes (MiB)."/>
98          <Annotation Term="OData.LongDescription" String="The value of this property shall contain the offset of the memory region in the device address range in mebibytes (MiB)."/>
99          <Annotation Term="Measures.Unit" String="MiBy"/>
100        </Property>
101        <Property Name="ShareableRegion" Type="Edm.Boolean" DefaultValue="false">
102          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
103          <Annotation Term="OData.Description" String="An indication of whether this memory region can be shared across multiple hosts."/>
104          <Annotation Term="OData.LongDescription" String="This property shall indicate whether this memory region can be shared across multiple hosts as defined in the 'Flags' field of 'Device Scoped Memory Affinity Structure' defined in the Coherent Device Attribute Table (CDAT) Specification."/>
105        </Property>
106        <Property Name="NonVolatileRegion" Type="Edm.Boolean" DefaultValue="false">
107          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
108          <Annotation Term="OData.Description" String="An indication of whether this memory region represents non-volatile memory."/>
109          <Annotation Term="OData.LongDescription" String="This property shall indicate whether this memory region represents non-volatile memory as defined in the 'Flags' field of 'Device Scoped Memory Affinity Structure' defined in the Coherent Device Attribute Table (CDAT) Specification."/>
110        </Property>
111        <Property Name="HardwareManagedCoherencyRegion" Type="Edm.Boolean">
112          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
113          <Annotation Term="OData.Description" String="An indication of whether the device manages the cache coherency across hosts for this memory region."/>
114          <Annotation Term="OData.LongDescription" String="This property shall indicate whether the device manages the cache coherency across hosts and thereby ensures that each host has a consistent view of this memory region content as defined in the 'Flags' field of 'Device Scoped Memory Affinity Structure' defined in the Coherent Device Attribute Table (CDAT) Specification."/>
115        </Property>
116        <Property Name="SanitizeOnRelease" Type="Edm.Boolean" DefaultValue="false">
117          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
118          <Annotation Term="OData.Description" String="An indication of whether the capacity released from this memory region will be sanitized before it is made available to any host."/>
119          <Annotation Term="OData.LongDescription" String="This property shall indicate whether the device has been configured such that capacity released from this memory region will be sanitized before it is made available to any host."/>
120        </Property>
121        <Property Name="ExtentsCount" Type="Edm.Int64">
122          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
123          <Annotation Term="OData.Description" String="The number of extents defined for this memory region."/>
124          <Annotation Term="OData.LongDescription" String="This property shall contain the number of extents defined for this memory region."/>
125        </Property>
126        <Property Name="MemoryExtents" Type="Collection(MemoryRegion.v1_0_0.MemoryExtent)">
127          <Annotation Term="OData.Description" String="The set of memory extents defined for this memory region."/>
128          <Annotation Term="OData.LongDescription" String="This property shall contain the set of memory extents defining address ranges available for an access in dynamic capacity memory regions."/>
129        </Property>
130        <Property Name="MemoryChunks" Type="Collection(MemoryRegion.v1_0_0.MemoryChunk)">
131          <Annotation Term="OData.Description" String="The set of memory chunks providing capacity for this memory region."/>
132          <Annotation Term="OData.LongDescription" String="This property shall contain the set of memory chunks providing capacity for this memory region."/>
133        </Property>
134        <Property Name="Status" Type="Resource.Status" Nullable="false">
135          <Annotation Term="OData.Description" String="The status and health of the resource and its subordinate or dependent resources."/>
136          <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the resource."/>
137        </Property>
138        <Property Name="Actions" Type="MemoryRegion.v1_0_0.Actions" Nullable="false">
139          <Annotation Term="OData.Description" String="The available actions for this resource."/>
140          <Annotation Term="OData.LongDescription" String="This property shall contain the available actions for this resource."/>
141        </Property>
142      </EntityType>
143
144      <ComplexType Name="MemoryExtent">
145        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
146        <Annotation Term="OData.Description" String="Definition of memory extent identifying an available address range in the memory region."/>
147        <Annotation Term="OData.LongDescription" String="This type shall contain the definition of a memory extent identifying an available address range in the dynamic capacity memory region."/>
148        <Property Name="ExtentOffsetMiB" Type="Edm.Int64" Nullable="false">
149          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
150          <Annotation Term="OData.Description" String="Offset of the memory extent within the memory region in mebibytes (MiB)."/>
151          <Annotation Term="OData.LongDescription" String="The value of this property shall be the offset of the memory extent within the memory region in mebibytes (MiB)."/>
152          <Annotation Term="Measures.Unit" String="MiBy"/>
153        </Property>
154        <Property Name="ExtentSizeMiB" Type="Edm.Int64" Nullable="false">
155          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
156          <Annotation Term="OData.Description" String="Size of the memory extent in mebibytes (MiB)."/>
157          <Annotation Term="OData.LongDescription" String="This property shall contain the size of the memory extent in MiB."/>
158          <Annotation Term="Measures.Unit" String="MiBy"/>
159        </Property>
160        <Property Name="Tag" Type="Edm.String" Nullable="false">
161          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
162          <Annotation Term="OData.Description" String="The user-assigned tag of this memory extent."/>
163          <Annotation Term="OData.LongDescription" String="This property shall contain an opaque context attached to each extent to track usage of each extent or map extent to specific processes, transactions, or workloads on the host."/>
164        </Property>
165        <Property Name="SequenceNumber" Type="Edm.Int64">
166          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
167          <Annotation Term="OData.Description" String="The memory extent sequence number."/>
168          <Annotation Term="OData.LongDescription" String="This property shall contain the sequence number instructing host on the relative order the extents have to be placed in the host adjacent virtual address space."/>
169        </Property>
170      </ComplexType>
171
172      <ComplexType Name="MemoryChunk">
173        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
174        <Annotation Term="OData.Description" String="Definition of memory chunk providing capacity for memory region."/>
175        <Annotation Term="OData.LongDescription" String="This type shall contain the definition of a memory chunk providing capacity for memory region."/>
176        <Property Name="ChunkOffsetMiB" Type="Edm.Int64" Nullable="false">
177          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
178          <Annotation Term="OData.Description" String="Offset of the memory chunk within the memory region in mebibytes (MiB)."/>
179          <Annotation Term="OData.LongDescription" String="The value of this property shall be the offset of the memory chunk within the memory region in mebibytes (MiB)."/>
180          <Annotation Term="Measures.Unit" String="MiBy"/>
181        </Property>
182        <NavigationProperty Name="ChunkLink" Type="MemoryChunks.MemoryChunks" Nullable="false">
183          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
184          <Annotation Term="OData.Description" String="The link to the memory chunk providing capacity to the memory region."/>
185          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type `MemoryChunks` that provides capacity to the memory region."/>
186        </NavigationProperty>
187      </ComplexType>
188
189      <ComplexType Name="Actions">
190        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
191        <Annotation Term="OData.Description" String="The available actions for this resource."/>
192        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
193        <Property Name="Oem" Type="MemoryRegion.v1_0_0.OemActions" Nullable="false">
194          <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
195          <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific actions for this resource."/>
196        </Property>
197      </ComplexType>
198
199      <ComplexType Name="OemActions">
200        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
201        <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
202        <Annotation Term="OData.LongDescription" String="This type shall contain the available OEM-specific actions for this resource."/>
203      </ComplexType>
204
205      <EnumType Name="RegionType">
206        <Member Name="Static">
207          <Annotation Term="OData.Description" String="Static memory region.  The whole address range is always covered by memory."/>
208        </Member>
209        <Member Name="Dynamic">
210          <Annotation Term="OData.Description" String="Dynamic memory region.  The address range coverage may be changed in the runtime."/>
211        </Member>
212      </EnumType>
213    </Schema>
214
215    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryRegion.v1_0_1">
216      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
217      <Annotation Term="OData.Description" String="This version was created to correct the spelling of the `RegionBaseOffsetMiB` property.  It was also created to correct various typographical errors."/>
218      <EntityType Name="MemoryRegion" BaseType="MemoryRegion.v1_0_0.MemoryRegion"/>
219    </Schema>
220
221    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MemoryRegion.v1_0_2">
222      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
223      <Annotation Term="OData.Description" String="This version was created to force the regeneration of OpenAPI schemas to properly express nullable properties with external references.  It was also created to correct various typographical errors."/>
224      <EntityType Name="MemoryRegion" BaseType="MemoryRegion.v1_0_1.MemoryRegion"/>
225    </Schema>
226
227  </edmx:DataServices>
228</edmx:Edmx>
229