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@xxxxxxxxxxxxxxxxxxx>
---
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