[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230206174022.GA18911@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net>
Date: Mon, 6 Feb 2023 09:40:22 -0800
From: Saurabh Singh Sengar <ssengar@...ux.microsoft.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Cc: Rob Herring <robh@...nel.org>, krzysztof.kozlowski+dt@...aro.org,
kys@...rosoft.com, haiyangz@...rosoft.com, wei.liu@...nel.org,
decui@...rosoft.com, daniel.lezcano@...aro.org, tglx@...utronix.de,
virtualization@...ts.linux-foundation.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-hyperv@...r.kernel.org, mikelley@...rosoft.com,
ssengar@...rosoft.com
Subject: Re: [PATCH v2 0/6] Device tree support for Hyper-V VMBus driver
On Wed, Feb 01, 2023 at 06:15:23PM +0100, Krzysztof Kozlowski wrote:
> On 01/02/2023 17:34, Saurabh Singh Sengar wrote:
> >> Also see my comment on v1 about running DT validation on your dtb. I'm
> >> sure running it would point out other issues. Such as the root level
> >> comaptible string(s) need to be documented. You need cpu nodes,
> >> interrupt controller, timers, etc. Those all have to be documented.
> >
> > I will be changing the parent node to soc node as suggested by Krzysztof
> > in other thread.
> >
> > soc {
> > #address-cells = <2>;
> > #size-cells = <2>;
> >
> > vmbus@...000000 {
> > #address-cells = <2>;
> > #size-cells = <1>;
> > compatible = "Microsoft,vmbus";
> > ranges = <0x00 0x00 0x0f 0xf0000000 0x10000000>;
> > };
> > };
> >
> > This will be sufficient.
>
> It will be ok for the example, but will not be ok for supporting your
> use case. Please solve all the points from Rob's comment above. Where is
> their documentation?
>
> Best regards,
> Krzysztof
Hi Rob/ Krzysztof,
I am happy to update the documentation as requested. Please note
that, apart from CPUs, there is no other device node in the tree.
Here are some of the info related to our system:
Timers:
VMBus code uses a Hyper-V Synthetic timer and there is no device tree
node or ACPI method required for this. This is implemented as
drivers/clocksource/hyperv_timer.c
Interrupt controller:
The hypervisor virtualizes interrupt delivery to virtual processors.
This is done through the use of a synthetic interrupt controller
(SynIC) which is an extension of a virtualized local APIC. In the cpu
DT nodes we have APIC ids.
Below are the cpu nodes we use, please suggest if I need to update any
document for it.
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
reg = <0>;
status = "okay";
};
cpu@1 {
device_type = "cpu";
reg = <1>;
status = "okay";
};
};
Regards,
Saurabh
Powered by blists - more mailing lists