The integrated info v2.3 table in the Atom ROM exposes available options for the VRAM carveout sizes. The carveout size can be changed using the ATCS function code 0xA for BIOS that supports this.
Make these features available as sysfs files, so that users can set the carveout size in a way similar to what a Windows user can do in the "Tuning" tab in the AMD Adrenalin. The newly added sysfs files are: - uma_carveout_options: this a read-only file listing all available carveout options. They are fetched from the Atom ROM on driver initialization. - uma_carveout: this shows the index of the currently selected option, as shown in the uma_carveout_options. Writing a valid option index to this file will change the carveout option on next boot. Note that above files are created only if BIOS indicates support for it, i.e. where the table shows non-zero UMACarveoutIndexMax. Signed-off-by: Yo-Jung Leo Lin (AMD) <[email protected]> --- Yo-Jung Leo Lin (AMD) (5): drm/amdgpu: parse UMA size-getting/setting bits in ATCS mask drm/amdgpu: add helper to read UMA carveout info drm/amdgpu: add UMA allocation setting helpers drm/amdgpu: add UMA allocation interfaces to sysfs Documentation/amdgpu: Add UMA carveout details Documentation/gpu/amdgpu/driver-misc.rst | 26 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 7 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 47 ++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 144 +++++++++++++++++++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 75 ++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h | 1 + drivers/gpu/drm/amd/amdgpu/atom.h | 4 + drivers/gpu/drm/amd/include/amd_acpi.h | 34 +++++- 8 files changed, 330 insertions(+), 8 deletions(-) --- base-commit: ac9914fa72a5a917bb61c5e87bee6b8f9b751f33 change-id: 20251103-vram-carveout-tuning-for-upstream-1d5189688d73 Best regards, -- Yo-Jung Leo Lin (AMD) <[email protected]>
