Re: [SeaBIOS] USB-to-SATA bridge conflicts with USB boot flash drive
Hello! I don't know how to provide an example for QEMU for this issue... Anyway, I tried to debug more and have found out that the problem seems to be in "scsi_drive_setup" (src\hw\blockcmd.c) function: int scsi_drive_setup(...) { ret = scsi_is_ready(); if (ret) { dprintf(1, "scsi_is_ready returned %d\n", ret); return ret; } ... } When HDD is not present on the USB-to-SATA bridge, "scsi_is_ready" function returns "-1" and this causes problems to USB flash drives on ports greater than USB-to-SATA bridge USB port. For now, I've simply replaced code above with version with hardcode check: ret = scsi_is_ready(); if (ret) { dprintf(1, "scsi_is_ready returned %d\n", ret); if (!strcmp(product, "TUSB9261")) { dprintf(1, "Skip TUSB9261 USB-to-SATA bridge with no devices\n"); return 0; } return ret; } This, of course, is not a full solution, but it works for my case. I hope my info will help and someone with better understanding of SeaBIOS will come up with a full solution. Best regards, Aladyshev Konstantin -Original Message- From: Paul Menzel [mailto:pmen...@molgen.mpg.de] Sent: Tuesday, December 18, 2018 5:21 PM To: Аладышев Константин Cc: seabios@seabios.org Subject: Re: [SeaBIOS] USB-to-SATA bridge conflicts with USB boot flash drive Dear Aladyshev, On 12/18/18 15:15, Аладышев Константин wrote: > I use coreboot+SeaBIOS bundle on custom motherboard with Intel Haswell i7 > and Lynxpoint-LP chipset and I've come to a strange issue with USB-to-SATA > bridge TUSB9261 (http://www.ti.com/product/TUSB9261). > In my experiments I plug HDD to one USB port, and USB boot flash drive to > another USB port. > Everything works fine when HDD is present on USB-to-SATA bridge. SeaBIOS > displays both devices in its boot menu. But if HDD is not present and if USB > boot flash drive is plugged to a port greater than USB-to-SATA bridge port, > SeaBIOS doesn't see flash drive as bootable device. > > In this case I see in log messages similar to this: > """ > Searching bootorder for: /pci@i0cf8/usb@1d/hub@1/storage@7/*@0/*@0,0 > Searching bootorder for: /pci@i0cf8/usb@1d/hub@1/usb-*@7 > ehci_send_pipe qh=0x000eab80 dir=0 data=0x6b79 size=31 > ehci_send_pipe qh=0x000eab00 dir=128 data=0x6c98 size=36 > WARNING - Timeout at ehci_wait_td:516! > ehci pipe=0x000eab00 cur=69c0 tok=80240d80 next=1 td=0x69c0 > status=240d80 > USB transmission failed > Unable to configure USB MSC drive. > phys_free f4950 (detail=0x7f6c13c0) > Unable to configure USB MSC device. > """ > > Summarizing all the above with SeaBIOS logs: > > SeaBIOS displays flash drive correctly as bootable device when: > - HDD is present on SATA-to-USB port (https://pastebin.com/SuKBkQrq) > - HDD is not present on USB port, but SATA-to-USB port number is greater > than USB flash drive number (https://pastebin.com/9f6RTBHB) > > SeaBIOS doesn't display flash drive as bootable device when: > - HDD is not present on USB port and SATA-to-USB port number is less than > USB flash drive number (https://pastebin.com/abBPhej0) > > > What can be the source of the problem and what can I do to solve this issue? Without looking at the code, can you come up with an example for QEMU to reproduce this? Kind regards, Paul PS: Please attach the logs in the future, so reading the mail one does not need to be online. ___ SeaBIOS mailing list SeaBIOS@seabios.org https://mail.coreboot.org/mailman/listinfo/seabios
Re: [SeaBIOS] USB-to-SATA bridge conflicts with USB boot flash drive
Dear Aladyshev, On 12/18/18 15:15, Аладышев Константин wrote: > I use coreboot+SeaBIOS bundle on custom motherboard with Intel Haswell i7 > and Lynxpoint-LP chipset and I've come to a strange issue with USB-to-SATA > bridge TUSB9261 (http://www.ti.com/product/TUSB9261). > In my experiments I plug HDD to one USB port, and USB boot flash drive to > another USB port. > Everything works fine when HDD is present on USB-to-SATA bridge. SeaBIOS > displays both devices in its boot menu. But if HDD is not present and if USB > boot flash drive is plugged to a port greater than USB-to-SATA bridge port, > SeaBIOS doesn't see flash drive as bootable device. > > In this case I see in log messages similar to this: > """ > Searching bootorder for: /pci@i0cf8/usb@1d/hub@1/storage@7/*@0/*@0,0 > Searching bootorder for: /pci@i0cf8/usb@1d/hub@1/usb-*@7 > ehci_send_pipe qh=0x000eab80 dir=0 data=0x6b79 size=31 > ehci_send_pipe qh=0x000eab00 dir=128 data=0x6c98 size=36 > WARNING - Timeout at ehci_wait_td:516! > ehci pipe=0x000eab00 cur=69c0 tok=80240d80 next=1 td=0x69c0 > status=240d80 > USB transmission failed > Unable to configure USB MSC drive. > phys_free f4950 (detail=0x7f6c13c0) > Unable to configure USB MSC device. > """ > > Summarizing all the above with SeaBIOS logs: > > SeaBIOS displays flash drive correctly as bootable device when: > - HDD is present on SATA-to-USB port (https://pastebin.com/SuKBkQrq) > - HDD is not present on USB port, but SATA-to-USB port number is greater > than USB flash drive number (https://pastebin.com/9f6RTBHB) > > SeaBIOS doesn't display flash drive as bootable device when: > - HDD is not present on USB port and SATA-to-USB port number is less than > USB flash drive number (https://pastebin.com/abBPhej0) > > > What can be the source of the problem and what can I do to solve this issue? Without looking at the code, can you come up with an example for QEMU to reproduce this? Kind regards, Paul PS: Please attach the logs in the future, so reading the mail one does not need to be online. smime.p7s Description: S/MIME Cryptographic Signature ___ SeaBIOS mailing list SeaBIOS@seabios.org https://mail.coreboot.org/mailman/listinfo/seabios
[SeaBIOS] USB-to-SATA bridge conflicts with USB boot flash drive
Hello! I use coreboot+SeaBIOS bundle on custom motherboard with Intel Haswell i7 and Lynxpoint-LP chipset and I've come to a strange issue with USB-to-SATA bridge TUSB9261 (http://www.ti.com/product/TUSB9261). In my experiments I plug HDD to one USB port, and USB boot flash drive to another USB port. Everything works fine when HDD is present on USB-to-SATA bridge. SeaBIOS displays both devices in its boot menu. But if HDD is not present and if USB boot flash drive is plugged to a port greater than USB-to-SATA bridge port, SeaBIOS doesn't see flash drive as bootable device. In this case I see in log messages similar to this: """ Searching bootorder for: /pci@i0cf8/usb@1d/hub@1/storage@7/*@0/*@0,0 Searching bootorder for: /pci@i0cf8/usb@1d/hub@1/usb-*@7 ehci_send_pipe qh=0x000eab80 dir=0 data=0x6b79 size=31 ehci_send_pipe qh=0x000eab00 dir=128 data=0x6c98 size=36 WARNING - Timeout at ehci_wait_td:516! ehci pipe=0x000eab00 cur=69c0 tok=80240d80 next=1 td=0x69c0 status=240d80 USB transmission failed Unable to configure USB MSC drive. phys_free f4950 (detail=0x7f6c13c0) Unable to configure USB MSC device. """ Summarizing all the above with SeaBIOS logs: SeaBIOS displays flash drive correctly as bootable device when: - HDD is present on SATA-to-USB port (https://pastebin.com/SuKBkQrq) - HDD is not present on USB port, but SATA-to-USB port number is greater than USB flash drive number (https://pastebin.com/9f6RTBHB) SeaBIOS doesn't display flash drive as bootable device when: - HDD is not present on USB port and SATA-to-USB port number is less than USB flash drive number (https://pastebin.com/abBPhej0) What can be the source of the problem and what can I do to solve this issue? Best Regards, Aladyshev Konstantin ___ SeaBIOS mailing list SeaBIOS@seabios.org https://mail.coreboot.org/mailman/listinfo/seabios