-gInitialPML4: ; 256 TiB
- dd gInitialPDP + 3, 0 ; Identity Map Low 4Mb
- times 256-1 dq 0
- dd gInitialPDP + 3, 0 ; Identity Map Low 4Mb to kernel base
- times 256-1 dq 0
-
-gInitialPDP: ; 512 GiB
- dd gInitialPD + 3, 0
- times 511 dq 0
-
-gInitialPD: ; 1 GiB
- dd gInitialPT1 + 3, 0
- dd gInitialPT2 + 3, 0
-
-gInitialPT1: ; 2 MiB
- %assign i 1
+[global gInitialPML4]
+gInitialPML4: ; Covers 256 TiB (Full 48-bit Virtual Address Space)
+ dd gInitialPDP - KERNEL_BASE + 3, 0 ; Identity Map Low 4Mb
+ times 512-4-1 dq 0
+ dd gInitialPML4 - KERNEL_BASE + 3, 0 ; Fractal Mapping
+ dq 0
+ dq 0
+ dd gHighPDP - KERNEL_BASE + 3, 0 ; Map Low 4Mb to kernel base
+
+gInitialPDP: ; Covers 512 GiB
+ dd gInitialPD - KERNEL_BASE + 3, 0
+ times 511 dq 0
+
+gHighPDP: ; Covers 512 GiB
+ times 510 dq 0
+ ;dq 0 + 0x143 ; 1 GiB Page from zero
+ dd gInitialPD - KERNEL_BASE + 3, 0
+ dq 0
+
+gInitialPD: ; Covers 1 GiB
+ dd gInitialPT1 - KERNEL_BASE + 3, 0
+ dd gInitialPT2 - KERNEL_BASE + 3, 0
+ times 510 dq 0
+
+gInitialPT1: ; Covers 2 MiB
+ %assign i 0