Skip to content

Commit ec35d1d

Browse files
committed
x86/setup: Document that Windows reserves the first MiB
It does so unconditionally too, on Intel and AMD machines, to work around BIOS bugs, as confirmed by Microsoft folks (see Link for full details). Reflow the paragraph, while at it. Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/MWHPR21MB159330952629D36EEDE706B3D7379@MWHPR21MB1593.namprd21.prod.outlook.com
1 parent 23721c8 commit ec35d1d

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

arch/x86/kernel/setup.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1060,17 +1060,18 @@ void __init setup_arch(char **cmdline_p)
10601060
#endif
10611061

10621062
/*
1063-
* Find free memory for the real mode trampoline and place it
1064-
* there.
1065-
* If there is not enough free memory under 1M, on EFI-enabled
1066-
* systems there will be additional attempt to reclaim the memory
1067-
* for the real mode trampoline at efi_free_boot_services().
1063+
* Find free memory for the real mode trampoline and place it there. If
1064+
* there is not enough free memory under 1M, on EFI-enabled systems
1065+
* there will be additional attempt to reclaim the memory for the real
1066+
* mode trampoline at efi_free_boot_services().
10681067
*
1069-
* Unconditionally reserve the entire first 1M of RAM because
1070-
* BIOSes are know to corrupt low memory and several
1071-
* hundred kilobytes are not worth complex detection what memory gets
1072-
* clobbered. Moreover, on machines with SandyBridge graphics or in
1073-
* setups that use crashkernel the entire 1M is reserved anyway.
1068+
* Unconditionally reserve the entire first 1M of RAM because BIOSes
1069+
* are known to corrupt low memory and several hundred kilobytes are not
1070+
* worth complex detection what memory gets clobbered. Windows does the
1071+
* same thing for very similar reasons.
1072+
*
1073+
* Moreover, on machines with SandyBridge graphics or in setups that use
1074+
* crashkernel the entire 1M is reserved anyway.
10741075
*/
10751076
reserve_real_mode();
10761077

0 commit comments

Comments
 (0)