On Mon, Dec 1, 2025 at 6:19 AM Yo-Jung Leo Lin (AMD) <[email protected]> wrote:
>
> Add documentation for the uma/carveout_options and uma/carveout
> attributes in sysfs
>
> Reviewed-by: Mario Limonciello (AMD) <[email protected]>
> Signed-off-by: Yo-Jung Leo Lin (AMD) <[email protected]>

Reviewed-by: Alex Deucher <[email protected]>

> ---
>  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
>

Reply via email to