All of lore.kernel.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 03/12] bus: mvebu-mbus: Add static window allocation to the DT binding
Date: Tue, 18 Jun 2013 18:14:33 +0200	[thread overview]
Message-ID: <201306181814.33941.arnd@arndb.de> (raw)
In-Reply-To: <1371554737-25319-4-git-send-email-ezequiel.garcia@free-electrons.com>

On Tuesday 18 June 2013, Ezequiel Garcia wrote:
> +Required properties:
> +
> +- compatible:	 Should be set to one of the following:
> +		 marvell,armada370-mbus
> +		 marvell,armadaxp-mbus
> +
> +- reg:		 Device's register space.
> +		 Two entries are expected, see the examples below.
> +		 The first one controls the devices decoding window and
> +		 the second one controls the SDRAM decoding window.
> +
> +- address-cells: Must be '2'. The first cell for the MBus ID encoding,
> +                 the second cell for the address offset within the window.
> +
> +- size-cells:    Must be '1'.
> +
> +- ranges:        Must be set up to provide a proper translation for each child.
> +	         See the examples below.

You should explain here what the policy is regarding windows set up by the
boot loader. Are the ranges in here required to be the ones that the boot
loader has preconfigured, or are they the ones that the mbus driver is supposed
to set up?

> +Each child device needs at least a 'ranges' property. If the child is avaiable
> +(i.e. status not 'disabled'), then the MBus driver creates a decoding window
> +for it. For instance, in the example below the BootROM child is specified:
> +
> +	soc {
> +		compatible = "marvell,armada370-mbus", "simple-bus";
> +		reg = <0xd0020000 0x100>, <0xd0020180 0x20>;
> +		#address-cells = <2>;
> +		#size-cells = <1>;
> +
> +		ranges = < ... /* other entries */
> +			   0x011d0000 0 0 0xfff00000 0x100000>;
> +
> +		bootrom {
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			ranges = <0 0x011d0000 0 0x100000>;
> +		};
> +
> +		/* other children */
> +		...
> +	};

Do you really want to require the child to provide a "ranges" property?
I think this makes it more complicated to specify devices that belong
into the "internal-regs" category.

Is this mainly for convenience when settup up the windows?

> +
> +			ranges =
> +			       <0x82000000 0 0x40000 0xffff0001 0x40000 0 0x00002000   /* Port 0.0 registers */
> +				0x82000000 0 0x42000 0xffff0001 0x42000 0 0x00002000   /* Port 2.0 registers */
> +				0x82000000 0 0x44000 0xffff0001 0x44000 0 0x00002000   /* Port 0.1 registers */
> +				0x82000000 0 0x48000 0xffff0001 0x48000 0 0x00002000   /* Port 0.2 registers */
> +				0x82000000 0 0x4c000 0xffff0001 0x4c000 0 0x00002000   /* Port 0.3 registers */
> +				0x82000000 0 0x80000 0xffff0001 0x80000 0 0x00002000   /* Port 1.0 registers */
> +				0x82000000 0 0x82000 0xffff0001 0x82000 0 0x00002000   /* Port 3.0 registers */
> +				0x82000000 0 0xe0000000 0xffff0002 0 0 0x08000000   /* non-prefetchable memory */
> +				0x81000000 0 0 0xffff0002 0x8000000 0 0x00100000>; /* downstream I/O */

Using 0xffff0002 as a placeholder for the pcie translation is definitely
better than 0xffff0000 as you had before, but let me ask again in case
you missed it the last time (and sorry if I missed the answer):

Why not just put the actual translation here the way it happens for each
of the PCIe ports? With the definition here, the PCIe driver actually has no
way to figure out what settings the windows need to use!

On a side note, is there a reason why you use 0xffff0001 for the internal-regs
rather than just 0x1? This one isn't important as they both work as well, it's
just more to write your way.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: Ezequiel Garcia
	<ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
Cc: Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org>,
	Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	Jason Gunthorpe
	<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>,
	Maen Suleiman <maen-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
	Lior Amsalem <alior-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Sebastian Hesselbarth
	<sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH v3 03/12] bus: mvebu-mbus: Add static window allocation to the DT binding
Date: Tue, 18 Jun 2013 18:14:33 +0200	[thread overview]
Message-ID: <201306181814.33941.arnd@arndb.de> (raw)
In-Reply-To: <1371554737-25319-4-git-send-email-ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>

On Tuesday 18 June 2013, Ezequiel Garcia wrote:
> +Required properties:
> +
> +- compatible:	 Should be set to one of the following:
> +		 marvell,armada370-mbus
> +		 marvell,armadaxp-mbus
> +
> +- reg:		 Device's register space.
> +		 Two entries are expected, see the examples below.
> +		 The first one controls the devices decoding window and
> +		 the second one controls the SDRAM decoding window.
> +
> +- address-cells: Must be '2'. The first cell for the MBus ID encoding,
> +                 the second cell for the address offset within the window.
> +
> +- size-cells:    Must be '1'.
> +
> +- ranges:        Must be set up to provide a proper translation for each child.
> +	         See the examples below.

You should explain here what the policy is regarding windows set up by the
boot loader. Are the ranges in here required to be the ones that the boot
loader has preconfigured, or are they the ones that the mbus driver is supposed
to set up?

> +Each child device needs at least a 'ranges' property. If the child is avaiable
> +(i.e. status not 'disabled'), then the MBus driver creates a decoding window
> +for it. For instance, in the example below the BootROM child is specified:
> +
> +	soc {
> +		compatible = "marvell,armada370-mbus", "simple-bus";
> +		reg = <0xd0020000 0x100>, <0xd0020180 0x20>;
> +		#address-cells = <2>;
> +		#size-cells = <1>;
> +
> +		ranges = < ... /* other entries */
> +			   0x011d0000 0 0 0xfff00000 0x100000>;
> +
> +		bootrom {
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			ranges = <0 0x011d0000 0 0x100000>;
> +		};
> +
> +		/* other children */
> +		...
> +	};

Do you really want to require the child to provide a "ranges" property?
I think this makes it more complicated to specify devices that belong
into the "internal-regs" category.

Is this mainly for convenience when settup up the windows?

> +
> +			ranges =
> +			       <0x82000000 0 0x40000 0xffff0001 0x40000 0 0x00002000   /* Port 0.0 registers */
> +				0x82000000 0 0x42000 0xffff0001 0x42000 0 0x00002000   /* Port 2.0 registers */
> +				0x82000000 0 0x44000 0xffff0001 0x44000 0 0x00002000   /* Port 0.1 registers */
> +				0x82000000 0 0x48000 0xffff0001 0x48000 0 0x00002000   /* Port 0.2 registers */
> +				0x82000000 0 0x4c000 0xffff0001 0x4c000 0 0x00002000   /* Port 0.3 registers */
> +				0x82000000 0 0x80000 0xffff0001 0x80000 0 0x00002000   /* Port 1.0 registers */
> +				0x82000000 0 0x82000 0xffff0001 0x82000 0 0x00002000   /* Port 3.0 registers */
> +				0x82000000 0 0xe0000000 0xffff0002 0 0 0x08000000   /* non-prefetchable memory */
> +				0x81000000 0 0 0xffff0002 0x8000000 0 0x00100000>; /* downstream I/O */

Using 0xffff0002 as a placeholder for the pcie translation is definitely
better than 0xffff0000 as you had before, but let me ask again in case
you missed it the last time (and sorry if I missed the answer):

Why not just put the actual translation here the way it happens for each
of the PCIe ports? With the definition here, the PCIe driver actually has no
way to figure out what settings the windows need to use!

On a side note, is there a reason why you use 0xffff0001 for the internal-regs
rather than just 0x1? This one isn't important as they both work as well, it's
just more to write your way.

	Arnd

  reply	other threads:[~2013-06-18 16:14 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-18 11:25 [PATCH v3 00/12] MBus device tree binding Ezequiel Garcia
2013-06-18 11:25 ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 01/12] bus: mvebu-mbus: Factor out initialization details Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 02/12] bus: mvebu-mbus: Introduce device tree binding Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 03/12] bus: mvebu-mbus: Add static window allocation to the DT binding Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 16:14   ` Arnd Bergmann [this message]
2013-06-18 16:14     ` Arnd Bergmann
2013-06-18 17:12     ` Thomas Petazzoni
2013-06-18 17:12       ` Thomas Petazzoni
2013-06-18 17:16       ` Arnd Bergmann
2013-06-18 17:16         ` Arnd Bergmann
2013-06-18 21:34     ` Ezequiel Garcia
2013-06-18 21:34       ` Ezequiel Garcia
2013-06-18 21:45       ` Arnd Bergmann
2013-06-18 21:45         ` Arnd Bergmann
2013-06-19 18:52         ` Ezequiel Garcia
2013-06-19 18:52           ` Ezequiel Garcia
2013-06-19 19:08           ` Arnd Bergmann
2013-06-19 19:08             ` Arnd Bergmann
2013-06-19 19:29             ` Ezequiel Garcia
2013-06-19 19:29               ` Ezequiel Garcia
2013-06-19 19:37               ` Jason Cooper
2013-06-19 19:37                 ` Jason Cooper
2013-06-18 17:46   ` Jason Gunthorpe
2013-06-18 17:46     ` Jason Gunthorpe
2013-06-18 18:24     ` Sebastian Hesselbarth
2013-06-18 18:24       ` Sebastian Hesselbarth
2013-06-18 18:39       ` Arnd Bergmann
2013-06-18 18:39         ` Arnd Bergmann
2013-06-18 18:44         ` Sebastian Hesselbarth
2013-06-18 18:44           ` Sebastian Hesselbarth
2013-06-18 18:47           ` Jason Gunthorpe
2013-06-18 18:47             ` Jason Gunthorpe
2013-06-18 18:59             ` Sebastian Hesselbarth
2013-06-18 18:59               ` Sebastian Hesselbarth
2013-06-18 19:10               ` Jason Gunthorpe
2013-06-18 19:10                 ` Jason Gunthorpe
2013-06-18 19:27                 ` Sebastian Hesselbarth
2013-06-18 19:27                   ` Sebastian Hesselbarth
2013-06-18 20:49                   ` Ezequiel Garcia
2013-06-18 20:49                     ` Ezequiel Garcia
2013-06-18 20:55                     ` Jason Gunthorpe
2013-06-18 20:55                       ` Jason Gunthorpe
2013-06-18 21:10                       ` Ezequiel Garcia
2013-06-18 21:10                         ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 04/12] ARM: mvebu: Initialize MBus using " Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 05/12] ARM: mvebu: Remove the harcoded BootROM window allocation Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 17:39   ` Jason Gunthorpe
2013-06-18 17:39     ` Jason Gunthorpe
2013-06-18 19:43     ` Ezequiel Garcia
2013-06-18 19:43       ` Ezequiel Garcia
2013-06-18 19:51       ` Jason Gunthorpe
2013-06-18 19:51         ` Jason Gunthorpe
2013-06-18 20:02         ` Ezequiel Garcia
2013-06-18 20:02           ` Ezequiel Garcia
2013-06-18 20:10           ` Jason Gunthorpe
2013-06-18 20:10             ` Jason Gunthorpe
2013-06-18 20:39             ` Ezequiel Garcia
2013-06-18 20:39               ` Ezequiel Garcia
2013-06-19 10:02     ` Ezequiel Garcia
2013-06-19 10:02       ` Ezequiel Garcia
2013-06-19 16:58       ` Jason Gunthorpe
2013-06-19 16:58         ` Jason Gunthorpe
2013-06-19 17:58         ` Ezequiel Garcia
2013-06-19 17:58           ` Ezequiel Garcia
2013-06-19 18:03           ` Jason Gunthorpe
2013-06-19 18:03             ` Jason Gunthorpe
2013-06-19 18:17             ` Ezequiel Garcia
2013-06-19 18:17               ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 06/12] memory: mvebu-devbus: Remove address decoding window workaround Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 11:39   ` Jason Cooper
2013-06-18 11:39     ` Jason Cooper
2013-06-18 12:17     ` Thomas Petazzoni
2013-06-18 12:17       ` Thomas Petazzoni
2013-06-18 12:33       ` Jason Cooper
2013-06-18 12:33         ` Jason Cooper
2013-06-18 12:48         ` Ezequiel Garcia
2013-06-18 12:48           ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 07/12] ARM: mvebu: Use the preprocessor on Armada 370/XP device tree files Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 08/12] ARM: mvebu: Add MBus to Armada 370/XP device tree Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 09/12] ARM: mvebu: Add BootROM " Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 11:25 ` [PATCH v3 10/12] ARM: mvebu: Relocate Armada 370/XP DeviceBus device tree nodes Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 16:16   ` Arnd Bergmann
2013-06-18 16:16     ` Arnd Bergmann
2013-06-18 22:09     ` Ezequiel Garcia
2013-06-18 22:09       ` Ezequiel Garcia
2013-06-18 22:14       ` Ezequiel Garcia
2013-06-18 22:14         ` Ezequiel Garcia
2013-06-19 12:03       ` Arnd Bergmann
2013-06-19 12:03         ` Arnd Bergmann
2013-06-18 11:25 ` [PATCH v3 11/12] ARM: mvebu: Relocate Armada 370 PCIe " Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 16:29   ` Arnd Bergmann
2013-06-18 16:29     ` Arnd Bergmann
2013-06-18 17:15     ` Thomas Petazzoni
2013-06-18 17:15       ` Thomas Petazzoni
2013-06-18 17:18       ` Arnd Bergmann
2013-06-18 17:18         ` Arnd Bergmann
2013-06-18 17:21         ` Thomas Petazzoni
2013-06-18 17:21           ` Thomas Petazzoni
2013-06-18 18:22           ` Arnd Bergmann
2013-06-18 18:22             ` Arnd Bergmann
2013-06-18 19:02             ` Jason Gunthorpe
2013-06-18 19:02               ` Jason Gunthorpe
2013-06-18 21:20               ` Arnd Bergmann
2013-06-18 21:20                 ` Arnd Bergmann
2013-06-18 21:40                 ` Ezequiel Garcia
2013-06-18 21:40                   ` Ezequiel Garcia
2013-06-19 12:06                   ` Arnd Bergmann
2013-06-19 12:06                     ` Arnd Bergmann
2013-06-18 21:35   ` Arnd Bergmann
2013-06-18 21:35     ` Arnd Bergmann
2013-06-19 11:12     ` Ezequiel Garcia
2013-06-19 11:12       ` Ezequiel Garcia
2013-06-19 12:11       ` Arnd Bergmann
2013-06-19 12:11         ` Arnd Bergmann
2013-06-19 16:53         ` Jason Gunthorpe
2013-06-19 16:53           ` Jason Gunthorpe
2013-06-19 18:55           ` Arnd Bergmann
2013-06-19 18:55             ` Arnd Bergmann
2013-06-18 11:25 ` [PATCH v3 12/12] ARM: mvebu: Relocate Armada XP " Ezequiel Garcia
2013-06-18 11:25   ` Ezequiel Garcia
2013-06-18 11:33 ` [PATCH v3 00/12] MBus device tree binding Sebastian Hesselbarth
2013-06-18 11:33   ` Sebastian Hesselbarth
2013-06-18 13:07   ` Ezequiel Garcia
2013-06-18 13:07     ` Ezequiel Garcia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201306181814.33941.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.