[SeaBIOS] [PATCH v2 6/6] boot: add F11 shortcut for network boot
Paolo Bonzini
pbonzini at redhat.com
Mon Oct 29 09:31:19 CET 2012
Il 29/10/2012 09:06, Paolo Bonzini ha scritto:
> Il 28/10/2012 02:32, Kevin O'Connor ha scritto:
>> On Wed, Oct 17, 2012 at 06:23:48PM +0200, Paolo Bonzini wrote:
>>> This patch adds a shortcut for network boot, similar to what is present
>>> on bare-metal machines. F11 will prioritize BCV/BEV entries for network
>>> devices over all the other items of the boot list.
>>>
>>> Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
>>> ---
>>> src/boot.c | 36 +++++++++++++++++++++++++++++++-----
>>> 1 file modificato, 31 inserzioni(+), 5 rimozioni(-)
>>>
>>> diff --git a/src/boot.c b/src/boot.c
>>> index c136ad4..682f239 100644
>>> --- a/src/boot.c
>>> +++ b/src/boot.c
>>> @@ -292,6 +292,7 @@ static struct bootentry_s *BootList;
>>> #define IPL_TYPE_BEV 0x50
>>> #define IPL_TYPE_BCV 0x60
>>> #define IPL_TYPE_MASK 0xF0
>>> +#define IPL_TYPE_CLASS 0x0F
>>>
>>> static void
>>> bootentry_add(int type, int prio, u32 data, const char *desc)
>>> @@ -406,26 +407,51 @@ interactive_bootmenu(void)
>>> while (get_keystroke(0) >= 0)
>>> ;
>>>
>>> - printf("Press F12 for boot menu.\n\n");
>>> + wait_threads();
>>> + struct bootentry_s *pos;
>>> + for (pos = BootList; pos; pos = pos->next) {
>>> + if ((pos->type & IPL_TYPE_CLASS) == PCI_BASE_CLASS_NETWORK)
>>> + break;
>>> + }
>>> +
>>> + printf("Press %sF12 for boot menu.\n\n"
>>> + , pos ? "F11 for network boot, or " : "");
>>
>> The wait_threads() only has an impact when CONFIG_THREAD_OPTIONROMS is
>> set. When it is set, I think we really do want threads to be able to
>> run up until the end of the boot menu delay, as this can notably
>> reduce overall boot time on real hardware. So, adding the call to
>> wait_threads doesn't seem right.
>>
>> I suppose the code could always print the F11 message regardless of
>> whether or not a network card has been detected.
>
> Ok.
Actually, boot_add_bev is always run synchronously from
option_rom_setup, not from the hw init threads. So wait_threads is not
needed here.
Paolo
More information about the SeaBIOS
mailing list