Re: [PATCH 0/2] arch: arm64: xilinx: Make zynqmp_firmware driver optional

From: Michal Simek
Date: Mon Feb 24 2020 - 05:34:51 EST


On 13. 01. 20 7:46, Rajan Vaja wrote:
> Hi Sudeep,
>
> Thanks for the reviewing patch.
>
>> -----Original Message-----
>> From: Sudeep Holla <sudeep.holla@xxxxxxx>
>> Sent: 10 January 2020 05:24 PM
>> To: Jolly Shah <JOLLYS@xxxxxxxxxx>
>> Cc: ard.biesheuvel@xxxxxxxxxx; mingo@xxxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx;
>> matt@xxxxxxxxxxxxxxxxxxx; hkallweit1@xxxxxxxxx; keescook@xxxxxxxxxxxx;
>> dmitry.torokhov@xxxxxxxxx; Michal Simek <michals@xxxxxxxxxx>; Rajan Vaja
>> <RAJANV@xxxxxxxxxx>; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-
>> kernel@xxxxxxxxxxxxxxx; Sudeep Holla <sudeep.holla@xxxxxxx>; Tejas Patel
>> <TEJASP@xxxxxxxxxx>
>> Subject: Re: [PATCH 0/2] arch: arm64: xilinx: Make zynqmp_firmware driver
>> optional
>>
>> EXTERNAL EMAIL
>>
>> On Thu, Jan 09, 2020 at 11:06:02AM -0800, Jolly Shah wrote:
>>> From: Tejas Patel <tejas.patel@xxxxxxxxxx>
>>>
>>> Zynqmp firmware driver requires firmware to be present in system.
>>> Zynqmp firmware driver will crash if firmware is not present in system.
>>> For example single arch QEMU, may not have firmware, with such setup
>>> Linux booting fails.
>>>
>>> So make zynqmp_firmware driver as optional to disable it if user don't
>>> have firmware in system.
>>>
>>
>> Why can't it be detected runtime ? How do you handle single binary if you
>> make this compile time option ?
> [Rajan] There is PMU register which indicates if firmware is present or not, but in case of single arch QEMU that register will not be available so there is no way to detect if firmware is present or not from Linux.
> Linux firmware crashes while arm_smccc_smc() call for firmware, but before this call there is no way to identify if firmware is present or not. So we are just giving user an option if they want to use it on single arch
> Platform they can disable firmware driver.

If this is just for qemu case why not just add this register for single
instance solution.

Edgar: Can we map this register when there is no second instance to PMU MB?

Thanks,
Michal