x86: Tidy up the GDT size in start/16.S
authorSimon Glass <sjg@chromium.org>
Sat, 15 Mar 2025 14:25:36 +0000 (14:25 +0000)
committerTom Rini <trini@konsulko.com>
Thu, 3 Apr 2025 17:41:55 +0000 (11:41 -0600)
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 <sjg@chromium.org>
arch/x86/cpu/start.S
arch/x86/cpu/start16.S

index 0ef27cc..385a691 100644 (file)
@@ -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
index 865a497..8d9acb1 100644 (file)
@@ -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: