diff options
| author | Dave Jiang <dave.jiang@intel.com> | 2025-02-20 22:42:44 +0300 |
|---|---|---|
| committer | Dave Jiang <dave.jiang@intel.com> | 2025-02-26 18:51:32 +0300 |
| commit | a8b773f24203ef41162fc035944a82909a35f567 (patch) | |
| tree | 5da2c6c89c32c73d31b2bf196e44807ba8ef06ea /include | |
| parent | 14d502cc2718e6af44b575c95670292689a3ad65 (diff) | |
| download | linux-a8b773f24203ef41162fc035944a82909a35f567.tar.xz | |
cxl: Setup exclusive CXL features that are reserved for the kernel
Certain features will be exclusively used by components such as in
kernel RAS driver. Setup an exclusion list that can be used to detect
if a feature is exclusive to the kernel.
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Li Ming <ming.li@zohomail.com>
Tested-by: Shiju Jose <shiju.jose@huawei.com>
Link: https://patch.msgid.link/20250220194438.2281088-7-dave.jiang@intel.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/cxl/features.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/cxl/features.h b/include/cxl/features.h index ae56ef7ec9ab..d2cde46b0fec 100644 --- a/include/cxl/features.h +++ b/include/cxl/features.h @@ -5,6 +5,39 @@ #include <linux/uuid.h> +/* Feature UUIDs used by the kernel */ +#define CXL_FEAT_PATROL_SCRUB_UUID \ + UUID_INIT(0x96dad7d6, 0xfde8, 0x482b, 0xa7, 0x33, 0x75, 0x77, 0x4e, \ + 0x06, 0xdb, 0x8a) + +#define CXL_FEAT_ECS_UUID \ + UUID_INIT(0xe5b13f22, 0x2328, 0x4a14, 0xb8, 0xba, 0xb9, 0x69, 0x1e, \ + 0x89, 0x33, 0x86) + +#define CXL_FEAT_SPPR_UUID \ + UUID_INIT(0x892ba475, 0xfad8, 0x474e, 0x9d, 0x3e, 0x69, 0x2c, 0x91, \ + 0x75, 0x68, 0xbb) + +#define CXL_FEAT_HPPR_UUID \ + UUID_INIT(0x80ea4521, 0x786f, 0x4127, 0xaf, 0xb1, 0xec, 0x74, 0x59, \ + 0xfb, 0x0e, 0x24) + +#define CXL_FEAT_CACHELINE_SPARING_UUID \ + UUID_INIT(0x96C33386, 0x91dd, 0x44c7, 0x9e, 0xcb, 0xfd, 0xaf, 0x65, \ + 0x03, 0xba, 0xc4) + +#define CXL_FEAT_ROW_SPARING_UUID \ + UUID_INIT(0x450ebf67, 0xb135, 0x4f97, 0xa4, 0x98, 0xc2, 0xd5, 0x7f, \ + 0x27, 0x9b, 0xed) + +#define CXL_FEAT_BANK_SPARING_UUID \ + UUID_INIT(0x78b79636, 0x90ac, 0x4b64, 0xa4, 0xef, 0xfa, 0xac, 0x5d, \ + 0x18, 0xa8, 0x63) + +#define CXL_FEAT_RANK_SPARING_UUID \ + UUID_INIT(0x34dbaff5, 0x0552, 0x4281, 0x8f, 0x76, 0xda, 0x0b, 0x5e, \ + 0x7a, 0x76, 0xa7) + /* Feature commands capability supported by a device */ enum cxl_features_capability { CXL_FEATURES_NONE = 0, @@ -134,6 +167,7 @@ struct cxl_features_state { struct cxl_dev_state *cxlds; struct cxl_feat_entries { int num_features; + int num_user_features; struct cxl_feat_entry ent[] __counted_by(num_features); } *entries; }; |
