Documentation/amdgpu: Add UMA carveout details

Add documentation for the uma/carveout_options and uma/carveout
attributes in sysfs

Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Yo-Jung Leo Lin (AMD) <Leo.Lin@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Yo-Jung Leo Lin (AMD) 2025-12-12 15:59:17 +08:00 committed by Alex Deucher
parent 19ba61ac06
commit 5946dbe1c8
2 changed files with 55 additions and 0 deletions

View file

@ -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_device.c
:doc: uma/carveout_options
uma/carveout
--------------------
.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
:doc: uma/carveout

View file

@ -382,6 +382,24 @@ static const struct attribute_group amdgpu_board_attrs_group = {
.is_visible = amdgpu_board_attrs_is_visible
};
/**
* 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)
@ -414,6 +432,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)