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