[U-Boot] [PATCH] config: peach: Correct memory layout environment settings

Sjoerd Simons sjoerd.simons at collabora.co.uk
Wed Mar 25 09:32:45 CET 2015


On Wed, 2015-03-25 at 01:11 -0400, Tom Rini wrote:
> On Mon, Mar 23, 2015 at 03:04:48PM -0600, Simon Glass wrote:
> > Hi Sjoerd,
> > 
> > On 12 March 2015 at 15:33, Sjoerd Simons <sjoerd.simons at collabora.co.uk> wrote:
> > > The peach boards have their SDRAM start address at 0x20000000 instead of
> > > 0x40000000 which seems common for all other exynos5 based boards. This
> > > means the layout set in exynos5-common.h causes the kernel be loaded
> > > more then 128MB (at 0x42000000) away from memory start which breaks
> > > booting kernels with CONFIG_AUTO_ZRELADDR
> > >
> > > Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses
> > > the same offsets from start of memory as the common exynos5 settings.
> > >
> > > This fixes booting via bootz and PXE
> > >
> > > Signed-off-by: Sjoerd Simons <sjoerd.simons at collabora.co.uk>
> > > ---
> > >  include/configs/peach-pi.h  | 8 ++++++++
> > >  include/configs/peach-pit.h | 8 ++++++++
> > >  2 files changed, 16 insertions(+)
> > >
> > > diff --git a/include/configs/peach-pi.h b/include/configs/peach-pi.h
> > > index f04f061..e3cb09e 100644
> > > --- a/include/configs/peach-pi.h
> > > +++ b/include/configs/peach-pi.h
> > > @@ -16,6 +16,14 @@
> > >  #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
> > >  #define CONFIG_SPI_BOOTING
> > >
> > > +#define MEM_LAYOUT_ENV_SETTINGS \
> > > +       "bootm_size=0x10000000\0" \
> > > +       "kernel_addr_r=0x22000000\0" \
> > > +       "fdt_addr_r=0x23000000\0" \
> > > +       "ramdisk_addr_r=0x23300000\0" \
> > > +       "scriptaddr=0x30000000\0" \
> > > +       "pxefile_addr_r=0x31000000\0"
> > > +
> > >  #include <configs/exynos5420-common.h>
> > >  #include <configs/exynos5-dt-common.h>
> > >
> > > diff --git a/include/configs/peach-pit.h b/include/configs/peach-pit.h
> > > index b5efbdc..3ee42ef 100644
> > > --- a/include/configs/peach-pit.h
> > > +++ b/include/configs/peach-pit.h
> > > @@ -16,6 +16,14 @@
> > >  #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
> > >  #define CONFIG_SPI_BOOTING
> > >
> > > +#define MEM_LAYOUT_ENV_SETTINGS \
> > > +       "bootm_size=0x10000000\0" \
> > > +       "kernel_addr_r=0x22000000\0" \
> > > +       "fdt_addr_r=0x23000000\0" \
> > > +       "ramdisk_addr_r=0x23300000\0" \
> > > +       "scriptaddr=0x30000000\0" \
> > > +       "pxefile_addr_r=0x31000000\0"
> > > +
> > >  #include <configs/exynos5420-common.h>
> > >  #include <configs/exynos5-dt-common.h>
> > 
> > It would be great if we could have this in the device tree.
> 
> I understand what you're thinking but this is environment.  And really
> this is not board specific, this is SoC family specific which is why the
> similar part for TI stuff is in ti_armv7_common.h :)

Exynos 5 has the same in exynos5-common.h, however for whatever reason
the peach pi/pit boards are different then other exynos board supported
by u-boot thusfar. So in this case, this information _is_ board specific
not platform specific.

But even in case of including it in device tree, a default/common
setting could go into the platforms dtsi with board-specific overrides
as needed.

One thing i have wondered though, looking at the various boards
specifying the various memory layour addresses. They all end up being
relatively similar offset to the base memory address, which makes me
think it may be possible to calculate these values in the initialisation
code rather then having to hardcode it in the environment. However, even
if that's a sensible thing, something for later :)

-- 
Sjoerd Simons <sjoerd.simons at collabora.co.uk>
Collabora Ltd.


More information about the U-Boot mailing list