[U-Boot-Users] PATCH for cmd_mem.c:do_mem_mtest()
Andrew Dyer
amdyer at gmail.com
Tue Sep 13 18:55:04 CEST 2005
On 9/13/05, Wolfgang Denk <wd at denx.de> wrote:
> > ChangeLog:
> > * Patch by Andrew Dyer, 13 September 2005:
> > if CFG_ALT_MEMTEST is defined without
> > CFG_MEMTEST_SCRATCH, cmd_mem.c
> > code will dereference a null pointer. Change
>
> No, it does not. It just points to address 0x0000. This is a
> perfectly valid address on many systems.
Not on MIPS (unless someone was daft enough to map it
with the TLB). The code causes a TLB store miss exception.
Since this is in 'common' code, I think it's a bug.
> > the code to use the last word of the memory test
> > area as the scratch location in this case. Print
> > the scratch memory location used.
>
> Which problem is this patch supposed to fix in the first place? The
> existing code compiles and works fine on many, many systems.
There are two problems -
1) writing to address 0 is bad on MIPS and causes a crash.
2) I have a system with two banks of DRAM, 1 attached to the CPU
directly and 1 hooked through an FPGA to do video stuff. Both
are entirely accessable through the CPU, but via different external
busses. I would like to be able to test either one with the same
basic command.
With a static define of the scratch address I can't test one of the
memories correctly becuase the scratch address is pointing to the
other memory, so the scratch writes don't serve their purpose.
My solution was to just allocate a location in the test range as
scratch if the static define isn't present. This guarantees the
scratch address used is valid and in the bank of ram required.
--
Hardware, n.:
The parts of a computer system that can be kicked.
More information about the U-Boot
mailing list