Just an update to this. We don't understand why or how, but performing a md.l f0000000 20 (ie: a CS0 range access) while in u-boot and then subsequently doing the same setup (no changes) causes the accesses to work (ie: system no longer hangs):
root@freescale ~$ /unit_tests/memtool -32 f0000000 20
Reading 0x20 count starting at address 0xF0000000
0xF0000000: 0001FFFF 00030002 00050004 EEABEEAA
0xF0000010: 00090008 EEAFEEAE 000D000C EEABEEAA
0xF0000020: 00110010 00130012 00150014 EEABEEAA
0xF0000030: 00190018 001B001A 001D001C EEABEEAA
Does anyone have a possible explanation for this? My guess is that doing the md.l access in u-boot has some side effect on the cache/TLB that makes this work? Relevant register settings below.
root@freescale ~$ /unit_tests/memtool -32 53fd4000 20
Reading 0x20 count starting at address 0x53FD4000
0x53FD4000: 000012FF 00000000 00000034 00000000
0x53FD4010: 00000000 0A080980 00010006 F321F133
0x53FD4020: 00000000 00410000 00400040 00400040
0x53FD4030: 00000000 00000000 02080000 00000000
0x53FD4040: 00000000 00000000 00000000 00000000
0x53FD4050: 00000000 03000021 00000000 FFFFFFFF
0x53FD4060: 000A00F0 00000000 150300C1 000003C0
0x53FD4070: 0C303400 00000000 00000C00 000D3000
root@freescale ~$ /unit_tests/memtool -32 63fda000 26
Reading 0x26 count starting at address 0x63FDA000
0x63FDA000: 00610089 00001002 1C022000 00000000
0x63FDA010: 1C092480 00000000 00010080 00001000
0x63FDA020: 00000000 00000000 00000000 00000000
0x63FDA030: 00010080 00001000 00000000 00000000
0x63FDA040: 00000000 00000000 00010080 00001000
0x63FDA050: 00000000 00000000 00000000 00000000
0x63FDA060: 00010080 00001000 00000000 00000000
0x63FDA070: 00000000 00000000 00010080 00001000
0x63FDA080: 00000000 00000000 00000000 00000000
0x63FDA090: 00000020 00000010
root@freescale ~$ /unit_tests/memtool -32 53fa8000 20
Reading 0x20 count starting at address 0x53FA8000
0x53FA8000: 00000000 00190005 00000000 00000000
0x53FA8010: 00000000 00000016 00000000 00000000
0x53FA8020: 00000001 00000001 00000001 00000001
0x53FA8030: 00000001 00000001 00000001 00000001
0x53FA8040: 00000010 00000010 00000010 00000010
0x53FA8050: 00000001 00000001 00000001 00000001
0x53FA8060: 00000001 00000001 00000001 00000000
0x53FA8070: 00000000 00000000 00000000 00000001
root@freescale ~$ /unit_tests/memtool -32 f0000000 20
Reading 0x20 count starting at address 0xF0000000
0xF0000000: EEBBEEBA 00030002 00050004 00070006
0xF0000010: EEBBEEBA 000B000A 000D000C 000F000E
0xF0000020: EEBBEEBA 00130012 00150014 00170016
0xF0000030: EEBBEEBA 001B001A 001D001C 001F001E
0xF0000040: EEBBEEBA 00230022 00250024 00270026
0xF0000050: EEBBEEBA 002B002A 002D002C 002F002E
0xF0000060: EEBBEEBA 00330032 00250024 00370036
0xF0000070: EEBBEEBA 003B003A 003D003C 003F003E