Re: [PATCH v2 1/6] arm64/hyperv: Support DeviceTree

Roman Kisel
2024-05-15T17:33:52Z

On 5/15/2024 12:45 AM, Krzysztof Kozlowski wrote:
> On 15/05/2024 00:43, Roman Kisel wrote:
>> The Virtual Trust Level platforms rely on DeviceTree, and the
>> arm64/hyperv code supports ACPI only. Update the logic to
>> support DeviceTree on boot as well as ACPI.
>>
>> Signed-off-by: Roman Kisel <romank@linux.microsoft.com>
>> ---
>> arch/arm64/hyperv/mshyperv.c | 34 +++++++++++++++++++++++++++++-----
>> 1 file changed, 29 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c
>> index b1a4de4eee29..208a3bcb9686 100644
>> --- a/arch/arm64/hyperv/mshyperv.c
>> +++ b/arch/arm64/hyperv/mshyperv.c
>> @@ -15,6 +15,9 @@
>> #include <linux/errno.h>
>> #include <linux/version.h>
>> #include <linux/cpuhotplug.h>
>> +#include <linux/libfdt.h>
>> +#include <linux/of.h>
>> +#include <linux/of_fdt.h>
>> #include <asm/mshyperv.h>
>>
>> static bool hyperv_initialized;
>> @@ -27,6 +30,29 @@ int hv_get_hypervisor_version(union hv_hypervisor_version_info *info)
>> return 0;
>> }
>>
>> +static bool hyperv_detect_fdt(void)
>> +{
>> +#ifdef CONFIG_OF
>> + const unsigned long hyp_node = of_get_flat_dt_subnode_by_name(
>> + of_get_flat_dt_root(), "hypervisor");
>
> Why do you add an ABI for node name? Although name looks OK, but is it
> really described in the spec that you depend on it? I really do not like
> name dependencies...

Followed the existing DeviceTree's of naming and approaches in the
kernel to surprise less and "invent" even less. As for the spec, the
Hyper-V TLFS'es part discussing Hypervisor Discovery talks about x86
(https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/feature-discovery)
only and via the ISA-provided means only. For arm64, Hyper-V code
discovers the hypervisor presence via ACPI. Felt only natural to do the
same for DeviceTree and arm64.

>
> Where is the binding for this?
>
Have not added, my mistake. Will place under
Documentation/devicetree/bindings/bus/microsoft,hyperv.yaml

> Best regards,
> Krzysztof

--
Thank you,
Roman