From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 03/14] bus: mvebu-mbus: Introduce device tree binding
Date: Fri, 7 Jun 2013 23:15:50 +0200 [thread overview]
Message-ID: <201306072315.50390.arnd@arndb.de> (raw)
In-Reply-To: <20130607200956.GB9010@obsidianresearch.com>
On Friday 07 June 2013, Jason Gunthorpe wrote:
>
> On Fri, Jun 07, 2013 at 09:53:03PM +0200, Arnd Bergmann wrote:
>
> > Can you explain to me why it is an invalid target ID value? Is it
> > treated very differently by the mbus register setup than all the
> > others? I guess we can define it as something else to make a valid
> > target ID, by using one or more of the remaining bits in the first
> > address cell.
>
> There is a special dedicated window register for the internal regs
> base. Marvell did not define it a target ID or window attributes, and
> only that window register can be used to configure it.
Ok.
> The mbus driver should never read or write this register.
That is not a hard requirement, right? I guess based on the
recent discussion about the 0xd0 or 0xf1 window, there may
actually be good reasons to reassign it, although I agree
that we shouldn't bother with implementing that for now, as
it's not a simple or urgent problem.
> So we have a 2 cell address encoding of the form:
>
> IIAA0000 00oooooo
>
> Where:
> -- I = Marvell defined target ID for programmable windows
> -- A = Marvell defined target attributes for programmable windows
> -- o = offset within the window
>
> Now, we need 2 cell format that tells the driver that this is the
> internal regs block. Assuming that marvell defines all I/A values we
> need another value (I called it an invalid valid) to indicate internal
> regs, several choices:
>
> FFFFFFFF 00oooooo
> 0000FFFF 00oooooo
> 00000001 00oooooo
>
> Doesn't really matter which is picked, as far as I can tell, though
> maybe the 01 option is best, leading to:
>
> IIAAssss 00oooooo
>
> Where:
> -- s = target space
> == 0 means I/A are:
> -- I = Marvell defined target ID for programmable windows
> -- A = Marvell defined target attributes for programmable windows
> == 1 means internal regs block
> -- o = offset within the target
>
> Which is pretty tidy..
Ok, thanks for the explanation. I think this is a good representation.
The other idea I raised in my previous mail would end up with something
like
SIIAA000 00oooooo
with 'S' having the inverted meaning of your 's', so '0' actually
refers to the internal regs as in Ezequiel's current code.
I'm fine with either representation though.
Arnd
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
Lior Amsalem <alior@marvell.com>,
Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
devicetree-discuss@lists.ozlabs.org,
Maen Suleiman <maen@marvell.com>,
Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
Gregory Clement <gregory.clement@free-electrons.com>,
linux-arm-kernel@lists.infradead.org,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Subject: Re: [PATCH 03/14] bus: mvebu-mbus: Introduce device tree binding
Date: Fri, 7 Jun 2013 23:15:50 +0200 [thread overview]
Message-ID: <201306072315.50390.arnd@arndb.de> (raw)
In-Reply-To: <20130607200956.GB9010@obsidianresearch.com>
On Friday 07 June 2013, Jason Gunthorpe wrote:
>
> On Fri, Jun 07, 2013 at 09:53:03PM +0200, Arnd Bergmann wrote:
>
> > Can you explain to me why it is an invalid target ID value? Is it
> > treated very differently by the mbus register setup than all the
> > others? I guess we can define it as something else to make a valid
> > target ID, by using one or more of the remaining bits in the first
> > address cell.
>
> There is a special dedicated window register for the internal regs
> base. Marvell did not define it a target ID or window attributes, and
> only that window register can be used to configure it.
Ok.
> The mbus driver should never read or write this register.
That is not a hard requirement, right? I guess based on the
recent discussion about the 0xd0 or 0xf1 window, there may
actually be good reasons to reassign it, although I agree
that we shouldn't bother with implementing that for now, as
it's not a simple or urgent problem.
> So we have a 2 cell address encoding of the form:
>
> IIAA0000 00oooooo
>
> Where:
> -- I = Marvell defined target ID for programmable windows
> -- A = Marvell defined target attributes for programmable windows
> -- o = offset within the window
>
> Now, we need 2 cell format that tells the driver that this is the
> internal regs block. Assuming that marvell defines all I/A values we
> need another value (I called it an invalid valid) to indicate internal
> regs, several choices:
>
> FFFFFFFF 00oooooo
> 0000FFFF 00oooooo
> 00000001 00oooooo
>
> Doesn't really matter which is picked, as far as I can tell, though
> maybe the 01 option is best, leading to:
>
> IIAAssss 00oooooo
>
> Where:
> -- s = target space
> == 0 means I/A are:
> -- I = Marvell defined target ID for programmable windows
> -- A = Marvell defined target attributes for programmable windows
> == 1 means internal regs block
> -- o = offset within the target
>
> Which is pretty tidy..
Ok, thanks for the explanation. I think this is a good representation.
The other idea I raised in my previous mail would end up with something
like
SIIAA000 00oooooo
with 'S' having the inverted meaning of your 's', so '0' actually
refers to the internal regs as in Ezequiel's current code.
I'm fine with either representation though.
Arnd
next prev parent reply other threads:[~2013-06-07 21:15 UTC|newest]
Thread overview: 136+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-07 16:47 [PATCH 00/14] MBus device tree binding Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:47 ` [PATCH 01/14] bus: mvebu-mbus: Use pr_fmt Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:56 ` Thomas Petazzoni
2013-06-07 16:56 ` Thomas Petazzoni
2013-06-08 14:15 ` Jason Cooper
2013-06-08 14:15 ` Jason Cooper
2013-06-07 16:47 ` [PATCH 02/14] bus: mvebu-mbus: Factor out initialization details Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:47 ` [PATCH 03/14] bus: mvebu-mbus: Introduce device tree binding Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 19:10 ` Arnd Bergmann
2013-06-07 19:10 ` Arnd Bergmann
2013-06-07 19:44 ` Jason Gunthorpe
2013-06-07 19:44 ` Jason Gunthorpe
2013-06-07 19:53 ` Arnd Bergmann
2013-06-07 19:53 ` Arnd Bergmann
2013-06-07 20:09 ` Jason Gunthorpe
2013-06-07 20:09 ` Jason Gunthorpe
2013-06-07 21:15 ` Arnd Bergmann [this message]
2013-06-07 21:15 ` Arnd Bergmann
2013-06-08 0:26 ` Jason Gunthorpe
2013-06-08 0:26 ` Jason Gunthorpe
2013-06-08 17:29 ` Ezequiel Garcia
2013-06-08 17:29 ` Ezequiel Garcia
2013-06-07 16:47 ` [PATCH 04/14] bus: mvebu-mbus: Add static window allocation to the DT binding Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 19:01 ` Arnd Bergmann
2013-06-07 19:01 ` Arnd Bergmann
2013-06-07 20:00 ` Jason Gunthorpe
2013-06-07 20:00 ` Jason Gunthorpe
2013-06-07 21:07 ` Arnd Bergmann
2013-06-07 21:07 ` Arnd Bergmann
2013-06-08 18:38 ` Ezequiel Garcia
2013-06-08 18:38 ` Ezequiel Garcia
2013-06-09 1:45 ` Jason Gunthorpe
2013-06-09 1:45 ` Jason Gunthorpe
2013-06-09 14:39 ` Ezequiel Garcia
2013-06-09 14:39 ` Ezequiel Garcia
2013-06-11 13:57 ` Ezequiel Garcia
2013-06-11 13:57 ` Ezequiel Garcia
2013-06-11 15:26 ` Arnd Bergmann
2013-06-11 15:26 ` Arnd Bergmann
2013-06-11 21:50 ` Jason Gunthorpe
2013-06-11 21:50 ` Jason Gunthorpe
2013-06-11 22:22 ` Sebastian Hesselbarth
2013-06-11 22:22 ` Sebastian Hesselbarth
2013-06-11 23:02 ` Arnd Bergmann
2013-06-11 23:02 ` Arnd Bergmann
2013-06-11 23:08 ` Jason Gunthorpe
2013-06-11 23:08 ` Jason Gunthorpe
2013-06-12 7:37 ` Sebastian Hesselbarth
2013-06-12 7:37 ` Sebastian Hesselbarth
2013-06-11 22:34 ` Arnd Bergmann
2013-06-11 22:34 ` Arnd Bergmann
2013-06-11 22:58 ` Jason Gunthorpe
2013-06-11 22:58 ` Jason Gunthorpe
2013-06-11 23:10 ` Arnd Bergmann
2013-06-11 23:10 ` Arnd Bergmann
2013-06-12 11:14 ` Grant Likely
2013-06-12 11:14 ` Grant Likely
2013-06-12 20:45 ` Arnd Bergmann
2013-06-12 20:45 ` Arnd Bergmann
2013-06-12 21:12 ` Ezequiel Garcia
2013-06-12 21:12 ` Ezequiel Garcia
2013-06-12 21:26 ` Jason Gunthorpe
2013-06-12 21:26 ` Jason Gunthorpe
2013-06-12 21:36 ` Ezequiel Garcia
2013-06-12 21:36 ` Ezequiel Garcia
2013-06-12 21:52 ` Arnd Bergmann
2013-06-12 21:52 ` Arnd Bergmann
2013-06-12 22:02 ` Jason Gunthorpe
2013-06-12 22:02 ` Jason Gunthorpe
2013-06-12 22:20 ` Arnd Bergmann
2013-06-12 22:20 ` Arnd Bergmann
2013-06-12 22:24 ` Arnd Bergmann
2013-06-12 22:24 ` Arnd Bergmann
2013-06-15 16:03 ` Grant Likely
2013-06-15 16:03 ` Grant Likely
2013-06-12 20:02 ` Ezequiel Garcia
2013-06-12 20:02 ` Ezequiel Garcia
2013-06-12 20:12 ` Jason Gunthorpe
2013-06-12 20:12 ` Jason Gunthorpe
2013-06-12 21:50 ` Arnd Bergmann
2013-06-12 21:50 ` Arnd Bergmann
2013-06-12 11:07 ` Grant Likely
2013-06-12 11:07 ` Grant Likely
2013-06-12 11:43 ` Arnd Bergmann
2013-06-12 11:43 ` Arnd Bergmann
2013-06-12 11:54 ` Grant Likely
2013-06-12 11:54 ` Grant Likely
2013-06-12 11:58 ` Arnd Bergmann
2013-06-12 11:58 ` Arnd Bergmann
2013-06-12 10:52 ` Grant Likely
2013-06-12 10:52 ` Grant Likely
2013-06-09 13:42 ` Arnd Bergmann
2013-06-09 13:42 ` Arnd Bergmann
2013-06-09 14:34 ` Ezequiel Garcia
2013-06-09 14:34 ` Ezequiel Garcia
2013-06-09 15:37 ` Arnd Bergmann
2013-06-09 15:37 ` Arnd Bergmann
2013-06-12 10:48 ` Grant Likely
2013-06-12 10:48 ` Grant Likely
2013-06-11 13:31 ` Ezequiel Garcia
2013-06-11 13:31 ` Ezequiel Garcia
2013-06-11 15:02 ` Arnd Bergmann
2013-06-11 15:02 ` Arnd Bergmann
2013-06-07 16:47 ` [PATCH 05/14] bus: mvebu-mbus: Update the mbus-compatible node's ranges property Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-12 10:25 ` Grant Likely
2013-06-12 10:25 ` Grant Likely
2013-06-07 16:47 ` [PATCH 06/14] ARM: mvebu: Initialize MBus using the DT binding Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:47 ` [PATCH 07/14] ARM: mvebu: Remove the harcoded BootROM window allocation Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:47 ` [PATCH 08/14] memory: mvebu-devbus: Remove address decoding window workaround Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:47 ` [PATCH 09/14] ARM: mvebu: Add MBus to Armada 370/XP device tree Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:47 ` [PATCH 10/14] ARM: mvebu: Add BootROM " Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:47 ` [PATCH 11/14] ARM: mvebu: Relocate Armada 370/XP DeviceBus device tree nodes Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 19:18 ` Arnd Bergmann
2013-06-07 19:18 ` Arnd Bergmann
2013-06-07 16:47 ` [PATCH 12/14] ARM: mvebu: Remove device tree unused properties on A370 Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:56 ` Thomas Petazzoni
2013-06-07 16:56 ` Thomas Petazzoni
2013-06-08 14:18 ` Jason Cooper
2013-06-08 14:18 ` Jason Cooper
2013-06-07 16:47 ` [PATCH 13/14] ARM: mvebu: Relocate Armada 370 PCIe device tree nodes Ezequiel Garcia
2013-06-07 16:47 ` Ezequiel Garcia
2013-06-07 16:47 ` [PATCH 14/14] ARM: mvebu: Relocate Armada XP " Ezequiel Garcia
2013-06-07 16:47 ` 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=201306072315.50390.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.