Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[pxe] Initialize EDX on PXE NBP entry and INT 1Ah
The PXE 1.x spec specifies that on NBP entry or on return from INT
1Ah AX=5650h, EDX shall point to the physical address of the PXENV+
structure.  The PXE 2.x spec drops this requirement, simply stating
that EDX is clobbered.  Given the principle "be conservative in what
you send, liberal in what you accept", however, we should implement
this anyway.
  • Loading branch information
H. Peter Anvin authored and Michael Brown committed Feb 18, 2009
1 parent b557755 commit aaa26f3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
13 changes: 7 additions & 6 deletions src/arch/i386/interface/pxe/pxe_call.c
Expand Up @@ -433,7 +433,7 @@ void pxe_init_structures ( void ) {
* @ret rc Return status code
*/
int pxe_start_nbp ( void ) {
int discard_b, discard_c;
int discard_b, discard_c, discard_d;
uint16_t rc;

/* Far call to PXE NBP */
Expand All @@ -444,11 +444,12 @@ int pxe_start_nbp ( void ) {
"lcall $0, $0x7c00\n\t"
"addw $4, %%sp\n\t" )
: "=a" ( rc ), "=b" ( discard_b ),
"=c" ( discard_c )
: "a" ( __from_text16 ( &ppxe ) ),
"b" ( __from_text16 ( &pxenv ) ),
"c" ( rm_cs )
: "edx", "esi", "edi", "ebp", "memory" );
"=c" ( discard_c ), "=d" ( discard_d )
: "a" ( __from_text16 ( &ppxe ) ),
"b" ( __from_text16 ( &pxenv ) ),
"c" ( rm_cs ),
"d" ( virt_to_phys ( &pxenv ) )
: "esi", "edi", "ebp", "memory" );

return rc;
}
8 changes: 6 additions & 2 deletions src/arch/i386/interface/pxe/pxe_entry.S
Expand Up @@ -178,6 +178,7 @@ pxe_entry_common:
* Returns:
* %ax : 0x564e
* %es:bx : Far pointer to the PXENV+ structure
* %edx : Physical address of the PXENV+ structure
* CF cleared
* Corrupts:
* none
Expand All @@ -191,9 +192,12 @@ pxe_int_1a:
cmpw $0x5650, %ax
jne 1f
/* INT 1A,5650 - PXE installation check */
pushw %cs
popw %es
xorl %edx, %edx
movw %cs, %dx
movw %dx, %es
movw $pxenv, %bx
shll $4, %edx
addl $pxenv, %edx
movw $0x564e, %ax
popfw
clc
Expand Down

0 comments on commit aaa26f3

Please sign in to comment.