[U-Boot] [PATCH] sheevaplug: correct SDRAM address control register value
Mark Asselstine
mark.asselstine at windriver.com
Mon Oct 19 02:26:18 CEST 2009
On Sunday 18 October 2009 16:11:11 Tom wrote:
> Mark Asselstine wrote:
> > The SheevaPlug DevKit is shipped with 4x8 by 1Gb DDR devices in
> > two banks for a total of 512MB of RAM. Based on this configuration
> > the existing values for SDRAM address control register are incorrect
> > and result in random kernel oops as memory is incorrectly accessed
> > (while for example extracting a large tarball such as a rootfs).
> > Based on the hardware configuration along with the supporting
> > documentation from Marvell these are the correct values, as
> > well this change mimics values previously used in Marvell's own
> > u-boot git tree for the SheevaPlug.
> >
> > Other variants of the hardware such as the PogoPlug and TonidoPlug
> > may have different memory configurations but to properly support
> > those additional board directories should be maintained or a better
> > system to support other kwb*.cfg is needed.
> >
> > Tested on SheevaPlug DevKit.
>
> Mark and Prafulla
> If this configuration is different from the what is already in use,
> then the kwbimage.cfg can not be overwritten.
>
> Reviewing the kwbimage.cfg file shows a lot of magic.
> What would be a good way to generalize this ?
>
Let me start with a quick disclaimer that I haven't spent the necessary
prerequisite time with the kwb image concept yet to be anything more then a
casual observer at this point.
Moving to a more typical header file format would be useful to remove the
feeling of "magic", ie. similar to kernel register #defines with BASE and
OFFSETs. Groupings of registers should be then captured in structures with a
layout that would allow for 'make sheevaplug_devkit_config' to use the
include/configs/*.h files to influence the values of particular registers, by
name.
If the format of the kwbimage.cfg file is fixed we want to consider generating
this file.
I will defer to Prafulla though as he might already have plans and what we see
today might only be on the path to the final vision of things.
> More versions of the file ?
This would be the easiest route but would not make any strides to making the
file less "magic".
> Variable support in the file?
Allowing the file to make use of #ifdef, #ifndef would allow for flexibility
but again this solves on the issue of supporting variations not in making the
file more reader friendly.
The $0.02 of a casual observer.
Mark.
> Other ideas ?
>
> Tom
>
> > Signed-off-by: Mark Asselstine <mark.asselstine at windriver.com>
> > ---
> > board/Marvell/sheevaplug/kwbimage.cfg | 10 +++++-----
> > 1 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/board/Marvell/sheevaplug/kwbimage.cfg
> > b/board/Marvell/sheevaplug/kwbimage.cfg index 6c47d62..61be8c2 100644
> > --- a/board/Marvell/sheevaplug/kwbimage.cfg
> > +++ b/board/Marvell/sheevaplug/kwbimage.cfg
> > @@ -74,11 +74,11 @@ DATA 0xFFD0140C 0x00000a33 # DDR Timing (High)
> > # bit12-11: TW2W
> > # bit31-13: zero required
> >
> > -DATA 0xFFD01410 0x00000099 # DDR Address Control
> > -# bit1-0: 01, Cs0width=x16
> > -# bit3-2: 10, Cs0size=512Mb
> > -# bit5-4: 01, Cs1width=x16
> > -# bit7-6: 10, Cs1size=512Mb
> > +DATA 0xFFD01410 0x000000cc # DDR Address Control
> > +# bit1-0: 00, Cs0width=reserved
> > +# bit3-2: 11, Cs0size=1Gb
> > +# bit5-4: 00, Cs1width=reserved
> > +# bit7-6: 11, Cs1size=1Gb
> > # bit9-8: 00, Cs2width=nonexistent
> > # bit11-10: 00, Cs2size =nonexistent
> > # bit13-12: 00, Cs3width=nonexistent
>
More information about the U-Boot
mailing list