diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/i386/prefix/romprefix.S index 091673d3..e061932d 100644 --- a/src/arch/i386/prefix/romprefix.S +++ b/src/arch/i386/prefix/romprefix.S @@ -25,12 +25,8 @@ FILE_LICENCE ( GPL2_OR_LATER ) ( 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 - * doubled to allow for BIOSes that switch video modes immediately - * beforehand, so rendering the message almost invisible to the user. - */ -#define ROM_BANNER_TIMEOUT ( 2 * ( 18 * BANNER_TIMEOUT ) / 10 ) +/* ROM banner timeout, converted to a number of (18Hz) timer ticks. */ +#define ROM_BANNER_TIMEOUT_TICKS ( ( 18 * ROM_BANNER_TIMEOUT ) / 10 ) /* Allow payload to be excluded from ROM size */ @@ -791,7 +787,7 @@ wait_for_key: int $0x16 jmp 1b 2: /* Wait for a key press */ - movw $ROM_BANNER_TIMEOUT, %cx + movw $ROM_BANNER_TIMEOUT_TICKS, %cx 3: decw %cx js 99f /* Exit with ZF clear */ /* Wait for timer tick to be updated */ diff --git a/src/config/general.h b/src/config/general.h index a714a0af..589798fb 100644 --- a/src/config/general.h +++ b/src/config/general.h @@ -28,11 +28,22 @@ FILE_LICENCE ( GPL2_OR_LATER ); #define PRODUCT_SHORT_NAME "iPXE" /* - * Timer configuration + * Banner timeout configuration * + * This controls the timeout for the "Press Ctrl-B for the iPXE + * command line" banner displayed when iPXE starts up. The value is + * specified in tenths of a second for which the banner should appear. + * A value of 0 disables the banner. + * + * ROM_BANNER_TIMEOUT controls the "Press Ctrl-B to configure iPXE" + * banner displayed only by ROM builds of iPXE during POST. This + * defaults to being twice the length of BANNER_TIMEOUT, to allow for + * BIOSes that switch video modes immediately before calling the + * initialisation vector, thus rendering the banner almost invisible + * to the user. */ -#define BANNER_TIMEOUT 20 /* Tenths of a second for which the shell - banner should appear */ +#define BANNER_TIMEOUT 20 +#define ROM_BANNER_TIMEOUT ( 2 * BANNER_TIMEOUT ) /* * Network protocols