All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86: Use low memory size directly from Multiboot
@ 2022-02-09 11:00 dinhngoc.tu
  2022-02-09 11:25 ` Jan Beulich
  0 siblings, 1 reply; 9+ messages in thread
From: dinhngoc.tu @ 2022-02-09 11:00 UTC (permalink / raw)
  To: xen-devel

Previously, Xen used information from the BDA to detect the amount of
available low memory. This does not work on some scenarios such as
Coreboot, or when booting from Kexec on a UEFI system without CSM.

Use the information directly supplied by Multiboot boot information
instead.
---
 xen/arch/x86/boot/head.S | 30 ++++++------------------------
 1 file changed, 6 insertions(+), 24 deletions(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index dd1bea0d10..31a0663e6d 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -524,33 +524,15 @@ trampoline_bios_setup:
         mov     %ecx,%fs
         mov     %ecx,%gs
 
-        /* Set up trampoline segment 64k below EBDA */
-        movzwl  0x40e,%ecx          /* EBDA segment */
-        cmp     $0xa000,%ecx        /* sanity check (high) */
-        jae     0f
-        cmp     $0x4000,%ecx        /* sanity check (low) */
-        jae     1f
-0:
-        movzwl  0x413,%ecx          /* use base memory size on failure */
-        shl     $10-4,%ecx
-1:
-        /*
-         * Compare the value in the BDA with the information from the
-         * multiboot structure (if available) and use the smallest.
-         */
-        cmp     $0x100,%edx         /* is the multiboot value too small? */
-        jb      2f                  /* if so, do not use it */
-        shl     $10-4,%edx
-        cmp     %ecx,%edx           /* compare with BDA value */
-        cmovb   %edx,%ecx           /* and use the smaller */
+        /* Use lower memory size directly from Multiboot */
+        mov     %edx,%ecx
+        /* From arch/x86/smpboot.c: start_eip had better be page-aligned!
*/
+        shr     $2,%ecx
 
-2:
         /* Reserve memory for the trampoline and the low-memory stack. */
-        sub     $((TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE)>>4),%ecx
+        sub     $((TRAMPOLINE_SPACE+TRAMPOLINE_STACK_SPACE)>>12),%ecx
 
-        /* From arch/x86/smpboot.c: start_eip had better be page-aligned!
*/
-        xor     %cl, %cl
-        shl     $4, %ecx
+        shl     $12,%ecx
         mov     %ecx,sym_esi(trampoline_phys)
 
 trampoline_setup:
-- 
2.25.1




^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-02-09 15:57 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-09 11:00 [PATCH] x86: Use low memory size directly from Multiboot dinhngoc.tu
2022-02-09 11:25 ` Jan Beulich
2022-02-09 11:46   ` dinhngoc.tu
2022-02-09 13:12   ` [PATCH v2] " Tu Dinh Ngoc
2022-02-09 14:25     ` Jan Beulich
2022-02-09 15:20       ` dinhngoc.tu
2022-02-09 15:22         ` Jan Beulich
2022-02-09 15:36           ` dinhngoc.tu
2022-02-09 15:56     ` Roger Pau Monné

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.