Messages in this thread | | | From | Rob Herring <> | Date | Fri, 29 Apr 2022 15:46:05 -0500 | Subject | Re: [PATCH v3 1/2] dt-bindings: vm-wdt: Add qemu,vm-watchdog compatible |
| |
On Thu, Apr 28, 2022 at 9:29 AM Sebastian Ene <sebastianene@google.com> wrote: > > On Mon, Apr 25, 2022 at 01:29:51PM -0500, Rob Herring wrote: > > On Mon, Apr 25, 2022 at 01:42:05PM +0000, Sebastian Ene wrote: > > > The stall detection mechanism allows to configure the expiration > > > duration and the internal counter clock frequency measured in Hz. > > > Add these properties in the schema. > > > > > > Signed-off-by: Sebastian Ene <sebastianene@google.com> > > > --- > > > .../devicetree/bindings/misc/vm-wdt.yaml | 44 +++++++++++++++++++ > > > 1 file changed, 44 insertions(+) > > > create mode 100644 Documentation/devicetree/bindings/misc/vm-wdt.yaml > > > > > > diff --git a/Documentation/devicetree/bindings/misc/vm-wdt.yaml b/Documentation/devicetree/bindings/misc/vm-wdt.yaml > > > new file mode 100644 > > > index 000000000000..cb7665a0c5af > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/misc/vm-wdt.yaml > > > @@ -0,0 +1,44 @@ > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/misc/vm-wdt.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: VM watchdog > > > + > > > +description: | > > > + This binding describes a CPU stall detector mechanism for virtual cpus. > > > + > > > +maintainers: > > > + - Sebastian Ene <sebastianene@google.com> > > > + > > > +properties: > > > + compatible: > > > + enum: > > > + - qemu,vm-watchdog > > > + clock: > > Hi, > > > > > 'clocks' is already a defined property and 'clock' is too close. It's > > also ambiguous what it is. 'clock-frequency' instead perhaps. > > > > Yes, I think 'clock-frequency' is a better name. I will update it.
You are defining the register interface, so why not define a register containing the frequency? Again, make your interface discoverable.
> > > + $ref: /schemas/types.yaml#/definitions/uint32 > > > + description: | > > > + The watchdog internal clock measure in Hz used to decrement the > > > + watchdog counter register on each tick. > > > + Defaults to 10 if unset. > > > + timeout-sec: > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > > + description: | > > > + The watchdog expiration timeout measured in seconds. > > > + Defaults to 8 if unset. > > > + > > > +required: > > > + - compatible > > > + > > > +additionalProperties: false > > > + > > > +examples: > > > + - | > > > + watchdog { > > > + compatible = "qemu,vm-watchdog"; > > > + clock = <10>; > > > + timeout-sec = <8>; > > > > How does one access this 'hardware'? > > > > This is a MMIO device.
Then how do you discover its address? You need 'reg'.
> > Why does this need to be in DT? > > > > We have DT because h/w designers are incapable of making h/w > > discoverable. Why repeat that problem with s/w interfaces? > > > > We need to have this one in the DT because in a secure VM we only load > trusted DT components.
How does using DT make something trusted vs. any other mechanism the hypervisor controls?
I would like to know from the virtualization folks (Xen/KVM) how they would implement this feature? Certainly this could be reused, but then we need an ACPI binding too for non-DT systems.
Why not use virtio?
Rob
| |