This *Command displays the values in memory, grouped into 4-byte words unless specified otherwise.
*Memory [P] [B|H|D] addr_|_reg1
*Memory [P] [B|H|D] addr_|_reg1 [+|-]addr2_|_reg2
*Memory [P] [B|H|D] addr_|_reg1 +|-addr2_|_reg2 +addr3_|_reg3
|P||Specifies a physical rather than logical address (optional)|
|B|H|D||Display bytes, halfwords or double words (optional)|
|addr1_|_reg1||Address or register containing start of display (hexadecimal)|
|addr2_|_reg2||Address or register containing offset (hexadecimal)|
|addr3_|_reg3||Address or register containing offset (hexadecimal)|
If only the start address is specified, then 256 bytes will be returned starting from this address.
If two addresses are specified, then they specify the start and end addresses (unless specifying an offset by use of + or – symbols).
If three addresses are specified, then the second address is an offset from the start address, and the third address specifies the end address.
By default, the output is grouped into 4-byte words. This grouping can be changed by using the B, H or D flags (see above). Currently, halfword and doubleword access is only possible on CPUs that support the required instructions (LDRH, LDRD).
On kernels that support OS_Memory 14 and OS_Memory 15, the P flag causes physical memory to be mapped in temporarily (first flushing the cache to avoid inaccurate data being read). Otherwise, the system is assumed to be IOMD-based, where the 512MB of physical address space is mapped in at &80000000.