On Thu, May 08, 2025 at 12:00:59AM +0000, anisa.su...@gmail.com wrote: > From: Anisa Su <anisa...@samsung.com> > > Add booleans to DC Region struct to represent dsmas flags (defined in CDAT) > in preparation for the next command, which returns the flags in the
s/next command/mailbox command 0x5601h/, otherwise Reviewed-by: Fan Ni <fan...@samsung.com> > response. > > Signed-off-by: Anisa Su <anisa...@samsung.com> > --- > hw/mem/cxl_type3.c | 8 +++++++- > include/hw/cxl/cxl_device.h | 15 +++++++++++++++ > 2 files changed, 22 insertions(+), 1 deletion(-) > > diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c > index 7129da0940..05d4c861f1 100644 > --- a/hw/mem/cxl_type3.c > +++ b/hw/mem/cxl_type3.c > @@ -232,10 +232,16 @@ static int ct3_build_cdat_table(CDATSubHeader > ***cdat_table, void *priv) > * future. > */ > for (i = 0; i < ct3d->dc.num_regions; i++) { > + ct3d->dc.regions[i].nonvolatile = false; > + ct3d->dc.regions[i].sharable = false; > + ct3d->dc.regions[i].hw_managed_coherency = false; > + ct3d->dc.regions[i].ic_specific_dc_management = false; > + ct3d->dc.regions[i].rdonly = false; > ct3_build_cdat_entries_for_mr(&(table[cur_ent]), > dsmad_handle++, > ct3d->dc.regions[i].len, > - false, true, region_base); > + ct3d->dc.regions[i].nonvolatile, > + true, region_base); > ct3d->dc.regions[i].dsmadhandle = dsmad_handle - 1; > > cur_ent += CT3_CDAT_NUM_ENTRIES; > diff --git a/include/hw/cxl/cxl_device.h b/include/hw/cxl/cxl_device.h > index bebed04085..cbcc1bc9f5 100644 > --- a/include/hw/cxl/cxl_device.h > +++ b/include/hw/cxl/cxl_device.h > @@ -177,6 +177,15 @@ typedef enum { > MAX_LOG_TYPE > } CXLLogType; > > +/* DSMAS Flags Bits */ > +typedef enum { > + CXL_DSMAS_FLAGS_NONVOLATILE = 2, > + CXL_DSMAS_FLAGS_SHARABLE = 3, > + CXL_DSMAS_FLAGS_HW_MANAGED_COHERENCY = 4, > + CXL_DSMAS_FLAGS_IC_SPECIFIC_DC_MANAGEMENT = 5, > + CXL_DSMAS_FLAGS_RDONLY = 6, > +} CXLDSMASFlags; > + > typedef struct CXLCCI CXLCCI; > typedef struct cxl_device_state CXLDeviceState; > struct cxl_cmd; > @@ -609,6 +618,12 @@ typedef struct CXLDCRegion { > uint8_t flags; > unsigned long *blk_bitmap; > uint64_t supported_blk_size_bitmask; > + /* Following bools make up dsmas flags, as defined in the CDAT */ > + bool nonvolatile; > + bool sharable; > + bool hw_managed_coherency; > + bool ic_specific_dc_management; > + bool rdonly; > } CXLDCRegion; > > typedef struct CXLSetFeatureInfo { > -- > 2.47.2 > -- Fan Ni