qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [kernel PATCH] devicetree: document ARM bindings for QE


From: Mark Rutland
Subject: Re: [Qemu-devel] [kernel PATCH] devicetree: document ARM bindings for QEMU's Firmware Config interface
Date: Fri, 28 Nov 2014 13:33:00 +0000
User-agent: Mutt/1.5.21 (2010-09-15)

On Fri, Nov 28, 2014 at 01:22:29PM +0000, Laszlo Ersek wrote:
> On 11/28/14 13:59, Arnd Bergmann wrote:
> > On Friday 28 November 2014 13:26:44 Laszlo Ersek wrote:
> >> +Example:
> >> +
> >> +/ {
> >> +       #size-cells = <0x2>;
> >> +       #address-cells = <0x2>;
> >> +
> >> +       address@hidden {
> >> +               reg = <0x0 0x9020000 0x0 0x2 0x0 0x9020002 0x0 0x1>;
> >> +               compatible = "fw-cfg,mmio";
> >> +       };
> >> +};
> >>
> > 
> > "fw-cfg" is not a valid vendor string. Are you emulating an actual piece
> > of hardware here or is this something that comes from qemu?
> 
> It's a made up name.
> 
> > How about using "qemu,fwcfg" as the compatible string, and documenting
> > "qemu" as an official vendor string in 
> > Documentation/devicetree/bindings/vendor-prefixes.txt
> 
> I can do that, certainly, but I'm not sure if that implies other QEMU
> devices should follow suit.
> 
> For example, the virtio-mmio transports that qemu advertises have the
> "compatible" property "virtio,mmio". "virtio" is not a vendor prefix
> either (according to the above text file).

True, but it's a documented standard. It's obvious that 'virtio' has
something to do with the virtio standard, while it's not obvious that
'fw-cfg' as a prefix is for a qemu-specific device.

We should probably add 'virtio' as a vendor prefix.

> 
> Here's the full list of compatible strings from the generated DTB:
> 
>   compatible = "arm,cortex-a15";
>   compatible = "arm,armv7-timer";
>   compatible = "arm,cortex-a15-gic";
>   compatible = "arm,pl011", "arm,primecell";
>   compatible = "arm,pl031", "arm,primecell";
>   compatible = "arm,psci-0.2", "arm,psci";

All of these are emulated real devices or standards from ARM, so that
makes sense.

>   compatible = "cfi-flash";
>   compatible = "fixed-clock";

These are generic bindings, arguably they should have been 'linux,'
prefixed but it's too late now.

>   compatible = "fw-cfg,mmio";
>   compatible = "virtio,mmio";
>   compatible = "linux,dummy-virt";
> 
> According to
> <http://devicetree.org/Device_Tree_Usage#Understanding_the_compatible_Property>,
> "cfi-flash" and "fixed-clock" don't even have the correct format
> (there's no comma separating <manufacturer> from <model>).
> 
> > We don't normally list contiguous registers separately. Maybe just round
> > up to one page and make the register property
> > 
> >     reg = <0x0 0x9020000 0x0 0x1000>;
> 
> The registers are not necessarily placed shoulder to shoulder (it's not
> a requirement in the QEMU source).

It might not be at the moment, but if no-one separates them it could be
a requirement for using this binding. Is there any benefit to having
them separated?

Thanks,
Mark.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]