<div dir="ltr">Hi Matt,<div><br></div><div>I created a bootorder file and added it to cbfs, but initially had issues with USB not being properly initialized during boot.</div><div><br></div><div>From the cbmem log:</div><div><div>boot order:</div><div>1: /pci@i0cf8/usb@14/usb-*@0</div><div>2: /pci@i0cf8/usb@14/usb-*@1</div></div><div>... (snip)</div><div><div>48: /pci@i0cf8/usb@1d/hub@1/usb-*@<wbr>7</div><div>49: /pci@i0cf8/*@1f,2/drive@0/<wbr>disk@0</div></div><div>... (snip)</div><div><div>SeaBIOS (version rel-1.10.2-0-g5f4c7b1)</div><div>XHCI init on dev 00:14.0: regs @ 0xe0720000, 8 ports, 32 slots, 32 byte contexts</div><div>XHCI    protocol USB  2.00, 4 ports (offset 1), def 3001</div><div>XHCI    protocol USB  3.00, 4 ports (offset 5), def 1000</div><div>XHCI    extcap 0xc1 @ 0xe0728040</div><div>XHCI    extcap 0xc0 @ 0xe0728070</div><div>XHCI    extcap 0x1 @ 0xe0728330</div><div>EHCI init on dev 00:1a.0 (regs=0xe073f020)</div><div>EHCI init on dev 00:1d.0 (regs=0xe0740020)</div></div><div>... (snip)</div><div><div>XHCI no devices found</div><div>Initialized USB HUB (0 ports used)</div><div>ehci_wait_td error - status=80e42</div><div>Initialized USB HUB (0 ports used)</div><div>Initialized USB HUB (0 ports used)</div><div>All threads complete.</div></div><div><br></div><div>Googling "ehci_wait_td error - status=80e42" returns threads from years ago with people asking if it's a bug in SeaBIOS or coreboot.</div><div><br></div><div>I noticed that I was running SeaBIOS 1.10 and that 1.11 is now available. I updated SeaBIOS to 1.11 and reflashed, and now I am able to boot from USB successfully.</div><div><br></div><div>So thanks again for the tip on the bootorder file. If anyone else is having difficulties booting from USB and you're running SeaBIOS 1.10, consider upgrading to SeaBIOS 1.11. Thankfully updating resolved the USB initializing issue I was facing.</div><div><br></div><div>-Hal</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Dec 2, 2017 at 7:29 PM, Matt DeVillier <span dir="ltr"><<a href="mailto:matt.devillier@gmail.com" target="_blank">matt.devillier@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">yes, just enumerate all ports/hubs.  here's mine:<div><br><div><a href="https://github.com/MattDevo/coreboot/blob/master/cbfs/bootorder.usb" target="_blank">https://github.com/MattDevo/<wbr>coreboot/blob/master/cbfs/<wbr>bootorder.usb</a></div><div><br></div><div>if there's an impact on boot time its imperceptible.  What can slow things down are connected devices which don't initialize/respond to queries within the USB spec, but this is regardless of their presence in the bootorder file<div><div class="h5"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Dec 2, 2017 at 12:16 PM, Hal Martin <span dir="ltr"><<a href="mailto:hal.martin@gmail.com" target="_blank">hal.martin@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Matt,<div><br></div><div>That's a great tip, thanks for the link!</div><div><br></div><div>Looking at the file, it seems I would just specify every USB port from the PCH EHCI/xHCI controllers.</div><div><br></div><div>Do you know if this slows down boot noticeably if there are USB devices attached which aren't bootable (e.g. keyboard)? Or the case where there are potentially bootable devices (e.g. mass storage) but which lack a bootloader in the MBR?</div><div><br></div><div>I'll be back with results once I've done some testing.</div><div><br></div><div>Thanks again,</div><div>Hal</div></div><div class="m_-8417908216852435702gmail-HOEnZb"><div class="m_-8417908216852435702gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Dec 2, 2017 at 7:08 PM, Matt DeVillier <span dir="ltr"><<a href="mailto:matt.devillier@gmail.com" target="_blank">matt.devillier@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div>Hal,<div><br></div><div>your USB controllers are at 14.0 and 1d.0, so your bootorder file needs to enumerate all devices attached to said controllers.  I'm not sure how many devices can be attached to each for IvyBridge, but here's the bootorder file Google uses for reference:</div><div><br></div><div><a href="https://chromium.googlesource.com/chromiumos/third_party/seabios/+/firmware-eve-9584.B/chromeos/bootorder" target="_blank">https://chromium.googlesource.<wbr>com/chromiumos/third_party/sea<wbr>bios/+/firmware-eve-9584.B/chr<wbr>omeos/bootorder</a><br></div><div><br></div><div>HTH,<br></div><div>Matt</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-8417908216852435702gmail-m_-3392923843212885486h5">On Sat, Dec 2, 2017 at 2:09 AM, Hal Martin <span dir="ltr"><<a href="mailto:hal.martin@gmail.com" target="_blank">hal.martin@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="m_-8417908216852435702gmail-m_-3392923843212885486h5"><div class="m_-8417908216852435702gmail-m_-3392923843212885486m_4460486234765407187gmail-HOEnZb"><div class="m_-8417908216852435702gmail-m_-3392923843212885486m_4460486234765407187gmail-h5"><div dir="ltr"><span style="font-size:12.8px">Hi all,</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I'd like to learn more about SeaBIOS boot order, but unfortunately I wasn't able to find the answer to my question on the wiki page:</div><div style="font-size:12.8px"><a href="https://www.coreboot.org/SeaBIOS#Configuring_boot_order" target="_blank">https://www.coreboot.org/SeaBI<wbr>OS#Configuring_boot_order</a><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I would like to add a bootscript for SeaBIOS to search for USB boot devices before falling back to the hdd or PXE.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">If I have USB bootable media plugged in, SeaBIOS seems to immediately boot from the hdd. I'm not able to boot from USB unless I physically unplug the SATA connection.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">When I look at the console log in cbmem, I don't see SeaBIOS searching the USB controller at all. </div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">It's an Ivy Bridge platform.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><div>SeaBIOS log from cbmem:</div><div>Searching bootorder for: /pci@i0cf8/*@1f,2/drive@0/disk<wbr>@0</div><div>Searching bootorder for: /pci@i0cf8/pci-bridge@1c,3/*@0</div><div>Press ESC for boot menu.</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">lspci:</div><div style="font-size:12.8px">00:00.0 Host bridge [0600]: Intel Corporation 3rd Gen Core processor DRAM Controller [8086:0154] (rev 09)<br></div><div style="font-size:12.8px">00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port [8086:0151] (rev 09) (prog-if 00 [Normal decode])</div><div style="font-size:12.8px">00:01.1 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port [8086:0155] (rev 09) (prog-if 00 [Normal decode])</div><div style="font-size:12.8px">00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) (prog-if 00 [VGA controller])<br></div><div style="font-size:12.8px">00:14.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller [8086:1e31] (rev 04) (prog-if 30 [XHCI])<br></div><div style="font-size:12.8px">00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) [8086:1502] (rev 04)<br></div><div style="font-size:12.8px">00:1a.0 USB controller [0c03]: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2 [8086:1e2d] (rev 04) (prog-if 20 [EHCI])<br></div><div style="font-size:12.8px">00:1b.0 Audio device [0403]: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)</div><div style="font-size:12.8px">00:1c.0 PCI bridge [0604]: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 [8086:1e10] (rev c4) (prog-if 00 [Normal decode])</div><div style="font-size:12.8px">00:1c.4 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 5 [8086:1e18] (rev c4) (prog-if 00 [Normal decode])</div><div style="font-size:12.8px"><div>00:1d.0 USB controller [0c03]: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 [8086:1e26] (rev 04) (prog-if 20 [EHCI])</div><div>00:1f.0 ISA bridge [0601]: Intel Corporation HM76 Express Chipset LPC Controller [8086:1e59] (rev 04)</div><div>00:1f.2 SATA controller [0106]: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] [8086:1e03] (rev 04) (prog-if 01 [AHCI 1.0])</div><div>00:1f.3 SMBus [0c05]: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller [8086:1e22] (rev 04)</div><div>00:1f.6 Signal processing controller [1180]: Intel Corporation 7 Series/C210 Series Chipset Family Thermal Management Controller [8086:1e24] (rev 04)</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Any suggestions?</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thanks,</div><div style="font-size:12.8px">Hal</div></div>
</div></div><br></div></div><span class="m_-8417908216852435702gmail-m_-3392923843212885486HOEnZb"><font color="#888888">--<br>
coreboot mailing list: <a href="mailto:coreboot@coreboot.org" target="_blank">coreboot@coreboot.org</a><br>
<a href="https://mail.coreboot.org/mailman/listinfo/coreboot" rel="noreferrer" target="_blank">https://mail.coreboot.org/mail<wbr>man/listinfo/coreboot</a><br></font></span></blockquote></div><br></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div></div></div></div></div>
</blockquote></div><br></div>