[U-Boot] [PATCH 03/11] DM: add block controller core

Pavel Herrmann morpheus.ibis at gmail.com
Fri Sep 21 19:22:27 CEST 2012


On Friday 21 of September 2012 18:08:13 Marek Vasut wrote:
> Dear Pavel Herrmann,
> 
> > On Friday 21 of September 2012 17:39:21 Marek Vasut wrote:
> > > Dear Pavel Herrmann,
> > > 
> > > [...]
> > > 
> > > > > Can't the old driver just have a compat section in them? Like I did
> > > > > with serial stuff:
> > > > > 
> > > > > 1) rename the internal functions to ${driver}_${function_name} from
> > > > > pure ${function_name} and introduce section which behaves as a
> > > > > wrapper (implement ${function_name} calling
> > > > > ${driver}_${function_name} ). 2) Add your DM goo, implement #ifdef
> > > > > around it so either the compat section or DM section is enabled.
> > > > 
> > > > I actually did something of this sort, see [4/11], with less touching.
> > > > 
> > > > the problem is that while SATA drivers are easy to convert, IDE ones
> > > > are not. I would actually propose to do a ide_legacy driver (mostly
> > > > out of the code currently in common/cmd_ide.c), and keep it as the
> > > > only option until IDE dies completely.
> > > 
> > > IDE will be around for a LONG time.
> > > 
> > > You introduce that CONFIG_SYS_SATA_LEGACY for no reason, if you did it
> > > as
> > > said above, simple CONFIG_DM would suffice as the drivers would be
> > > intacts with DM disabled. Note the compiler will opt-out these proxy
> > > calls.
> > > 
> > > Besides, with this approach of yours, you need to enable SATA_LEGACY for
> > > every single board now, introducing a lot of churn into the patches and
> > > if it's not defined, every board using SATA is broken, right?
> > 
> > No, if you dont define CONFIG_DM, you get the old way of interacting with
> > disks. only if you define CONFIG_DM you only need CONFIG_SATA_LEGACY to
> > plug old SATA drivers into DM codepaths
> 
> So if you enable DM for a board, you also need to enable this compat layer?
> My opinion is, that you either enable DM on the board and the board is
> ready for it or don't enable it.

if you enable DM on a board, you can either use the compat layer and the old 
driver, or use a ported driver and get rid of the compat layer

> Would you need the compat layer at all were you to follow my advice?

if i understand what you meant, i would build this compat layer into every one 
of the drivers currently in tree (with some cleanup). in that case, i would 
not need it

> The whole idea goes deeper, see if you prepended this patchset with such a
> conversion as above, you'd already have a readily defined structure of
> blockdev operations in each driver to use in this patchset. This patchset
> would then really only be the DM stuff. The DM-part addition to the drivers
> would be mechanical.
> 
> > > > > How does that work? It's much cleaner.
> > > > > 
> > > > > > Pavel Herrmann
> > > > > 
> > > > > Best regards,
> > > > > Marek Vasut
> > > 
> > > Best regards,
> > > Marek Vasut
> 
> Best regards,
> Marek Vasut


More information about the U-Boot mailing list