[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