[PATCH 04/10] bus: introduce an Marvell EBU MBus driver
Jason Gunthorpe
jgunthorpe at obsidianresearch.com
Fri Mar 8 12:29:50 EST 2013
On Fri, Mar 08, 2013 at 09:10:52AM +0100, Thomas Petazzoni wrote:
> Dear Jason Gunthorpe,
>
> On Thu, 7 Mar 2013 16:05:16 -0700, Jason Gunthorpe wrote:
>
> > So what is the point of that? Get rid of your driver, have the mbus
> > driver set up its own windows and put cfi-flash directly under
> > mbus. Smaller, simpler, clearer, better.
>
> No, we will still need the Device Bus driver to set up the timings.
I looked through Ezequiel's patch and saw a driver that provided those
properties and no user of them at all. Are the patches incomplete? Is
there some plan to use these values in the future?
> That's _your_ choice, and it's entirely inconsistent with most kernel
> practices. For example, we have the pinctrl subsystem, which
> precisely
Again, Ezequiel's patches do exactly the same thing.
pinctrl is a bit different, it depends on the PCB design which is
fixed. NAND/NOR timings depend on the flash chip in use, which can
vary from manufacturing run to manufacturing run.
> Sorry, but we _do_ want the kernel to be able to set those timings
> parameters, and therefore, a Device Bus driver will be needed,
> regardless of whether it creates the address window or not.
See the very good idea from Maxime Bizon about autoprobing the ONFI
timings directly from the NAND chip.
> > > In conclusion: there is absolutely no need to change the NOR driver,
> > > and there is no need to explictly add an explicit description of the
> > > NOR window in the device tree.
> >
> > As I've said, a DT that has child nodes without an associated address
> > map is broken.
>
> That's a statement without any arguments. How can we have a serious
> technical discussion if what you bring is just "this is broken", with no
> arguments?
I've brought many things up and you have ignored them all. Here is a
list of a few:
- You can't actually do optmial dynamic allocation a device at a
time, that will make holes in the address space due to the alignment
constraints.
- Having an invalid address map in DT breaks the naming of platform
devices and breaks the collision avoidance mechanism in the OF core
- Breaking the address map means any downstream driver that tries to
use standard OF addressing functions on its of node gets broken.
- Breaking the address map means the standard OF platform device
creation functions don't work because they can't create the
resource ranges from OF. This means things like standard Linux
resource accounting is broken.
- Adding bus specific boiler plate to drivers is not the Linux
convention, the bus abstraction is ment to do that.
Arnd also mentioned:
- Breaking the address map in DT breaks OS's without a mbus driver
What more do you want to hear?
Jason
More information about the linux-arm-kernel
mailing list