This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

4 minute boot delay in bootrom with USB0 plugged in

Hello,


We are experiencing a 4 minute boot delay when booting from MMC0 and Sitara is configured in  SYSBOOT[4:0] =  01011b mode ->   USB0->NAND->SPI0->MMC0 and USB0 calbe is plugged in to the host PC. The boot process seems to be stuck for 4 minutes somewhere in Sitara USB bootrom loader. After a 4 minute timeout, u-boot begins to send data to UART terminal, and MMC0 boot resumes like normal.  The 4 minute delay is not present if USB0 cable is not plugged in to the host PC. Is there anything that can be done to reduce this delay to something on the order of seconds instead of minutes?

Platform:

BeagleBone Black with the following PCB mods to configure '01011b' BOOT mode:

R69, R70 -> 100K  R94, R95 ->  DNI

R68 -> DNI R93 -> 100K

R66/65 -> DNI R91/90 -> 100K

We tried different hosts: Windows/Linux, This is the output of Linux host (Ubuntu 14.04) during the 4 minute boot delay:

[688536.158584] usb 3-14: new full-speed USB device number 39 using xhci_hcd
[688536.174884] usb 3-14: not running at top speed; connect to a high speed hub
[688536.175618] usb 3-14: New USB device found, idVendor=0451, idProduct=6141
[688536.175626] usb 3-14: New USB device strings: Mfr=33, Product=37, SerialNumber=0
[688536.175631] usb 3-14: Product: AM335x USB
[688536.175635] usb 3-14: Manufacturer: Texas Instruments
[688536.218266] rndis_host 3-14:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-14, RNDIS device, 9a:1f:85:1c:3d:0e
[688536.446788] userif-2: sent link down event.
[688536.446790] userif-2: sent link up event.

  • Mikhail,
    first ensure that the AM335x is reading your intended boot sequence properly since you made some changes. Check register 0x44E10040 (CONTROL_STATUS), bits 7-0 should match SYSBOOT[7:0]

    Next, if the boot sequence is as intended, then you are getting hung up in USB boot because there are different timeouts depending on what is setup on the host. Can you try to disable the tftp server or somehow prevent USB enumeration (I've seen on Windows machines this can be done by removing the driver). We have also seen the ROM quickly skip over the USB boot (5 second timeout) by having tftp server properly installed and just not having a proper boot file.

    Regards,
    James
  • Bits of CONTROL_STATUS match SYSBOOT[7:0]:

     

    devmem2 0x44E10040 w

    /dev/mem opened.

    Memory mapped at address 0xb6fe4000.

    Read at address 0x44E10040 (0xb6fe4040): 0x0040030B

    It looks like 4 minute delay comes from the BOOTP protocol, implemented part of network boot in the bootloader:

    From Sitara TRM:  26.1.8.4.2 BOOTP (RFC 951):

    Timeouts and retries:
    • Exponentially increasing timeouts starting from 4s, doubling for each retry.
    • 5 retries