mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-17 01:54:01 +08:00
libnvdimm/label: Define CXL region labels
Add a definition of the CXL 2.0 region label format. Note this is done as a separate patch to make the next patch that adds namespace label support easier to read. Reported-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Link: https://lore.kernel.org/r/163116431893.2460985.4003511000574373922.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
999c993a85
commit
540ccaa2e4
@ -66,6 +66,38 @@ struct nd_namespace_index {
|
||||
u8 free[];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cxl_region_label - CXL 2.0 Table 211
|
||||
* @type: uuid identifying this label format (region)
|
||||
* @uuid: uuid for the region this label describes
|
||||
* @flags: NSLABEL_FLAG_UPDATING (all other flags reserved)
|
||||
* @nlabel: 1 per interleave-way in the region
|
||||
* @position: this label's position in the set
|
||||
* @dpa: start address in device-local capacity for this label
|
||||
* @rawsize: size of this label's contribution to region
|
||||
* @hpa: mandatory system physical address to map this region
|
||||
* @slot: slot id of this label in label area
|
||||
* @ig: interleave granularity (1 << @ig) * 256 bytes
|
||||
* @align: alignment in SZ_256M blocks
|
||||
* @reserved: reserved
|
||||
* @checksum: fletcher64 sum of this label
|
||||
*/
|
||||
struct cxl_region_label {
|
||||
u8 type[NSLABEL_UUID_LEN];
|
||||
u8 uuid[NSLABEL_UUID_LEN];
|
||||
__le32 flags;
|
||||
__le16 nlabel;
|
||||
__le16 position;
|
||||
__le64 dpa;
|
||||
__le64 rawsize;
|
||||
__le64 hpa;
|
||||
__le32 slot;
|
||||
__le32 ig;
|
||||
__le32 align;
|
||||
u8 reserved[0xac];
|
||||
__le64 checksum;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct nd_namespace_label - namespace superblock
|
||||
* @uuid: UUID per RFC 4122
|
||||
|
Loading…
Reference in New Issue
Block a user