Dear Coreboot community, I am developing bios for my custom Apollo Lake SoC E3950 mainboard. I got to a point where SeaBios is loaded and awaits to choose a boot option. The problem is that its getting stuck while waiting for timeout or keyboard press (see log attached). I figured out that it is getting stuck on wait_irq() function. In particular, call stack looks like this:
interactive_bootmenu() (/coreboot/payloads/external/SeaBIOS/seabios/src/boot.c) get_keystroke() (int scan_code = get_keystroke(menutime);) get_keystroke_full() yield_toirq() wait_irq() __stack_hop_back_wait_irq()
Why can this happen? Is hardware not initialized properly during Coreboot operation or it should be done in SeaBios? Looks like interrupts from timer and keyboard are not working. I tried loading with FILO payload and keyboard was working Ok except keyboard leds were not working.
Best Regards, Anatolii Vorobev
worth a try to deselect/unset SEABIOS_HARDWARE_IRQ in your coreboot .config
On Fri, Dec 25, 2020 at 1:45 AM Anatolii Vorobev < anatolii.vorobev@wayray.com> wrote:
Dear Coreboot community,
I am developing bios for my custom Apollo Lake SoC E3950 mainboard. I got to a point where SeaBios is loaded and awaits to choose a boot option. The problem is that its getting stuck while waiting for timeout or keyboard press (see log attached). I figured out that it is getting stuck on wait_irq() function. In particular, call stack looks like this:
interactive_bootmenu() (/coreboot/payloads/external/SeaBIOS/seabios/src/boot.c)
get_keystroke() (int scan_code = get_keystroke(menutime);)
get_keystroke_full()
yield_toirq()
wait_irq()
__stack_hop_back_wait_irq()
Why can this happen? Is hardware not initialized properly during Coreboot operation or it should be done in SeaBios?
Looks like interrupts from timer and keyboard are not working. I tried loading with FILO payload and keyboard was working Ok except keyboard leds were not working.
Best Regards,
Anatolii Vorobev _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
Hi Matt, Thank you very much, that helped. Just after I checked this solution, I found this mailing list https://www.mail-archive.com/seabios@seabios.org/msg11374.html#. Somehow it didn’t show while googling before.
Best Regards, Anatolii Vorobev From: Matt DeVillier matt.devillier@gmail.com Sent: Friday, December 25, 2020 8:02 PM To: Anatolii Vorobev anatolii.vorobev@wayray.com Cc: coreboot@coreboot.org Subject: Re: [coreboot] SeaBios getting stuck in boot menu
worth a try to deselect/unset SEABIOS_HARDWARE_IRQ in your coreboot .config
On Fri, Dec 25, 2020 at 1:45 AM Anatolii Vorobev <anatolii.vorobev@wayray.commailto:anatolii.vorobev@wayray.com> wrote: Dear Coreboot community, I am developing bios for my custom Apollo Lake SoC E3950 mainboard. I got to a point where SeaBios is loaded and awaits to choose a boot option. The problem is that its getting stuck while waiting for timeout or keyboard press (see log attached). I figured out that it is getting stuck on wait_irq() function. In particular, call stack looks like this:
interactive_bootmenu() (/coreboot/payloads/external/SeaBIOS/seabios/src/boot.c) get_keystroke() (int scan_code = get_keystroke(menutime);) get_keystroke_full() yield_toirq() wait_irq() __stack_hop_back_wait_irq()
Why can this happen? Is hardware not initialized properly during Coreboot operation or it should be done in SeaBios? Looks like interrupts from timer and keyboard are not working. I tried loading with FILO payload and keyboard was working Ok except keyboard leds were not working.
Best Regards, Anatolii Vorobev _______________________________________________ coreboot mailing list -- coreboot@coreboot.orgmailto:coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.orgmailto:coreboot-leave@coreboot.org