[OpenPower-Firmware] [PATCH] kernel: Enable radeon support for CHAICOS adapters

Klaus Heinrich Kiwi klaus at linux.vnet.ibm.com
Fri Oct 18 06:40:56 AEDT 2019


> Which platforms do you want to support this Radeon device? I ask as
> the firmware whitelist will add it to all machines, increasing the
> size of the initramfs for all platforms. We might instead want to make
> it per-platform.

 From the internal discussion about this, this should be only for 
Witherspoon at this point.


  -Klaus


> Cheers,
>
> Joel
>
>> CHAICOS microcode was removed due to the issue with the radeon driver
>> so now that microcode must be added to the firmware whitelist.
>>
>> Signed-off-by: Kyle Mahlkuch <Kyle.Mahlkuch at ibm.com>
>> ---
>>   .../0003-drm-radeon-Fix-EEH-during-kexec.patch     | 41 ++++++++++++++++++++++
>>   openpower/scripts/firmware-whitelist               |  8 ++++-
>>   2 files changed, 48 insertions(+), 1 deletion(-)
>>   create mode 100644 openpower/linux/0003-drm-radeon-Fix-EEH-during-kexec.patch
>>
>> diff --git a/openpower/linux/0003-drm-radeon-Fix-EEH-during-kexec.patch b/openpower/linux/0003-drm-radeon-Fix-EEH-during-kexec.patch
>> new file mode 100644
>> index 0000000..5db3538
>> --- /dev/null
>> +++ b/openpower/linux/0003-drm-radeon-Fix-EEH-during-kexec.patch
>> @@ -0,0 +1,41 @@
>> +From 28430c1b6681763fff4b1affc8f0c52c1207a1e9 Mon Sep 17 00:00:00 2001
>> +From: KyleMahlkuch <kmahlkuc at linux.vnet.ibm.com>
>> +Date: Fri, 4 Oct 2019 16:06:15 -0500
>> +Subject: [PATCH] drm/radeon: Fix EEH during kexec
>> +
>> +During kexec some adapters hit an EEH since they are not properly
>> +shut down in the radeon_pci_shutdown() function. Adding
>> +radeon_suspend_kms() fixes this issue.
>> +
>> +Signed-off-by: Kyle Mahlkuch <Kyle.Mahlkuch at ibm.com>
>> +---
>> + drivers/gpu/drm/radeon/radeon_drv.c | 8 ++++++++
>> + 1 file changed, 8 insertions(+)
>> +
>> +diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
>> +index a6cbe11..15d7beb 100644
>> +--- a/drivers/gpu/drm/radeon/radeon_drv.c
>> ++++ b/drivers/gpu/drm/radeon/radeon_drv.c
>> +@@ -349,11 +349,19 @@ static int radeon_pci_probe(struct pci_dev *pdev,
>> + static void
>> + radeon_pci_shutdown(struct pci_dev *pdev)
>> + {
>> ++      struct drm_device *ddev = pci_get_drvdata(pdev);
>> ++
>> +       /* if we are running in a VM, make sure the device
>> +        * torn down properly on reboot/shutdown
>> +        */
>> +       if (radeon_device_is_virtual())
>> +               radeon_pci_remove(pdev);
>> ++
>> ++      /* Some adapters need to be suspended before a
>> ++      * shutdown occurs in order to prevent an error
>> ++      * during kexec.
>> ++      */
>> ++      radeon_suspend_kms(ddev, true, true, false);
>> + }
>> +
>> + static int radeon_pmops_suspend(struct device *dev)
>> +--
>> +1.8.3.1
>> +
>> diff --git a/openpower/scripts/firmware-whitelist b/openpower/scripts/firmware-whitelist
>> index 3ca6e7b..9c34242 100755
>> --- a/openpower/scripts/firmware-whitelist
>> +++ b/openpower/scripts/firmware-whitelist
>> @@ -11,7 +11,13 @@ whitelist=(     'acenic/'
>>                   'cxgb4/t4fw.bin'
>>                   'cxgb3/'
>>                   'qed/qed_init_values_zipped-8.37.2.0.bin'
>> -                'ql2500_fw.bin')
>> +                'ql2500_fw.bin'
>> +                'radeon/BTC_rlc.bin'
>> +                'radeon/CAICOS_mc.bin'
>> +                'radeon/CAICOS_me.bin'
>> +                'radeon/CAICOS_pfp.bin'
>> +                'radeon/CAICOS_smc.bin'
>> +                'radeon/SUMO_uvd.bin')
>>
>>   if [ -z "${TARGET_DIR}" ] ; then
>>           echo "TARGET_DIR not defined, setting to $1"
>> --
>> 1.8.3.1
>>
> _______________________________________________
> OpenPower-Firmware mailing list
> OpenPower-Firmware at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openpower-firmware

-- 
Klaus Heinrich Kiwi <klaus at linux.vnet.ibm.com>



More information about the OpenPower-Firmware mailing list