It looks like all of those functions are completely different on EFI and non-EFI systems. I'm looking at the kern_mem_attribute call and it has stuff like this:
842 * This is a hack for ioremap calls before we set up kern_memmap.
843 * Maybe we should do efi_memmap_init() earlier instead.
so not sure what to make of that.
You are reading the first 32-bit word of PCI memory space and getting different results. What does lspci -v show on each system? Has PCI config happened correctly? Is there only one memory space? What architecture are you on? 32 or 64-bit?