[PATCH] drm/amdgpu: Add memory vendor information
Lazar, Lijo
lijo.lazar at amd.com
Fri Aug 11 07:12:43 UTC 2023
On 8/11/2023 12:36 PM, Chen, Guchun wrote:
> [Public]
>
>> -----Original Message-----
>> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Lijo
>> Lazar
>> Sent: Friday, August 11, 2023 12:12 PM
>> To: amd-gfx at lists.freedesktop.org
>> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Zhang, Hawking
>> <Hawking.Zhang at amd.com>
>> Subject: [PATCH] drm/amdgpu: Add memory vendor information
>>
>> For ASICs with GC v9.4.3, determine the vendor information from scratch
>> register.
>>
>> Signed-off-by: Lijo Lazar <lijo.lazar at amd.com>
>> Reviewed-by: Hawking Zhang <Hawking.Zhang at amd.com>
>> ---
>> drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 26 ++++++++++++++++++-------
>> -
>> 1 file changed, 18 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>> index 880460cd3239..f9a5a2c0573e 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
>> @@ -1998,6 +1998,19 @@ static int gmc_v9_0_init_mem_ranges(struct
>> amdgpu_device *adev)
>> return 0;
>> }
>>
>> +static void gmc_v9_4_3_init_vram_info(struct amdgpu_device *adev) {
>> + static const u32 regBIF_BIOS_SCRATCH_4 = 0x50;
>
> Any reason to use a static variable here?
>
It's only done to initialize once and keep it shared even if multiple
devices use the code path - that will remain true for any reg address I
guess.
Thanks,
Lijo
> Regards,
> Guchun
>
>> + u32 vram_info;
>> +
>> + if (!amdgpu_sriov_vf(adev)) {
>> + vram_info = RREG32(regBIF_BIOS_SCRATCH_4);
>> + adev->gmc.vram_vendor = vram_info & 0xF;
>> + }
>> + adev->gmc.vram_type = AMDGPU_VRAM_TYPE_HBM;
>> + adev->gmc.vram_width = 128 * 64;
>> +}
>> +
>> static int gmc_v9_0_sw_init(void *handle) {
>> int r, vram_width = 0, vram_type = 0, vram_vendor = 0,
>> dma_addr_bits; @@ -2010,15 +2023,12 @@ static int
>> gmc_v9_0_sw_init(void *handle)
>>
>> spin_lock_init(&adev->gmc.invalidate_lock);
>>
>> - if (!(adev->bios) || adev->gmc.is_app_apu) {
>> + if (adev->ip_versions[GC_HWIP][0] == IP_VERSION(9, 4, 3)) {
>> + gmc_v9_4_3_init_vram_info(adev);
>> + } else if (!adev->bios) {
>> if (adev->flags & AMD_IS_APU) {
>> - if (adev->gmc.is_app_apu) {
>> - adev->gmc.vram_type =
>> AMDGPU_VRAM_TYPE_HBM;
>> - adev->gmc.vram_width = 128 * 64;
>> - } else {
>> - adev->gmc.vram_type =
>> AMDGPU_VRAM_TYPE_DDR4;
>> - adev->gmc.vram_width = 64 * 64;
>> - }
>> + adev->gmc.vram_type =
>> AMDGPU_VRAM_TYPE_DDR4;
>> + adev->gmc.vram_width = 64 * 64;
>> } else {
>> adev->gmc.vram_type = AMDGPU_VRAM_TYPE_HBM;
>> adev->gmc.vram_width = 128 * 64;
>> --
>> 2.25.1
>
More information about the amd-gfx
mailing list