[U-Boot] [PATCH] Honor /memory/reg node in DTB files

Peter Tyser
2010-12-08T23:33:59Z

On Wed, 2010-12-08 at 23:34 +0100, Wolfgang Denk wrote:
> Dear Dan,
>
> In message <0DDCBDA1-188F-433D-BDCC-5FDCF709A131@digitaldans.com> you wrote:
> >
> > > If you want to make this switchable at runtime, then we should
> > > probably use an environment setting.
> >
> > I experimented with this, but could never determine the
> > best way to cover all behavior. Do we have a variable that
> > indicates "don't update DT?" If so, it means we have to
> > place all values in the DT, when it's really nice for U-Boot
> > to do some of that for us. In fact, we want U-Boot to update
> > many things it discovers, just not the few we wish to actually
> > (sometimes) define for ourselves.
>
> "You can please all the people some of the time and some of the people
> all of the time but you can't please all the people all of the time."
>
> > The other alternative (granted, I'm not as smart as I used
> > to be :-)) was to have an environment variable that specified
> > which node we didn't want updated by U-Boot. For now,
> > that seems reasonable since there is only one, but is that
> > the general approach we want in the future? It also presents
> > the challenge of having to update both environment and
> > the provided DT.
>
> I guess we can argue that the normal situation is that U-Boot will
> know how to update the DT such as needed to boot the OS. So what we
> are dealing with is a small percentage of cases where we need special
> behaviour, and where it may be acceptable if the solution is only
> semi-perfect ;-)
>
> My current thinking is to introduce something like
>
> dt_skip=memory,mac-address

I haven't followed the this thread too closely, but I was curious if you
could do manual tweaks by using the 'bootm' and 'fdt' sub-commands.
This could allow more fine grained control of the boot process and let
you manually modify the DTB before booting to Linux. Eg make the
'bootcmd' environment variable be something like:
bootm start $loadaddr; \
bootm loados; \
bootm ramdisk; \
bootm fdt; \
fdt boardsetup; \
fdt set memory reg "<0 10000000>"; \
bootm prep; \
bootm go

Some dual core Freescale board's do somewhat similar operations for AMP
operation (see doc/README.p2020rdb), although I haven't personally tried
AMP.

Best,
Peter