I am playing around with EDK2 on QEMU with a UEFI shell application
and in the app I allocate some memory using
gBS->AllocatePool(EfiBootServicesData, ...)
Programmatically accessing the pointer returned works fine, but when
I print it, it does not seem to be what I would expect is a valid
address.
I've allocated 4GB to the QEMU machine, which I believe starts at
0x40000000.
But, when I print the address returned by AllocatePool the value is
"0x39177018".
I thought that all memory was identity mapped where phys=virt, so
not sure where the 0x39177018 is coming from. Trying to dump
0x39177018 from the QEMU console or GDB results in a bad address
error.
Thanks,
Stuart