|
@@ -51,7 +51,7 @@ boot_pd0_pt0:
|
|
.skip 4096 * 4
|
|
.skip 4096 * 4
|
|
.global boot_pd3_pts
|
|
.global boot_pd3_pts
|
|
boot_pd3_pts:
|
|
boot_pd3_pts:
|
|
-.skip 4096 * 8
|
|
|
|
|
|
+.skip 4096 * 16
|
|
.global boot_pd3_pt1023
|
|
.global boot_pd3_pt1023
|
|
boot_pd3_pt1023:
|
|
boot_pd3_pt1023:
|
|
.skip 4096
|
|
.skip 4096
|
|
@@ -91,7 +91,17 @@ boot_pd3 : 512 pde's
|
|
5: boot_pd3_pts[5] (3082-3084MB) (pseudo 512 4KB pages)
|
|
5: boot_pd3_pts[5] (3082-3084MB) (pseudo 512 4KB pages)
|
|
6: boot_pd3_pts[6] (3084-3086MB) (pseudo 512 4KB pages)
|
|
6: boot_pd3_pts[6] (3084-3086MB) (pseudo 512 4KB pages)
|
|
7: boot_pd3_pts[7] (3086-3088MB) (pseudo 512 4KB pages)
|
|
7: boot_pd3_pts[7] (3086-3088MB) (pseudo 512 4KB pages)
|
|
- 8: boot_pd3_pt1023 (4094-4096MB) (for page table mappings)
|
|
|
|
|
|
+
|
|
|
|
+ 8: boot_pd3_pts[8] (3088-3090MB) (pseudo 512 4KB pages)
|
|
|
|
+ 9: boot_pd3_pts[9] (3090-3076MB) (pseudo 512 4KB pages)
|
|
|
|
+ 10: boot_pd3_pts[10] (3092-3094MB) (pseudo 512 4KB pages)
|
|
|
|
+ 11: boot_pd3_pts[11] (3094-3096MB) (pseudo 512 4KB pages)
|
|
|
|
+ 12: boot_pd3_pts[12] (3096-3098MB) (pseudo 512 4KB pages)
|
|
|
|
+ 13: boot_pd3_pts[13] (3098-3100MB) (pseudo 512 4KB pages)
|
|
|
|
+ 14: boot_pd3_pts[14] (3100-3102MB) (pseudo 512 4KB pages)
|
|
|
|
+ 15: boot_pd3_pts[15] (3102-3104MB) (pseudo 512 4KB pages)
|
|
|
|
+
|
|
|
|
+ 16: boot_pd3_pt1023 (4094-4096MB) (for page table mappings)
|
|
|
|
|
|
the 9 page tables each contain 512 pte's that map individual 4KB pages
|
|
the 9 page tables each contain 512 pte's that map individual 4KB pages
|
|
|
|
|
|
@@ -145,7 +155,7 @@ start:
|
|
|
|
|
|
/* clear pd3's pt's */
|
|
/* clear pd3's pt's */
|
|
movl $(boot_pd3_pts - 0xc0000000), %edi
|
|
movl $(boot_pd3_pts - 0xc0000000), %edi
|
|
- movl $(1024 * 9), %ecx
|
|
|
|
|
|
+ movl $(1024 * 17), %ecx
|
|
xorl %eax, %eax
|
|
xorl %eax, %eax
|
|
rep stosl
|
|
rep stosl
|
|
|
|
|
|
@@ -157,7 +167,7 @@ start:
|
|
orl $0x3, 0(%edi)
|
|
orl $0x3, 0(%edi)
|
|
|
|
|
|
/* add boot_pd3_pts to boot_pd3 */
|
|
/* add boot_pd3_pts to boot_pd3 */
|
|
- movl $8, %ecx
|
|
|
|
|
|
+ movl $16, %ecx
|
|
movl $(boot_pd3 - 0xc0000000), %edi
|
|
movl $(boot_pd3 - 0xc0000000), %edi
|
|
movl $(boot_pd3_pts - 0xc0000000), %eax
|
|
movl $(boot_pd3_pts - 0xc0000000), %eax
|
|
|
|
|
|
@@ -182,8 +192,8 @@ start:
|
|
addl $4096, %eax
|
|
addl $4096, %eax
|
|
loop 1b
|
|
loop 1b
|
|
|
|
|
|
- /* pseudo identity map the 3072-3090MB range */
|
|
|
|
- movl $(512 * 8), %ecx
|
|
|
|
|
|
+ /* pseudo identity map the 3072-3102MB range */
|
|
|
|
+ movl $(512 * 16), %ecx
|
|
movl $(boot_pd3_pts - 0xc0000000), %edi
|
|
movl $(boot_pd3_pts - 0xc0000000), %edi
|
|
xorl %eax, %eax
|
|
xorl %eax, %eax
|
|
|
|
|