[U-Boot] [PATCH 5/10] common/env: Point default environment for GD
Scott Wood
scottwood at freescale.com
Wed Apr 9 01:00:04 CEST 2014
On Mon, 2014-04-07 at 12:10 +0530, Prabhakar Kushwaha wrote:
> On 4/5/2014 5:21 AM, Scott Wood wrote:
> > That doesn't really answer my question of how it gets initialized for
> > NOR flash. What line in what file does the initialization? It looks
> > like the answer is env_init() -- so it doesn't "always" hold the
> > address. Why can't env_init() do this on NAND, SPI, etc, provided you
> > actually have the environment available before relocation[1]?
> >
> > I'm also not sure what it has to do with SPL as opposed to non-XIP.
> > Doesn't this also apply for non-SPL PBL boot, etc? Why wouldn't you do
> > this in env_relocate_spec()?
> >
> > BTW, I notice a few Freescale boards initialize this in their spl.c
> > file.
> >
> > Also, you don't mention what the actual bug is you see. What uses
> > gd->env_addr after relocation, other than api/? I'm not saying that
> > api/ isn't important, but I'm wondering if you saw an effect elsewhere.
> >
> > -Scott
> >
> > [1] I realize that in many cases we don't, but that's something we need
> > to fix, since it's important to how DDR gets set up among other things.
> >
>
> I analyzed further with P5020_NAND boot. i found following observation:
> 1. env_init happens in board_init_f
> 2. DDR always initialized with default_environment
> 3. env_relocate happens in board_init_r
>
> Looks like, during non-XIP & non - SPL boot, ddr can only be initialized
> with fixed settings.
> is it a accepted behavior? if Yes, DDR init parameters cannot be changed
> like ECC on/off.
It is the current behavior on many boards, but it needs to be fixed (as
I noted above).
-Scott
More information about the U-Boot
mailing list