> So, it appears that this is not the case for many platforms: bridge > itself does a byteswap to make devices behind it work according to spec, > but this does not apply to programming bridge itself. > > This seems common on BE platforms, this is why qemu has > ifdef TARGET_WORDS_BIGENDIAN there IIUC.
Sadly, it is quite often that misleaded HW designers thing they are doing SW a service by making something BE instead of LE on a BE platform, but in the end just forcing everybody to special case :-) It's hard to say what is the most common. All powerpc chrp have it LE afaik, FSL tried to be smart (FAIL) and got their SoC config space access reg BE instead. Apple stuff is just "special", etc... In any case, it doesn't matter much as long as qemu gets normal MMIO emulation right. Host bridge config space is chipset specific and as such platform specific. Cheers, Ben.