[U-Boot] [PATCH] arm: lib: memcpy: Do not copy to same address

Matthias Weißer
2011-05-23T09:46:36Z

Am 23.05.2011 11:30, schrieb Alexander Holler:
> Am 23.05.2011 11:06, schrieb Matthias Weisser:
>> In some cases (e.g. bootm with a elf payload which is already at the right
>> position) there is a in place copy of data to the same address. Catching this
>> saves some ms while booting.
>>
>> Signed-off-by: Matthias Weisser<weisserm@arcor.de>
>> ---
>> arch/arm/lib/memcpy.S | 3 +++
>> 1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/lib/memcpy.S b/arch/arm/lib/memcpy.S
>> index 3b5aeec..f655256 100644
>> --- a/arch/arm/lib/memcpy.S
>> +++ b/arch/arm/lib/memcpy.S
>> @@ -60,6 +60,9 @@
>> .globl memcpy
>> memcpy:
>>
>> + cmp r0, r1
>> + moveq pc, lr
>> +
>> enter r4, lr
>>
>> subs r2, r2, #4
>
> The standard clearly say to both memory regions should not overlap when
> memcpy() is used, so I would say this is the wrong place to fix that.

Well, real world applications do this. And these two instructions
shouldn't hurt a lot.

I first send a patch fixing only "my" problem in cmd_elf.c but Wolfgang
suggested to do this globally. Please see
http://www.mail-archive.com/u-boot at lists.denx.de/msg50612.html as reference.

Matthias