Question regarding "boot-hartid" DT node

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Thu Dec 2 08:53:46 PST 2021


On 12/2/21 17:20, Ard Biesheuvel wrote:
> On Thu, 2 Dec 2021 at 16:05, Sunil V L <sunilvl at ventanamicro.com> wrote:
>>
>> Hi All,
>>     I am starting this thread to discuss about the "boot-hartid" DT node
>>     that is being used in RISC-V Linux EFI stub.
>>
>>     As you know, the boot Hart ID is passed in a0 register to the kernel
>>     and hence there is actually no need to pass it via DT. However, since
>>     EFI stub follows EFI application calling conventions, it needs to
>>     know the boot Hart ID so that it can pass it to the proper kernel via
>>     a0. For this issue, the solution was to add "/chosen/boot-hartid" in
>>     DT. Both EDK2 and u-boot append this node in DT.
>>
> 
> I think this was a mistake tbh
> 
>>     But above approach causes issue for ACPI since ACPI initialization
>>     happens late in the proper kernel. Same is true even if we pass this
>>     information via SMBIOS.
>>
> 
> It would be better to define a RISCV specific EFI protocol that the
> stub can call to discover the boot-hartid value. That wat, it can pass
> it directly, without having to rely on firmware tables.

As discovering the current process' hartid is not a UEFI specific task 
SBI would be a better fit.

Best regards

Heinrich

> 
> Note that you don't need any spec changes for this on the ACPI or UEFI side.
> 
>>     Do you have any suggestions what can be done in ACPI case? Can we use
>>     a UEFI variable with RVI specific GUID to pass this information? This
>>     will have the advantage that it can work with either DT or ACPI.
>>     Also, we may not need any UEFI spec update. Do you see any issue with
>>     this approach? Your inputs will be very helpful.
>>
>> Thanks!
>> Sunil




More information about the linux-riscv mailing list