mirror of
https://github.com/xcat2/xNBA.git
synced 2025-04-15 09:39:26 +00:00
[romprefix] Display only one "Ctrl-B" prompt per PCI device during POST
If a multifunction PCI device exposes an iPXE ROM via each function, then each function will display a "Press Ctrl-B to configure iPXE" prompt, and delay for two seconds. Since a single instance of iPXE can drive all functions on the multifunction device, this simply adds unnecessary delay to the boot process. Fix by inhibiting the "Press Ctrl-B" prompt for all except the first function on a PCI device. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
2629b7e2cd
commit
cb37d92ff6
@ -23,6 +23,7 @@ FILE_LICENCE ( GPL2_OR_LATER )
|
||||
( PMM_HANDLE_BASE | 0x00001000 )
|
||||
#define PMM_HANDLE_BASE_DECOMPRESS_TO \
|
||||
( PMM_HANDLE_BASE | 0x00002000 )
|
||||
#define PCI_FUNC_MASK 0x07
|
||||
|
||||
/* ROM banner timeout. Based on the configurable BANNER_TIMEOUT in
|
||||
* config.h, but converted to a number of (18Hz) timer ticks, and
|
||||
@ -422,6 +423,9 @@ no_pmm:
|
||||
xorw %di, %di
|
||||
cs rep movsb
|
||||
|
||||
/* Skip prompt if this is not the first PCI function */
|
||||
testb $PCI_FUNC_MASK, init_pci_busdevfn
|
||||
jnz no_shell
|
||||
/* Prompt for POST-time shell */
|
||||
movw $init_message_prompt, %si
|
||||
xorw %di, %di
|
||||
@ -440,7 +444,7 @@ no_pmm:
|
||||
movw $init_message_done, %si
|
||||
call print_message
|
||||
popf
|
||||
jnz 2f
|
||||
jnz no_shell
|
||||
/* Ctrl-B was pressed: invoke iPXE. The keypress will be
|
||||
* picked up by the initial shell prompt, and we will drop
|
||||
* into a shell.
|
||||
@ -448,7 +452,11 @@ no_pmm:
|
||||
xorl %ebp, %ebp /* Inhibit use of INT 15,e820 and INT 15,e801 */
|
||||
pushw %cs
|
||||
call exec
|
||||
2:
|
||||
no_shell:
|
||||
movb $( '\n' ), %al
|
||||
xorw %di, %di
|
||||
call print_character
|
||||
|
||||
/* Restore registers */
|
||||
popw %gs
|
||||
popw %fs
|
||||
@ -595,7 +603,7 @@ init_message_done:
|
||||
*
|
||||
*/
|
||||
init_pci_busdevfn:
|
||||
.word 0xffff
|
||||
.word 0
|
||||
.size init_pci_busdevfn, . - init_pci_busdevfn
|
||||
|
||||
/* Image source area
|
||||
|
Loading…
x
Reference in New Issue
Block a user