memcpy strange behaviour

Antony Pavlov antonynpavlov at gmail.com
Wed Nov 4 00:04:33 PST 2015


Hi!

Peter has reported on strange barebox memcpy command behaviour on his MIPS board:

  he copies a file to memory using memcpy and then copyies appropriate memory contents
  back to another file. Next he checks files md5sum and the sums are differ.

I have reproduced the problem on Qemu VersatilePB ARM board.

Here is an instruction.

Configure barebox:

$ cd barebox.git
$ export ARCH=arm
$ export CROSS_COMPILE=<your cross compiler prefix>
$ make versatilepb_defconfig
$ sed -i "s/^# CONFIG_CMD_MD5SUM.*$/CONFIG_CMD_MD5SUM=y/" .config

Prepare testfile on host and compile:

$ dd if=/dev/zero bs=1 count=4414 | tr "\000" "\377" > defaultenv/defaultenv-2-base/testfile
$ make
...

Run barebox under qemu:

$ qemu-system-arm -M versatilepb -nographic -monitor null -kernel arch/arm/pbl/zbarebox -serial stdio
...
barebox# memcpy -s /env/testfile 0 0x01000000

barebox# memcpy -d _testfile 0x01000000 0 4414

barebox# md5sum /env/testfile _testfile
bf8278051ba8de868def083bcc209002  /env/testfile 0x00000000 ... 0xffffffffffffffff
e295c2bfe32498e03531017443120e89  _testfile     0x00000000 ... 0xffffffffffffffff

barebox# memcmp -s /env/testfile -d _testfile 0 0
files differ at offset 4408

barebox# md -s /env/testfile 4400
00001130: ffffffff ffffffff ffffffff ffffffff                ..............

barebox# md -s _testfile 4400
00001130: ffffffff ffffffff 00000000 ffff0000                ..............

barebox# md -b 0x01001130+0xe
01001130: ff ff ff ff ff ff ff ff 00 00 00 00 00 00          ..............

barebox# md -b -s /env/testfile 0x1130+0xe
00001130: ff ff ff ff ff ff ff ff ff ff ff ff ff ff          ..............

So you see that last 6 bytes have not been copied.

Please comment this report!

-- 
Best regards,
  Antony Pavlov



More information about the barebox mailing list