fix mapping physical addresses that don't align with 4MB boundary