Skip to content

Commit

Permalink
[romprefix] Display only one "Ctrl-B" prompt per PCI device during POST
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
mcb30 committed Mar 11, 2013
1 parent 2629b7e commit cb37d92
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions src/arch/i386/prefix/romprefix.S
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -440,15 +444,19 @@ 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.
*/
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
Expand Down Expand Up @@ -595,7 +603,7 @@ init_message_done:
*
*/
init_pci_busdevfn:
.word 0xffff
.word 0
.size init_pci_busdevfn, . - init_pci_busdevfn

/* Image source area
Expand Down

0 comments on commit cb37d92

Please sign in to comment.