Hi all,
Most of 32-bit kernels (Unix/OS/whatever) usually have PAE support, so in fact they can cope with 36 bits of memory. The CPU PAE support started around Pentium. Windows XP+ has support for this.
I think one can go with 2GB MMIO hole. The PCIe > 4GB is a question, I don't think Windows have good support for this. So, using 2GB memory hole and having MMIO < 4GB seems like a good idea.
Thanks Rudolf