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.