[U-Boot] [PATCH 4/4 V3] PXA: Adapt Voipac PXA270 to OneNAND SPL

Marek Vasut marek.vasut at gmail.com
Fri Nov 4 01:55:22 CET 2011


> On 11/03/2011 04:52 PM, Marek Vasut wrote:
> >> On 11/02/2011 08:56 PM, Marek Vasut wrote:
> >>> +	onenand_spl_load_image(CONFIG_SPL_ONENAND_LOAD_ADDR,
> >>> +				CONFIG_SPL_ONENAND_LOAD_SIZE,
> >>> +				(void *)CONFIG_SYS_TEXT_BASE);
> >> 
> >> If we make it "nand_spl_load_image", and make the #defines conform, we
> >> can have the same code call the function for nand and onenand.  I don't
> >> see any reason why onenand is a completely different subsystem in
> >> general, rather than just another NAND driver.  The NAND subsystem's
> >> driver interface is lower level than it should be, but that affects
> >> other NAND controllers as well (such as fsl_elbc).
> >> 
> >> Switching to the generic nand_boot() in
> >> http://patchwork.ozlabs.org/patch/123219/ would get you the ability to
> >> load the environment during the SPL.
> >> 
> >> -Scott
> > 
> > I don't think I understand. Why do you want to mix onenand and nand ?
> 
> Why do we want to separate them?  What is the fundamental difference
> between OneNAND, and a high-level NAND controller such as fsl_elbc?

Honestly, I'm not the author of the subsystem, but please check the 
documentation. The way we retrieve data from onenand is different to NAND.

> Maybe there would be some differences on init if we can't produce
> "normal" ID data, but that doesn't justify duplicating the whole subsystem.

Where do you see such duplication? cmd_onenand ?
> 
> Why should the code that just wants to use an API to move data around
> need to care which it is?  Why should there be behavioral differences
> that aren't rooted in the actual hardware?  Another approach might be to
> use MTD as the common interface, but factor out common code into
> libraries that drivers can use, and avoid the main nand_base.c code even
> for things like fsl_elbc.

I think you're mistaken here. OneNAND != NAND.
> 
> This is not a new complaint -- I've asked for this before but nobody's
> put the time into sorting out the mess (and I have neither time nor
> hardware nor documentation).  The SPL load_image function is a simple
> enough interface to start with, though. :-)

Well, it seems what you are proposing is way beyond the scope of this patchset.
> 
> In fact, it should probably just be spl_load_image() with whatever boot
> source has been configured into this SPL build.

What if you have two boot sources?

> 
> > Also, will your approach still allow me to squeeze the important code
> > into the first 1kb for the initial copying of SPL?
> 
> If you can't fit the common load sequence in, then of course don't use
> it, but there's no need for the function name to be different.
> 
> -Scott


More information about the U-Boot mailing list