Weird 5200/mtd-ram problem
Wolfgang Denk
wd at denx.de
Tue May 26 04:11:39 EST 2009
Dear Albrecht =?iso-8859-1?b?RHJl3w==?=,
In message <1243273283.3328.0 at antares> you wrote:
>
> Thanks for youre help, and sorry for the late reply - I've been on
> vacation...
Hally you...
> For the mtd driver, I tracked down the problem via mapram_write() (in
> drivers/mtd/chips/map_ram.c) down to the call of map_copy_to() which is
> actually inline_map_copy_to(), which in turn calls memcpy_toio(). I
> *think* this is _memcpy_toio() in arch/powerpc/kernel/io.c, which
> copies all data in long (4-byte) moves, except for the last 4 bytes. I
> guess I have to write my own copy function which respects the fact that
> byte writes actually must be a read word - modify - write word
> sequence, right?
I remember some nasty problems with memcpy*(), especially with un-
aligned accesses over the LocalPlus Bus. I'm not sure if fixes ever
made it into 2.6; the only commit that might be related is 6989f5122f
"fec: do not use memcpy on physical addresses", but this doesn't got
into details about the casue.
Please see here for an old (2.4.25) patch for this problem - maybe
it's worth a try on your system:
http://git.denx.de/?p=linuxppc_2_4_devel.git;a=commit;h=222bd702a59efb22bf66937f6ac844ed7327fd1a
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If you're not part of the solution, you're part of the problem.
More information about the Linuxppc-dev
mailing list