Dear SeaBIOS folks,
on LinuxTag 2014 the OpenMandriva project [1] gave away USB flash storage devices with OpenMandriva installed for live booting. Testing it out on the ASRock E350M1 with coreboot and SeaBIOS payload it was not detected by SeaBIOS, meaning pressing F12 it was not listed in the boot options.
Rebooting the system by pressing Ctrl + Alt + Del the USB device was recognized by SeaBIOS and listed in the boot menu.
I am still able to reproduce this with SeaBIOS build from master. Please find the coreboot and SeaBIOS logs attached.
Thanks,
Paul
On Sat, May 17, 2014 at 10:25:58PM +0200, Paul Menzel wrote:
Dear SeaBIOS folks,
on LinuxTag 2014 the OpenMandriva project [1] gave away USB flash storage devices with OpenMandriva installed for live booting. Testing it out on the ASRock E350M1 with coreboot and SeaBIOS payload it was not detected by SeaBIOS, meaning pressing F12 it was not listed in the boot options.
Rebooting the system by pressing Ctrl + Alt + Del the USB device was recognized by SeaBIOS and listed in the boot menu.
I am still able to reproduce this with SeaBIOS build from master. Please find the coreboot and SeaBIOS logs attached.
Thanks. At first glance this looks like it could be a quirk of the particular flash drive. Can you apply the patch below, set the SeaBIOS debug level to 3, and report the results of both the working/not-working cases?
-Kevin
--- a/src/hw/usb-ehci.c +++ b/src/hw/usb-ehci.c @@ -60,7 +60,9 @@ ehci_hub_detect(struct usbhub_s *hub, u32 port) // has been powered up, so wait the 20ms. msleep(EHCI_TIME_POSTPOWER); } + dprintf(1, "ehci_hub_detect: port=%d portsc1=%x\n", port, portsc); portsc = readl(portreg); + dprintf(1, "ehci_hub_detect: port=%d portsc2=%x\n", port, portsc);
if (!(portsc & PORT_CONNECT)) // No device present @@ -93,6 +95,7 @@ ehci_hub_reset(struct usbhub_s *hub, u32 port) u32 *portreg = &cntl->regs->portsc[port]; u32 portsc = readl(portreg);
+ dprintf(1, "ehci_hub_reset: port=%d portsc3=%x\n", port, portsc); // Finish reset on port portsc &= ~PORT_RESET; writel(portreg, portsc); @@ -100,6 +103,7 @@ ehci_hub_reset(struct usbhub_s *hub, u32 port)
int rv = -1; portsc = readl(portreg); + dprintf(1, "ehci_hub_reset: port=%d portsc4=%x\n", port, portsc); if (!(portsc & PORT_CONNECT)) // No longer connected goto resetfail;
Am Sonntag, den 18.05.2014, 16:06 -0400 schrieb Kevin O'Connor:
On Sat, May 17, 2014 at 10:25:58PM +0200, Paul Menzel wrote:
on LinuxTag 2014 the OpenMandriva project [1] gave away USB flash storage devices with OpenMandriva installed for live booting. Testing it out on the ASRock E350M1 with coreboot and SeaBIOS payload it was not detected by SeaBIOS, meaning pressing F12 it was not listed in the boot options.
Rebooting the system by pressing Ctrl + Alt + Del the USB device was recognized by SeaBIOS and listed in the boot menu.
I am still able to reproduce this with SeaBIOS build from master. Please find the coreboot and SeaBIOS logs attached.
Thanks. At first glance this looks like it could be a quirk of the particular flash drive.
That might be. As a side note, enabling serial console in coreboot and SeaBIOS causes the devices to always be detected. With serial console the boot takes longer, as the messages need to be transmitted, so it could be a timing issue.
Can you apply the patch below, set the SeaBIOS debug level to 3, and report the results of both the working/not-working cases?
I forgot to lower the debug level to 3, so it is still at 8. Sorry. I hope that is still fine. If not, I’ll redo the tests.
Thanks,
Paul
Am Mittwoch, den 21.05.2014, 08:57 +0200 schrieb Paul Menzel:
Am Sonntag, den 18.05.2014, 16:06 -0400 schrieb Kevin O'Connor:
On Sat, May 17, 2014 at 10:25:58PM +0200, Paul Menzel wrote:
on LinuxTag 2014 the OpenMandriva project [1] gave away USB flash storage devices with OpenMandriva installed for live booting. Testing it out on the ASRock E350M1 with coreboot and SeaBIOS payload it was not detected by SeaBIOS, meaning pressing F12 it was not listed in the boot options.
Rebooting the system by pressing Ctrl + Alt + Del the USB device was recognized by SeaBIOS and listed in the boot menu.
I am still able to reproduce this with SeaBIOS build from master. Please find the coreboot and SeaBIOS logs attached.
Thanks. At first glance this looks like it could be a quirk of the particular flash drive.
That might be. As a side note, enabling serial console in coreboot and SeaBIOS causes the devices to always be detected. With serial console the boot takes longer, as the messages need to be transmitted, so it could be a timing issue.
Can you apply the patch below, set the SeaBIOS debug level to 3, and report the results of both the working/not-working cases?
I forgot to lower the debug level to 3, so it is still at 8. Sorry. I hope that is still fine. If not, I’ll redo the tests.
As requested in #coreboot on <irc.freenode.net> I attach the logs with SeaBIOS built from 67fd42cf, your patch and debug level 3.
Please note that during one run, the USB storage device was even detected on first try, so I plugged it into to a different port.
Thanks,
Paul