d0eb4e529d
Signed-off-by: Bastian Blank <waldi@debian.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
79 lines
1.7 KiB
ArmAsm
79 lines
1.7 KiB
ArmAsm
.text
|
|
.arch i386
|
|
.code16
|
|
.section ".prefix", "ax", @progbits
|
|
.org 0
|
|
|
|
nbi_header:
|
|
|
|
/*****************************************************************************
|
|
* NBI file header
|
|
*****************************************************************************
|
|
*/
|
|
file_header:
|
|
.long 0x1b031336 /* Signature */
|
|
.byte 0x04 /* 16 bytes header, no vendor info */
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0 /* No flags */
|
|
.word 0x0000, 0x07c0 /* Load header to 0x07c0:0x0000 */
|
|
.word _nbi_start, 0x07c0 /* Start execution at 0x07c0:entry */
|
|
.size file_header, . - file_header
|
|
|
|
/*****************************************************************************
|
|
* NBI segment header
|
|
*****************************************************************************
|
|
*/
|
|
segment_header:
|
|
.byte 0x04 /* 16 bytes header, no vendor info */
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0x04 /* Last segment */
|
|
.long 0x00007e00
|
|
imglen: .long -512
|
|
memlen: .long -512
|
|
.size segment_header, . - segment_header
|
|
|
|
.section ".zinfo.fixup", "a", @progbits /* Compressor fixups */
|
|
.ascii "ADDL"
|
|
.long imglen
|
|
.long 1
|
|
.long 0
|
|
.ascii "ADDL"
|
|
.long memlen
|
|
.long 1
|
|
.long 0
|
|
.previous
|
|
|
|
/*****************************************************************************
|
|
* NBI entry point
|
|
*****************************************************************************
|
|
*/
|
|
.globl _nbi_start
|
|
_nbi_start:
|
|
/* Install iPXE */
|
|
call install
|
|
|
|
/* Jump to .text16 segment */
|
|
pushw %ax
|
|
pushw $1f
|
|
lret
|
|
.section ".text16", "awx", @progbits
|
|
1:
|
|
pushl $main
|
|
pushw %cs
|
|
call prot_call
|
|
popl %ecx /* discard */
|
|
|
|
/* Uninstall iPXE */
|
|
call uninstall
|
|
|
|
/* Reboot system */
|
|
int $0x19
|
|
|
|
.previous
|
|
.size _nbi_start, . - _nbi_start
|
|
|
|
nbi_header_end:
|
|
.org 512
|