diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-04-27 18:42:04 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-04-27 18:42:04 +0000 |
commit | 96d56b36902a1043c5834776411261c26872f4b8 (patch) | |
tree | eda21ba0f0d9dc283c0d152b1eacc21150615d28 /c/src/lib/libbsp/i386/pc386/startup/ldsegs.s | |
parent | Added I386_HAS_BSWAP cpu model feature flag so swap u32 could take (diff) | |
download | rtems-96d56b36902a1043c5834776411261c26872f4b8.tar.bz2 |
Update from Pedro Romano <pmcnr@camoes.rnl.ist.utl.pt>.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/startup/ldsegs.s | 37 |
1 files changed, 2 insertions, 35 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/startup/ldsegs.s b/c/src/lib/libbsp/i386/pc386/startup/ldsegs.s index 2aba236d21..16f791830a 100644 --- a/c/src/lib/libbsp/i386/pc386/startup/ldsegs.s +++ b/c/src/lib/libbsp/i386/pc386/startup/ldsegs.s @@ -69,27 +69,6 @@ BEGIN_CODE EXTERN (establish_stack) /*----------------------------------------------------------------------------+ -| empty_8042 -+------------------------------------------------------------------------------ -| This routine checks that the keyboard command queue is empty (after emptying -| the output buffers). -| No timeout is used - if this hangs there is something wrong with the machine, -| and we probably couldn't proceed anyway. -+----------------------------------------------------------------------------*/ -SYM(empty_8042): - call delay - inb $0x64, al # 8042 status port - testb $0x01, al # output buffer? - jz SYM(no_output) - call SYM(delay) - in $0x60, al # read it - jmp SYM(empty_8042) -SYM(no_output): - test $0x02, al # is input buffer full? - jnz SYM(empty_8042) # yes - loop - ret - -/*----------------------------------------------------------------------------+ | delay +------------------------------------------------------------------------------ | Delay is needed after doing I/O. We do it by writing to a non-existent port. @@ -100,8 +79,8 @@ SYM(delay): /*-------------------------------------------------------------------------+ | Function: _load_segments -| Description: Load board segment registers with apropriate values + enable - A20 line + reprogram PIC. +| Description: Load board segment registers with apropriate values + +| reprogram PIC. | Global Variables: None. | Arguments: None. | Returns: Nothing. @@ -116,18 +95,6 @@ SYM (_load_segments): LOAD_SEGMENTS(RESET_GS, gs) /*---------------------------------------------------------------------+ - | we have to enable A20 in order to access memory above 1MByte - +---------------------------------------------------------------------*/ - - call SYM(empty_8042) - movb $0xD1, al # command write - outb al, $0x64 - call SYM(empty_8042) - movb $0xDF, al # A20 on - outb al, $0x60 - call SYM(empty_8042) - - /*---------------------------------------------------------------------+ | Now we have to reprogram the interrupts :-(. We put them right after | the intel-reserved hardware interrupts, at int 0x20-0x2F. There they | won't mess up anything. Sadly IBM really messed this up with the |