Skip to content

Commit

Permalink
[romprefix] Do not check for BBS compatibility
Browse files Browse the repository at this point in the history
The existence and usage of the BEV entry point is covered by the PnP
spec, not the BBS spec; the BBS spec merely describes a policy for
selecting the boot device order.  iPXE should therefore check only for
a PnP BIOS in order to decide whether or not to hook INT19.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Jun 24, 2010
1 parent 719b498 commit 3094d2c
Showing 1 changed file with 3 additions and 29 deletions.
32 changes: 3 additions & 29 deletions src/arch/i386/prefix/romprefix.S
Expand Up @@ -14,7 +14,6 @@ FILE_LICENCE ( GPL2_OR_LATER )
#define PMM_SIGNATURE ( '$' + ( 'P' << 8 ) + ( 'M' << 16 ) + ( 'M' << 24 ) )
#define PCI_SIGNATURE ( 'P' + ( 'C' << 8 ) + ( 'I' << 16 ) + ( ' ' << 24 ) )
#define STACK_MAGIC ( 'L' + ( 'R' << 8 ) + ( 'E' << 16 ) + ( 'T' << 24 ) )
#define PNP_GET_BBS_VERSION 0x60
#define PMM_ALLOCATE 0x0000
#define PMM_FIND 0x0001
#define PMM_HANDLE_BASE ( ( ( 'F' - 'A' + 1 ) << 26 ) + \
Expand Down Expand Up @@ -283,17 +282,8 @@ pnp_scan:
movw $init_message_pnp, %si
xorw %di, %di
call print_message
/* Check for BBS */
pushw %es:0x1b /* Real-mode data segment */
pushw %ds /* &(bbs_version) */
pushw $bbs_version
pushw $PNP_GET_BBS_VERSION
lcall *%es:0xd
addw $8, %sp
testw %ax, %ax
je got_bbs
no_pnp: /* Not PnP-compliant - therefore cannot be BBS-compliant */
no_bbs: /* Not BBS-compliant - must hook INT 19 */
jmp pnp_done
no_pnp: /* Not PnP-compliant - hook INT 19 */
movw $init_message_int19, %si
xorw %di, %di
call print_message
Expand All @@ -304,12 +294,7 @@ no_bbs: /* Not BBS-compliant - must hook INT 19 */
pushw %gs /* %gs contains runtime %cs */
pushw $int19_entry
popl %es:( 0x19 * 4 )
jmp bbs_done
got_bbs: /* BBS compliant - no need to hook INT 19 */
movw $init_message_bbs, %si
xorw %di, %di
call print_message
bbs_done:
pnp_done:

/* Check for PMM */
movw $( 0xe000 - 1 ), %bx
Expand Down Expand Up @@ -545,9 +530,6 @@ init_message_pci:
init_message_pnp:
.asciz " PnP"
.size init_message_pnp, . - init_message_pnp
init_message_bbs:
.asciz " BBS"
.size init_message_bbs, . - init_message_bbs
init_message_pmm:
.asciz " PMM"
.size init_message_pmm, . - init_message_pmm
Expand Down Expand Up @@ -617,14 +599,6 @@ decompress_to:
.long 0
.size decompress_to, . - decompress_to

/* BBS version
*
* Filled in by BBS BIOS. We ignore the value.
*/
bbs_version:
.word 0
.size bbs_version, . - bbs_version

/* Boot Execution Vector entry point
*
* Called by the PnP BIOS when it wants to boot us.
Expand Down

0 comments on commit 3094d2c

Please sign in to comment.