Use a symbol to select the size of the GDT, rather than hard-coding a
value. This matches how it is done in start64

Signed-off-by: Simon Glass <s...@chromium.org>
---

(no changes since v1)

 arch/x86/cpu/start.S   | 4 +++-
 arch/x86/cpu/start16.S | 3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S
index 0ef27cc5a00..385a691265e 100644
--- a/arch/x86/cpu/start.S
+++ b/arch/x86/cpu/start.S
@@ -254,7 +254,7 @@ multiboot_header:
         * GDT is setup in a safe location in RAM
         */
 gdt_ptr2:
-       .word   0x1f            /* limit (31 bytes = 4 GDT entries - 1) */
+       .word   gdt2_end - gdt_ptr2 - 1
        .long   gdt_rom2        /* base */
 
        /* Some CPUs are picky about GDT alignment... */
@@ -313,4 +313,6 @@ gdt_rom2:
        .byte   0x93            /* access */
        .byte   0xcf            /* flags + limit_high */
        .byte   0x00            /* base_high */
+gdt2_end:
+
 #endif
diff --git a/arch/x86/cpu/start16.S b/arch/x86/cpu/start16.S
index 865a49731e5..8d9acb193e0 100644
--- a/arch/x86/cpu/start16.S
+++ b/arch/x86/cpu/start16.S
@@ -61,7 +61,7 @@ idt_ptr:
         * GDT is setup in a safe location in RAM
         */
 gdt_ptr:
-       .word   0x1f            /* limit (31 bytes = 4 GDT entries - 1) */
+       .word   gdt_end - gdt_rom - 1
        .long   BOOT_SEG + gdt_rom      /* base */
 
        /* Some CPUs are picky about GDT alignment... */
@@ -120,3 +120,4 @@ gdt_rom:
        .byte   0x93            /* access */
        .byte   0xcf            /* flags + limit_high */
        .byte   0x00            /* base_high */
+gdt_end:
-- 
2.43.0

Reply via email to