i am practicing reading files to memory ('f' command of the debug shell uses the same procedure that loads diskboot.bin ) and I see some weird behaviour. The addresses 0x8000 became a copy of 0x40008000 only once or until something is being written to them.
it looks like an MMU copy-on-write behavior for me. I think I need to read something about ARM systems memory mapping. I know nothing about it at the moment.
just in case, I have tried to flush the cpu cache with accessing many addresses via "v 8000 8000 9999999" command, but it does not help. looks like it is not a case of a CPU cache.
>> d 40008000 20
40008000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
40008010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>> f 40008000 BOOTBOOT.BIN
>> d 40008000 20
40008000: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
40008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
>> d 8000 20
00008000: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
00008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
>> o 8000 1111
00008000 <- 1111
>> d 8000 20
00008000: 11 11 00 00 58 58 58 58 58 58 58 58 58 58 58 58 ....XXXXXXXXXXXX
00008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
>> d 40008000 20
40008000: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
40008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
>>
>> f 40008000 BOOTBOOT.BIN
>> d 40008000 20
40008000: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
40008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
>> d 8000 20
00008000: 11 11 00 00 58 58 58 58 58 58 58 58 58 58 58 58 ....XXXXXXXXXXXX
00008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
>> o 40008000 2222
40008000 <- 2222
>> d 40008000 20
40008000: 22 22 00 00 58 58 58 58 58 58 58 58 58 58 58 58 ""..XXXXXXXXXXXX
40008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
>> d 8000 20
00008000: 11 11 00 00 58 58 58 58 58 58 58 58 58 58 58 58 ....XXXXXXXXXXXX
00008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
>>
>> v 8000 8000 9999999
>> d 8000 20
00008000: 11 11 00 00 58 58 58 58 58 58 58 58 58 58 58 58 ....XXXXXXXXXXXX
00008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX
>> d 40008000 20
40008000: 22 22 00 00 58 58 58 58 58 58 58 58 58 58 58 58 ""..XXXXXXXXXXXX
40008010: 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 XXXXXXXXXXXXXXXX