freebsd-skq/sys/boot/i386/libi386/pxetramp.s
Paul Saab d08ae64b1d Bring support in for Intel Wired for Management 1.1 (PXE 0.99 and
below).  This did not work previously because interrupts were
disabled when PXE calls were being made, and they must be enabled.
This should also allow us to be compliant with all newer PXE rom's
from Intel.

For PXE 0.99, this has been tested using the Intel N440BX motherboard
and I am confident it will work on the Intel L440GX motherboard.

Lots of help/information from: jhb, peter

I would like to thank Michael Johnston <michael.johnston@intel.com>,
Mike Henry <mike.henry@intel.com>, and all the other PXE developers
at Intel for their help, and information in helping solve this
problem.
2000-04-26 07:38:40 +00:00

39 lines
1.0 KiB
ArmAsm

#
# Copyright (c) 2000 Peter Wemm
# All rights reserved.
#
# Redistribution and use in source and binary forms are freely
# permitted provided that the above copyright notice and this
# paragraph and the following disclaimer are duplicated in all
# such forms.
#
# This software is provided "AS IS" and without any express or
# implied warranties, including, without limitation, the implied
# warranties of merchantability and fitness for a particular
# purpose.
#
# $FreeBSD$
# ph33r this
.globl __bangpxeentry, __bangpxeseg, __bangpxeoff
.globl __pxenventry, __pxenvseg, __pxenvoff
.code16
.p2align 4,0x90
__bangpxeentry:
push %dx # seg:data
push %ax # off:data
push %bx # int16 func
.byte 0x9a # far call
__bangpxeoff: .word 0x0000 # offset
__bangpxeseg: .word 0x0000 # segment
add $6, %sp # restore stack
.byte 0xcb # to vm86int
#
__pxenventry:
.byte 0x9a # far call
__pxenvoff: .word 0x0000 # offset
__pxenvseg: .word 0x0000 # segment
.byte 0xcb # to vm86int