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