[v2] powerpc/mpc85xx: Add DPAA Ethernet QMan support to the device tree(s)

Scott Wood scottwood at freescale.com
Fri May 29 10:59:08 AEST 2015


On Wed, May 20, 2015 at 03:29:35PM +0300, Madalin Bucur wrote:
> From: Emil Medve <Emilian.Medve at Freescale.com>
> 
> Signed-off-by: Emil Medve <Emilian.Medve at Freescale.com>

What does "DPAA Ethernet QMan support" mean?  Is it ethernet support or
qman support?  In any case the subject is too long.

> +/* These stubs are required to alloc qbman drivers to determine what ranges of
> + * resources are available for dynamic allocation, primarily because there are
> + * some legacy "a priori" assumptions in certain subsystems (eg. networking)
> + * that certain resources are reserved for their use. When those drivers (and in
> + * some cases, their corresponding device-tree nodes) are updated to dynamically
> + * allocate their resources, then *all* resources can be managed by the
> + * allocators and there may be no further need to define these stubs.

I thought we were doing full dynamic resource allocation for the upstream
driver and device tree binding.

> + * - Even for memory-backed resources that are software determined (FQIDs), this
> + *   information may only be configured and available on the control-plane
> + *   partition that manages the device, so in AMP or hypervised scenarios there
> + *   may still be need to a way to provide allocation ranges. Ie. for O/S
> + *   instances that don't know how many resources are available to hardware, and
> + *   possibly even for O/S instances that do know how many are available but
> + *   that should not "own" all of them.

Partial device assignment under virtualization needs special handling for
any device; no need to have a big block comment about it here.

> + */
> +
> +&qportals {
> +	qman-fqids at 0 {
> +		compatible = "fsl,fqid-range";
> +		fsl,fqid-range = <256 256>;
> +	};
> +	qman-fqids at 1 {
> +		compatible = "fsl,fqid-range";
> +		fsl,fqid-range = <32768 32768>;
> +	};
> +	qman-pools at 0 {
> +		compatible = "fsl,pool-channel-range";
> +		fsl,pool-channel-range = <0x21 0xf>;
> +	};
> +	qman-cgrids at 0 {
> +		compatible = "fsl,cgrid-range";
> +		fsl,cgrid-range = <0 256>;
> +	};
> +};

Where is the binding for this stuff?

> +/* The comments in qoriq-dpaa-res1.dtsi apply here too so will not be repeated.
> + * This alternative file is to support p1023 which does not have the same
> + * resource ranges as other SoCs to date. */

Then put "p1023" in the name instead of "res2" (or if the 2 really means
something, explain).

> +/* These stubs are required to alloc qbman drivers to determine what ranges of
> + * resources are available for dynamic allocation, primarily because there are
> + * some legacy "a priori" assumptions in certain subsystems (eg. networking)
> + * that certain resources are reserved for their use. When those drivers (and in
> + * some cases, their corresponding device-tree nodes) are updated to dynamically
> + * allocate their resources, then *all* resources can be managed by the
> + * allocators and there may be no further need to define these stubs.
> + *
> + * A couple of qualifiers to the above statement though:
> + *
> + * - Some resource ranges are hardware-specific, rather than being defined by
> + *   software memory allocation choices. Eg. the number of available BPIDs is
> + *   baked into silicon and so will probably always need to be expressed in the
> + *   device-tree, though in that case it will express all BPIDs, not just those
> + *   available for dynamic allocation.
> + *
> + * - Even for memory-backed resources that are software determined (FQIDs), this
> + *   information may only be configured and available on the control-plane
> + *   partition that manages the device, so in AMP or hypervised scenarios there
> + *   may still be need to a way to provide allocation ranges. Ie. for O/S
> + *   instances that don't know how many resources are available to hardware, and
> + *   possibly even for O/S instances that do know how many are available but
> + *   that should not "own" all of them.

Why is all this repeated here?

If explanation is needed about what the nodes are here for, put it in the
binding document.

-Scott


More information about the Linuxppc-dev mailing list