diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-08-21 16:39:52 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-08-21 16:39:52 +0000 |
commit | eb562f2c860061868e4ea1a821a84147b694dd07 (patch) | |
tree | 4273d9ac092dab0e00e065a365595a2b30fcc95f /c/src/lib/libbsp/i386/pc386/start/start16.s | |
parent | Spacing changes (diff) | |
download | rtems-eb562f2c860061868e4ea1a821a84147b694dd07.tar.bz2 |
Patch from Eric Valette <valette@crf.canon.fr>:
Here is a patch that enables to catch exception
and get message before crashing RTEMS :)
It should be generic to any Intel port although enabled
only for pc386 BSP...
[Joel] I fixed the bug I introduced in irq_asm.s...
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/start/start16.s | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/start/start16.s b/c/src/lib/libbsp/i386/pc386/start/start16.s index c10a658718..778c0dd597 100644 --- a/c/src/lib/libbsp/i386/pc386/start/start16.s +++ b/c/src/lib/libbsp/i386/pc386/start/start16.s @@ -33,7 +33,7 @@ .set HDROFF, 0x24 # offset into bin2boot header of start32 addr .set STACKOFF, 0x200-0x10 # offset to load into %esp, from start of image - +/* #define NEW_GAS*/ /*----------------------------------------------------------------------------+ | CODE section +----------------------------------------------------------------------------*/ @@ -78,14 +78,20 @@ _start16: /*---------------------------------------------------------------------+ | Bare PC machines boot in real mode! We have to turn protected mode on. +---------------------------------------------------------------------*/ - +#ifdef NEW_GAS + data32 + addr32 +#endif lgdt gdtptr - start16 # load Global Descriptor Table - movl %cr0, %eax orl $CR0_PE, %eax movl %eax, %cr0 # turn on protected mode +#ifdef NEW_GAS + ljmpl $PROT_CODE_SEG, $1f # flush prefetch queue, and reload %cs +#else ljmp $PROT_CODE_SEG, $1f # flush prefetch queue, and reload %cs +#endif 1: .code32 |