diff options
author | Michael Brown | 2016-02-19 01:56:20 +0100 |
---|---|---|
committer | Michael Brown | 2016-02-19 02:01:27 +0100 |
commit | 6eb1c927a3e245dd571507e86bbde8e8a29f582b (patch) | |
tree | 0117f6a9f7c96babf8ae7fa497ccb422bfcaea61 /src/arch/x86/include/librm.h | |
parent | [librm] Provide an abstraction wrapper for prot_call (diff) | |
download | ipxe-6eb1c927a3e245dd571507e86bbde8e8a29f582b.tar.gz ipxe-6eb1c927a3e245dd571507e86bbde8e8a29f582b.tar.xz ipxe-6eb1c927a3e245dd571507e86bbde8e8a29f582b.zip |
[librm] Transition to protected mode within init_librm()
Long-mode operation will require page tables, which are too large to
sensibly fit in our .data16 segment in base memory.
Add a portion of init_librm() running in 32-bit protected mode to
provide access to high memory. Use this portion of init_librm() to
initialise the .textdata variables "virt_offset", "text16", and
"data16", eliminating the redundant (re)initialisation currently
performed on every mode transition as part of real_to_prot().
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/x86/include/librm.h')
-rw-r--r-- | src/arch/x86/include/librm.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/arch/x86/include/librm.h b/src/arch/x86/include/librm.h index 2786027a..97461640 100644 --- a/src/arch/x86/include/librm.h +++ b/src/arch/x86/include/librm.h @@ -14,10 +14,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #define PHYSICAL_DS 0x20 #define REAL_CS 0x28 #define REAL_DS 0x30 -#if 0 -#define LONG_CS 0x38 -#define LONG_DS 0x40 -#endif +#define P2R_DS 0x38 #ifdef ASSEMBLY |