Skip to content

Commit

Permalink
[prefix] Limit initrd to the low 2GB of memory
Browse files Browse the repository at this point in the history
When using x86 Physical Address Extensions (PAE), winload.exe seems to
assume (in winload!MmPaeInitializeTranslation()) that all memory from
0x80000000 upwards is available for allocation, regardless of the
contents of the BOOTAPP structure memory region descriptors.  This
leads to odd failures when winload.exe attempts to subsequently create
memory map entries for pages that have already been mapped as part of
the BOOTAPP-described region.

Work around this assumption by forcing the initrd below 0x80000000
(via the ramdisk_max field in the bzImage header).

Reported-by: Casper <thephantom1492@yahoo.com>
Debugged-by: Christian Nilsson <nikize@gmail.com>
Debugged-by: Michael Brown <mbrown@fensystems.co.uk>
Tested-by: Casper <thephantom1492@yahoo.com>
Tested-by: Christian Nilsson <nikize@gmail.com>
Signed-off-by: Michael Brown <mbrown@fensystems.co.uk>
  • Loading branch information
mcb30 committed Sep 1, 2015
1 parent ed186ee commit c60402b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/prefix.S
Expand Up @@ -243,7 +243,7 @@ cmd_line_ptr:

.org 0x22c
ramdisk_max:
.long 0xffffffff
.long 0x7fffffff

version_string:
.asciz VERSION
Expand Down

0 comments on commit c60402b

Please sign in to comment.