cxl/region: Allocate HPA capacity to regions
authorDan Williams <dan.j.williams@intel.com>
Mon, 25 Apr 2022 18:43:44 +0000 (11:43 -0700)
committerDan Williams <dan.j.williams@intel.com>
Mon, 25 Jul 2022 19:18:06 +0000 (12:18 -0700)
commit23a22cd1c98be518774fe7f7e8a5203af050525a
tree023f45987cce6345b543ac60ecdb32654735a1db
parent80d10a6cee05029cae9d9d6e8ddb799ea6d01e0c
cxl/region: Allocate HPA capacity to regions

After a region's interleave parameters (ways and granularity) are set,
add a way for regions to allocate HPA (host physical address space) from
the free capacity in their parent root-decoder. The allocator for this
capacity reuses the 'struct resource' based allocator used for
CONFIG_DEVICE_PRIVATE.

Once the tuple of "ways, granularity, [uuid], and size" is set the
region configuration transitions to the CXL_CONFIG_INTERLEAVE_ACTIVE
state which is a precursor to allowing endpoint decoders to be added to
a region.

Co-developed-by: Ben Widawsky <bwidawsk@kernel.org>
Signed-off-by: Ben Widawsky <bwidawsk@kernel.org>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/165784335630.1758207.420216490941955417.stgit@dwillia2-xfh.jf.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Documentation/ABI/testing/sysfs-bus-cxl
drivers/cxl/Kconfig
drivers/cxl/core/region.c
drivers/cxl/cxl.h