I started identity mapping everything using 2 Meg as much as possible. Since VGA A0000 BFFFF must be uncached, I had to map the lowest 2 Meg with 4K.
Then, I made an alias for the VGA.
Recently, I switched to 1 Gig pages. You probably did not know that there is a bit in the CPUID that tells if 1 Gig pages are supported.
I have an alias for the first 4 Gig up toward top of my space. FEE00000 the local apic and IOAPic and HPET must be uncached, so I access them in my 4Gig alias up in high space.
Then, I made an alias for the VGA.
Recently, I switched to 1 Gig pages. You probably did not know that there is a bit in the CPUID that tells if 1 Gig pages are supported.
I have an alias for the first 4 Gig up toward top of my space. FEE00000 the local apic and IOAPic and HPET must be uncached, so I access them in my 4Gig alias up in high space.