On Tue, 24 Aug 2021 09:06:36 -0700 Dan Williams <[email protected]> wrote:
> 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 <[email protected]> > Signed-off-by: Dan Williams <[email protected]> FWIW Reviewed-by: Jonathan Cameron <[email protected]> > --- > drivers/nvdimm/label.h | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/drivers/nvdimm/label.h b/drivers/nvdimm/label.h > index 31f94fad7b92..76ecd0347dc2 100644 > --- a/drivers/nvdimm/label.h > +++ b/drivers/nvdimm/label.h > @@ -65,6 +65,36 @@ 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) > + * @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 > + * @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 >
