On Wed, Feb 01, 2017 at 08:54:20AM +0100, Paul Menzel wrote:
Am Sonntag, den 29.01.2017, 14:30 -0500 schrieb Kevin O'Connor:
On Thu, Jan 26, 2017 at 04:30:12PM +0100, Paul Menzel wrote:
On the ASRock E350M1 with coreboot and SeaBIOS, setting the runtime config option `threads` to 2, I am unable to press the boot menu key (ESC). [1]
By default, SeaBIOS will parallelize hardware initialization during bootup to reduce boot time. Multiple hardware devices can be initialized in parallel between vga initialization and option rom initialization. One can set this file to a value of zero to force hardware initialization to run serially. Alternatively, one can set this file to 2 to enable early hardware initialization that runs in parallel with vga, option rom initialization, and the boot menu.
My rotating hard drive is pretty slow, and SeaBIOS is waiting for that.
Not adding `etc/threads` to CBFS, pressing the key works, and the boot menu is displayed.
Is that the expected behavior?
No, it's not expected. If you set 'etc/threads' to 2 then you should get the boot menu prompt even before the drive finishes spinning up. If you send a log we can take a look at it.
Sorry, for not sending it right away. Please find it attached.
It looks like the menu prompt is shown (though that would be hidden by the bootsplash) and so the code is waiting for a key. Try hitting ESC a bunch of times while the bootsplash is displayed.
If the ESC causes you to also leave the menu - then you are hitting this:
int esc_accepted_time = irqtimer_calc(menukey == 1 ? 1500 : 0);
You could try increasing the value to something really large (eg, 30000) so that it doesn't impact your test.
-Kevin