Browse Source

[romprefix] Do not check for BBS compatibility

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>
tags/v1.20.1
Michael Brown 14 years ago
parent
commit
3094d2cf33
1 changed files with 3 additions and 29 deletions
  1. 3
    29
      src/arch/i386/prefix/romprefix.S

+ 3
- 29
src/arch/i386/prefix/romprefix.S View File

14
 #define PMM_SIGNATURE ( '$' + ( 'P' << 8 ) + ( 'M' << 16 ) + ( 'M' << 24 ) )
14
 #define PMM_SIGNATURE ( '$' + ( 'P' << 8 ) + ( 'M' << 16 ) + ( 'M' << 24 ) )
15
 #define PCI_SIGNATURE ( 'P' + ( 'C' << 8 ) + ( 'I' << 16 ) + ( ' ' << 24 ) )
15
 #define PCI_SIGNATURE ( 'P' + ( 'C' << 8 ) + ( 'I' << 16 ) + ( ' ' << 24 ) )
16
 #define STACK_MAGIC ( 'L' + ( 'R' << 8 ) + ( 'E' << 16 ) + ( 'T' << 24 ) )
16
 #define STACK_MAGIC ( 'L' + ( 'R' << 8 ) + ( 'E' << 16 ) + ( 'T' << 24 ) )
17
-#define PNP_GET_BBS_VERSION 0x60
18
 #define PMM_ALLOCATE 0x0000
17
 #define PMM_ALLOCATE 0x0000
19
 #define PMM_FIND 0x0001
18
 #define PMM_FIND 0x0001
20
 #define PMM_HANDLE_BASE ( ( ( 'F' - 'A' + 1 ) << 26 ) + \
19
 #define PMM_HANDLE_BASE ( ( ( 'F' - 'A' + 1 ) << 26 ) + \
283
 	movw	$init_message_pnp, %si
282
 	movw	$init_message_pnp, %si
284
 	xorw	%di, %di
283
 	xorw	%di, %di
285
 	call	print_message
284
 	call	print_message
286
-	/* Check for BBS */
287
-	pushw	%es:0x1b	/* Real-mode data segment */
288
-	pushw	%ds		/* &(bbs_version) */
289
-	pushw	$bbs_version
290
-	pushw	$PNP_GET_BBS_VERSION
291
-	lcall	*%es:0xd
292
-	addw	$8, %sp
293
-	testw	%ax, %ax
294
-	je	got_bbs
295
-no_pnp:	/* Not PnP-compliant - therefore cannot be BBS-compliant */
296
-no_bbs:	/* Not BBS-compliant - must hook INT 19 */
285
+	jmp	pnp_done
286
+no_pnp:	/* Not PnP-compliant - hook INT 19 */
297
 	movw	$init_message_int19, %si
287
 	movw	$init_message_int19, %si
298
 	xorw	%di, %di
288
 	xorw	%di, %di
299
 	call	print_message
289
 	call	print_message
304
 	pushw	%gs /* %gs contains runtime %cs */
294
 	pushw	%gs /* %gs contains runtime %cs */
305
 	pushw	$int19_entry
295
 	pushw	$int19_entry
306
 	popl	%es:( 0x19 * 4 )
296
 	popl	%es:( 0x19 * 4 )
307
-	jmp	bbs_done
308
-got_bbs: /* BBS compliant - no need to hook INT 19 */
309
-	movw	$init_message_bbs, %si
310
-	xorw	%di, %di
311
-	call	print_message
312
-bbs_done:
297
+pnp_done:
313
 
298
 
314
 	/* Check for PMM */
299
 	/* Check for PMM */
315
 	movw	$( 0xe000 - 1 ), %bx
300
 	movw	$( 0xe000 - 1 ), %bx
545
 init_message_pnp:
530
 init_message_pnp:
546
 	.asciz	" PnP"
531
 	.asciz	" PnP"
547
 	.size	init_message_pnp, . - init_message_pnp
532
 	.size	init_message_pnp, . - init_message_pnp
548
-init_message_bbs:
549
-	.asciz	" BBS"
550
-	.size	init_message_bbs, . - init_message_bbs
551
 init_message_pmm:
533
 init_message_pmm:
552
 	.asciz	" PMM"
534
 	.asciz	" PMM"
553
 	.size	init_message_pmm, . - init_message_pmm
535
 	.size	init_message_pmm, . - init_message_pmm
617
 	.long	0
599
 	.long	0
618
 	.size	decompress_to, . - decompress_to
600
 	.size	decompress_to, . - decompress_to
619
 
601
 
620
-/* BBS version
621
- *
622
- * Filled in by BBS BIOS.  We ignore the value.
623
- */
624
-bbs_version:
625
-	.word	0
626
-	.size	bbs_version, . - bbs_version
627
-
628
 /* Boot Execution Vector entry point
602
 /* Boot Execution Vector entry point
629
  *
603
  *
630
  * Called by the PnP BIOS when it wants to boot us.
604
  * Called by the PnP BIOS when it wants to boot us.

Loading…
Cancel
Save