[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <267ef0e2-2384-44bd-81f9-f33dda7bb9d2@linux.microsoft.com>
Date: Wed, 15 May 2024 10:33:46 -0700
From: Roman Kisel <romank@...ux.microsoft.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>, arnd@...db.de,
bhelgaas@...gle.com, bp@...en8.de, catalin.marinas@....com,
dave.hansen@...ux.intel.com, decui@...rosoft.com, haiyangz@...rosoft.com,
hpa@...or.com, kw@...ux.com, kys@...rosoft.com, lenb@...nel.org,
lpieralisi@...nel.org, mingo@...hat.com, mhklinux@...look.com,
rafael@...nel.org, robh@...nel.org, tglx@...utronix.de, wei.liu@...nel.org,
will@...nel.org, linux-acpi@...r.kernel.org, linux-arch@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-hyperv@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-pci@...r.kernel.org, x86@...nel.org
Cc: ssengar@...rosoft.com, sunilmut@...rosoft.com, vdso@...bites.dev
Subject: Re: [PATCH v2 1/6] arm64/hyperv: Support DeviceTree
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@...ux.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
Powered by blists - more mailing lists