diff options
author | Zachary Amsden <zach@vmware.com> | 2006-01-06 03:11:56 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-06 11:33:35 -0500 |
commit | e6a9918c9617ed21f71f2f20b45efe06822c8f00 (patch) | |
tree | 1518725e6db9a84667cc0d713a5e5c6c156a979d /arch/i386 | |
parent | 5fe9fe3c6f9a1ae7aa224bb7a66eb9aad9e4abef (diff) |
[PATCH] x86: Fixed pnp bios limits
PnP BIOS data, code, and 32-bit entry segments all have fixed limits as well;
set them in the GDT rather than adding more code. It would be nice to add
these fixups to the boot GDT rather than setting the GDT for each CPU; perhaps
I can wiggle this in later, but getting it in before the subsys init looks
tricky.
Also, make some progress on deprecating the ugly Q_SET_SEL macros.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Cc: "Seth, Rohit" <rohit.seth@intel.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/kernel/head.S | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/i386/kernel/head.S b/arch/i386/kernel/head.S index 58d2746670b7..5884469f6bfe 100644 --- a/arch/i386/kernel/head.S +++ b/arch/i386/kernel/head.S | |||
@@ -504,10 +504,14 @@ ENTRY(cpu_gdt_table) | |||
504 | .quad 0x0000000000000000 /* 0x80 TSS descriptor */ | 504 | .quad 0x0000000000000000 /* 0x80 TSS descriptor */ |
505 | .quad 0x0000000000000000 /* 0x88 LDT descriptor */ | 505 | .quad 0x0000000000000000 /* 0x88 LDT descriptor */ |
506 | 506 | ||
507 | /* Segments used for calling PnP BIOS have byte granularity */ | 507 | /* |
508 | .quad 0x00409a0000000000 /* 0x90 32-bit code */ | 508 | * Segments used for calling PnP BIOS have byte granularity. |
509 | .quad 0x00009a0000000000 /* 0x98 16-bit code */ | 509 | * They code segments and data segments have fixed 64k limits, |
510 | .quad 0x0000920000000000 /* 0xa0 16-bit data */ | 510 | * the transfer segment sizes are set at run time. |
511 | */ | ||
512 | .quad 0x00409a000000ffff /* 0x90 32-bit code */ | ||
513 | .quad 0x00009a000000ffff /* 0x98 16-bit code */ | ||
514 | .quad 0x000092000000ffff /* 0xa0 16-bit data */ | ||
511 | .quad 0x0000920000000000 /* 0xa8 16-bit data */ | 515 | .quad 0x0000920000000000 /* 0xa8 16-bit data */ |
512 | .quad 0x0000920000000000 /* 0xb0 16-bit data */ | 516 | .quad 0x0000920000000000 /* 0xb0 16-bit data */ |
513 | 517 | ||