Add documentation for the uma/carveout_options and uma/carveout
attributes in sysfs
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
Signed-off-by: Yo-Jung Leo Lin (AMD) <Leo.Lin@amd.com>
---
Documentation/gpu/amdgpu/driver-misc.rst | 26 ++++++++++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 29 +++++++++++++++++++++++++++++
2 files changed, 55 insertions(+)
diff --git a/Documentation/gpu/amdgpu/driver-misc.rst b/Documentation/gpu/amdgpu/driver-misc.rst
index 25b0c857816e..cd6f044bea85 100644
--- a/Documentation/gpu/amdgpu/driver-misc.rst
+++ b/Documentation/gpu/amdgpu/driver-misc.rst
@@ -128,3 +128,29 @@ smartshift_bias
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: smartshift_bias
+
+UMA Carveout
+============
+
+Some versions of Atom ROM expose available options for the VRAM carveout sizes,
+and allow changes to the carveout size via the ATCS function code 0xA on supported
+BIOS implementations.
+
+For those platforms, users can use the following files under uma/ to set the
+carveout size, in a way similar to what Windows users can do in the "Tuning"
+tab in AMD Adrenalin.
+
+Note that for BIOS implementations that don't support this, these files will not
+be created at all.
+
+uma/carveout_options
+--------------------
+
+.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
+ :doc: uma/carveout_options
+
+uma/carveout
+--------------------
+
+.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
+ :doc: uma/carveout
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
index 2c0405cdc436..58f6000f4e54 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
@@ -1248,6 +1248,24 @@ int amdgpu_acpi_get_mem_info(struct amdgpu_device *adev, int xcc_id,
return -ENOENT;
}
+/**
+ * DOC: uma/carveout_options
+ *
+ * This is a read-only file that lists all available UMA allocation
+ * options and their corresponding indices. Example output::
+ *
+ * $ cat uma/carveout_options
+ * 0: Minimum (512 MB)
+ * 1: (1 GB)
+ * 2: (2 GB)
+ * 3: (4 GB)
+ * 4: (6 GB)
+ * 5: (8 GB)
+ * 6: (12 GB)
+ * 7: Medium (16 GB)
+ * 8: (24 GB)
+ * 9: High (32 GB)
+ */
static ssize_t carveout_options_show(struct device *dev,
struct device_attribute *attr,
char *buf)
@@ -1278,6 +1296,17 @@ static ssize_t carveout_options_show(struct device *dev,
}
static DEVICE_ATTR_RO(carveout_options);
+/**
+ * DOC: uma/carveout
+ *
+ * This file is both readable and writable. When read, it shows the
+ * index of the current setting. Writing a valid index to this file
+ * allows users to change the UMA carveout size to the selected option
+ * on the next boot.
+ *
+ * The available options and their corresponding indices can be read
+ * from the uma/carveout_options file.
+ */
static ssize_t carveout_show(struct device *dev,
struct device_attribute *attr,
char *buf)
--
2.43.0
On Mon, Dec 1, 2025 at 6:19 AM Yo-Jung Leo Lin (AMD) <Leo.Lin@amd.com> wrote: > > Add documentation for the uma/carveout_options and uma/carveout > attributes in sysfs > > Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org> > Signed-off-by: Yo-Jung Leo Lin (AMD) <Leo.Lin@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> > --- > Documentation/gpu/amdgpu/driver-misc.rst | 26 ++++++++++++++++++++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 29 +++++++++++++++++++++++++++++ > 2 files changed, 55 insertions(+) > > diff --git a/Documentation/gpu/amdgpu/driver-misc.rst b/Documentation/gpu/amdgpu/driver-misc.rst > index 25b0c857816e..cd6f044bea85 100644 > --- a/Documentation/gpu/amdgpu/driver-misc.rst > +++ b/Documentation/gpu/amdgpu/driver-misc.rst > @@ -128,3 +128,29 @@ smartshift_bias > > .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c > :doc: smartshift_bias > + > +UMA Carveout > +============ > + > +Some versions of Atom ROM expose available options for the VRAM carveout sizes, > +and allow changes to the carveout size via the ATCS function code 0xA on supported > +BIOS implementations. > + > +For those platforms, users can use the following files under uma/ to set the > +carveout size, in a way similar to what Windows users can do in the "Tuning" > +tab in AMD Adrenalin. > + > +Note that for BIOS implementations that don't support this, these files will not > +be created at all. > + > +uma/carveout_options > +-------------------- > + > +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > + :doc: uma/carveout_options > + > +uma/carveout > +-------------------- > + > +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > + :doc: uma/carveout > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > index 2c0405cdc436..58f6000f4e54 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > @@ -1248,6 +1248,24 @@ int amdgpu_acpi_get_mem_info(struct amdgpu_device *adev, int xcc_id, > return -ENOENT; > } > > +/** > + * DOC: uma/carveout_options > + * > + * This is a read-only file that lists all available UMA allocation > + * options and their corresponding indices. Example output:: > + * > + * $ cat uma/carveout_options > + * 0: Minimum (512 MB) > + * 1: (1 GB) > + * 2: (2 GB) > + * 3: (4 GB) > + * 4: (6 GB) > + * 5: (8 GB) > + * 6: (12 GB) > + * 7: Medium (16 GB) > + * 8: (24 GB) > + * 9: High (32 GB) > + */ > static ssize_t carveout_options_show(struct device *dev, > struct device_attribute *attr, > char *buf) > @@ -1278,6 +1296,17 @@ static ssize_t carveout_options_show(struct device *dev, > } > static DEVICE_ATTR_RO(carveout_options); > > +/** > + * DOC: uma/carveout > + * > + * This file is both readable and writable. When read, it shows the > + * index of the current setting. Writing a valid index to this file > + * allows users to change the UMA carveout size to the selected option > + * on the next boot. > + * > + * The available options and their corresponding indices can be read > + * from the uma/carveout_options file. > + */ > static ssize_t carveout_show(struct device *dev, > struct device_attribute *attr, > char *buf) > > -- > 2.43.0 >
© 2016 - 2025 Red Hat, Inc.