From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/10] bus: introduce an Marvell EBU MBus driver
Date: Thu, 7 Mar 2013 03:37:43 +0000 [thread overview]
Message-ID: <201303070337.43288.arnd@arndb.de> (raw)
In-Reply-To: <20130306202447.GA4916@obsidianresearch.com>
On Wednesday 06 March 2013, Jason Gunthorpe wrote:
> On Wed, Mar 06, 2013 at 08:27:10PM +0100, Thomas Petazzoni wrote:
> Part of the point of all this DT stuff is to give HW designers some
> reasonable flexability in their HW design without requiring code
> changes to Linux to boot it. So if Marvell makes a new Armada varient
> that re-uses all the same pre existing IP, just with different mbus
> targets, they should be able to make Linux run on it simply by writing
> a SOC specific firmware and DT.
Agreed. Further, the device tree should accurately describe the mapping
of addresses, and we have a lot of infrastructure to do exactly that.
> > Also, I don't believe that windows should be described in the Device
> > Tree. My long term plan is rather to make the allocation of the base
> > address of each window entirely dynamic, because there is absolutely no
> > reason for those addresses to be fixed in stone in the Device Tree.
>
> How will that work? Device tree necessarily must have CPU addresses
> for the things it describes. Today we have the problem that those
> addresses must match the values hard coded into Linux, ie DT is
> describing what Linux expects, not what the HW provides..
Exactly.
> This idea that Linux should setup windows on its own has moved away
> from what OF was intended for, I'm not sure there is an overarching
> plan on how to handle those cases - but hardcoding addresses in Linux
> and then requiring the DT to match them exactly certainly seems wrong.
>
> As for dynamic allocation, they way to do it via DT is through the
> ranges property, similar to how I noted. The DT can be modified
> in-memory, so a dyanmic mbus driver would ignore the CPU target
> address in the ranges, select its own CPU address and then update the
> in-memory DT with the corrected value. Everything else would then work
> properly.
Yes. We can even use the index of the "ranges" property to refer directly
to the number of the window, so ranges replaces the kernel internal
struct mvebu_mbus_mapping.
I would also suggest not making the mbus compatible with "simple_bus", but
instead probing /only/ the mbus device at bootup, which can then set
up the hardware based on the ranges property and then call
of_platform_populate on its children.
> > > > + * Some variants of Orion5x have 4 remappable windows, some other have
> > > > + * only two of them.
> > > > + */
> > > > +static const struct mvebu_mbus_soc_data orion5x_4win_mbus_data = {
> > > > + .num_wins = 8,
> > > > + .num_remappable_wins = 4,
> > >
> > > These values also seem like something worth reading from the DT as
> > > well.. See above for an idea.
> >
> > No: there will anyway be different functions to be called depending on
> > the SoC family. So the driver will anyway have to have different
> > compatible strings for the different SoC families, because we can't
> > put
>
> Well I wrote the 'mbus_win_offset' function concept with DT lists:
>
> > windows = <0 1 2 3 4>;
> > remappable-windows = <7 8 9>;
> > internal-window = 5;
>
> And the two varients of the SDRAM function still have to exist, but
> would be best handled by separating the SDRAM description from the
> MBUS description in DT - they are orthogonal concepts.
*nod*
> > No, I also have a temporary disagreement: I think what you're asking is
> > way too far away from the current code. I've already been asked to
> > make
>
> I certainly agree with this. If it wasn't for the idea that the DT is
> a stable ABI and thus must be perfect from the start, I wouldn't have
> mentioned any of this right now, making fine tuning adjustments as a
> follow on seems better to me.
>
> It is absolutely way too much work to try and fix everything in one
> go! I would be happy to see your patch go in as-is, but mildly unhappy
> to see us stuck with this DT layout forever...
>
> Especially since I really want to see your PCI stuff go in ....
I basically agree with everything you write in this mail, Jason, and
I was about to make exactly the same comments myself.
Getting the binding right is certainly a priority here, but I also think
that we don't need to rush the code to use that binding (although having
the code work would make me more comfortable thinking that the binding
actually works).
Arnd
next prev parent reply other threads:[~2013-03-07 3:37 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-06 13:43 [PATCH 3.10] Introduce a Marvell EBU MBus driver Thomas Petazzoni
2013-03-06 13:43 ` [PATCH 01/10] arm: plat-orion: only build addr-map.c when needed Thomas Petazzoni
2013-03-06 13:43 ` [PATCH 02/10] arm: plat-orion: use mv_mbus_dram_info() in PCIe code Thomas Petazzoni
2013-03-06 13:43 ` [PATCH 03/10] arm: mach-orion5x: use mv_mbus_dram_info() in PCI code Thomas Petazzoni
2013-03-06 13:43 ` [PATCH 04/10] bus: introduce an Marvell EBU MBus driver Thomas Petazzoni
2013-03-06 19:08 ` Jason Gunthorpe
2013-03-06 19:27 ` Thomas Petazzoni
2013-03-06 20:24 ` Jason Gunthorpe
2013-03-06 20:40 ` Thomas Petazzoni
2013-03-06 21:50 ` Jason Gunthorpe
2013-03-06 22:27 ` Jason Cooper
2013-03-06 23:04 ` Jason Gunthorpe
2013-03-07 10:39 ` Thomas Petazzoni
2013-03-08 13:50 ` Arnd Bergmann
2013-03-08 14:06 ` Thomas Petazzoni
2013-03-08 15:41 ` Arnd Bergmann
2013-03-08 17:50 ` Jason Gunthorpe
2013-03-08 19:42 ` Arnd Bergmann
2013-03-08 20:05 ` Jason Gunthorpe
2013-03-08 22:46 ` Arnd Bergmann
2013-03-08 17:43 ` Jason Gunthorpe
2013-03-08 22:58 ` Arnd Bergmann
2013-03-07 22:20 ` Ezequiel Garcia
2013-03-07 23:05 ` Jason Gunthorpe
2013-03-08 1:02 ` Ezequiel Garcia
2013-03-08 8:10 ` Thomas Petazzoni
2013-03-08 17:29 ` Jason Gunthorpe
2013-03-08 17:59 ` Ezequiel Garcia
2013-03-08 18:31 ` Jason Gunthorpe
2013-03-08 18:53 ` Ezequiel Garcia
2013-03-18 16:27 ` Thomas Petazzoni
2013-03-18 17:18 ` Jason Gunthorpe
2013-03-08 15:59 ` Maxime Bizon
2013-03-08 16:48 ` Jason Gunthorpe
2013-03-08 17:12 ` Ezequiel Garcia
2013-03-08 8:14 ` Thomas Petazzoni
2013-03-08 18:26 ` Jason Gunthorpe
2013-03-07 3:50 ` Arnd Bergmann
2013-03-07 3:37 ` Arnd Bergmann [this message]
2013-03-07 6:35 ` Jason Gunthorpe
2013-03-08 16:48 ` Jason Cooper
2013-03-08 19:47 ` Jason Gunthorpe
2013-03-08 22:54 ` Arnd Bergmann
2013-03-07 10:58 ` Thomas Petazzoni
2013-03-07 17:37 ` Jason Gunthorpe
2013-03-07 19:11 ` Thomas Petazzoni
2013-03-07 19:55 ` Jason Gunthorpe
2013-03-07 20:28 ` Thomas Petazzoni
2013-03-07 20:47 ` Jason Gunthorpe
2013-03-06 13:43 ` [PATCH 05/10] arm: mach-mvebu: convert to use mvebu-mbus driver Thomas Petazzoni
2013-03-06 13:58 ` Thomas Petazzoni
2013-03-06 13:43 ` [PATCH 06/10] arm: mach-kirkwood: " Thomas Petazzoni
2013-03-06 19:09 ` Jason Gunthorpe
2013-03-06 19:31 ` Thomas Petazzoni
2013-03-06 13:43 ` [PATCH 07/10] arm: mach-dove: " Thomas Petazzoni
2013-03-06 13:43 ` [PATCH 08/10] arm: mach-orion5x: " Thomas Petazzoni
2013-03-06 13:43 ` [PATCH 09/10] arm: mach-mv78xx0: convert to use the " Thomas Petazzoni
2013-03-06 13:43 ` [PATCH 10/10] arm: plat-orion: remove addr-map code Thomas Petazzoni
-- strict thread matches above, loose matches on Subject: below --
2013-03-06 16:59 [PATCH v2 for 3.10] Introduce a Marvell EBU MBus driver Thomas Petazzoni
2013-03-06 16:59 ` [PATCH 04/10] bus: introduce an " Thomas Petazzoni
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=201303070337.43288.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.