AM3358: AM3358 Peripheral UART Booting

Part Number: AM3358


Hi,

Refference: www.ti.com/.../spruh73  (SPQ)

SPQ figure 26.10 shows that devices are processed in order and if no device responds then the loop is dead.

figure_26.10.JPG

SPQ table 26.7 SYSBOOT pins - page 5035. In this example SYSBOOT[4:0] are 11100b. The boot sequence is MMC1/MMC0/UART0/USB0 (i.e. eMMC/sdcard/serial console/USB0).

I have a BeagleBone Black revC (BBB). In this example, the eMMC is blank, no sdcard, UART0 (serial console) is connected to a host computer running minicom, USB is not connected. Upon applying power, I receive ‘CCCC…’. The ‘C’s continue indefinitely. 

I have a custom board based upon the BBB revC. Same example, the eMMC is blank, no sdcard, UART0 (serial console) is connected to a host computer running minicom, USB is not connected. Upon applying power, I receive eight ‘CCCCCCCC’, then a pause for approximately 22 seconds, then another set of eight ‘CCCCCCCC’, the pause again. The sequence continues indefinitely.

SPQ section 26..1.9.5 UART BOOT Procedure mentions the ROM code will ping the host 10 times in 3s to start the x-modem transfer. If the host does not respond, UART boot will time out.

Q1. Does 'ping the host' mean to send a single 'C' to the console?

I am confused. The SPQ says the ROM code will try the eMMC (blank), then the sdcard (not inserted), then UART0 (console) 10 times, then USB0 and if none are availble dead loop. The SPQ does not say the device sequence will restart.

Q2. Why does the BBB continuiously send 'CCCC...' when the ROM code states is should only send 10 'C' one time and stop?

Q3. Why does my custom board send eight 'C', pause and repeat? What is the ROM code doing during the pause?

Q4. Does the ROM code restart the boot procedure if the last device does not respond?

Thank you, 

 

  • Hello Jack,

    Thank you for your query.

    Q1. I think yes, and the timeout is 300 ms.

    Q2. Is it monotonically, or you can see at least some pause? 

    Q3. Unfortunately I cannot comment for your custom board at this time. ROM might be trying other boot devices in the list. For example USB timeout is 3 seconds.

    Q4. Yes. And also, there is a watchdog timer running that additionally can restart the loop if boot does not happen in 3 minutes

    Regards,

    Stan

  • Is it monotonically, or you can see at least some pause?

    Yes, there is a pause between each C. 300ms seems about right.

    Q1. Would you be interested in a video showing the 'CCCC...' during boot?

    Yes. And also, there is a watchdog timer running that additionally can restart the loop if boot does not happen in 3 minute

    Q2. What page(s) in the SPRUF73Q describes the ROM code restarting the boot procedure?

    Q3. What page is the 3 minute watchdog timer described?

    Thank you,

  • Hi Jack,

    Q1. Video will be perfect, thanks.

    Q2. This can be seen in gen 4 Sitara/OMAP TRMs. I don't think this has been changed between gen. 3 and gen 4.

    Q3. Here you are:

    Regards,

    Stan

  • Sorry for the delayed response.

    I am attempting to attach two videos.

    BBB.mp4: BeagleBone Black. eMMC is blank, no sdcard. I get a continuious string of 'CCCC...'

    OSD3358_SM.mp4: eMMC is blank, no sdcard. I get eight 'C', 22 second pause and repeat.

  • Hi Jack,

    Are there significant changes in your design comparing to BBB?

    Can you confirm all SYSBOOT pins are in the same configuration and are not driven by any external device? That is, only by pull resistors right after POR?

    Is it possible you are now using different silicon revision of AM335? 

    Thanks,

    Stan

  • Stan,

    Let me clarify something about my boards. I do have a BBB and it does boot with continuous string of 'C'. I have two custom boards based upon the BBB. Board-1 has an Octavo Systems OSD3358 processor and boots like the BBB, continuous 'C' (this first video is actually from board-1 booting). Board-2 is a different spin of board-2 with an Octavo Systems OSD3358-SM processor and boots displaying eight 'C', pause (the second video).

    Significant changes between board-1 and board-2. The layout and processor are different. The peripherals (UARTs, ethernet PHY's, eMMMC... are the same). There is no reason to believe they would boot differently.

    SYSBOOT pins are the same.

    Yes it is possible that the silicon is different. I am also in contact with Octavo about the issue. I posted first with TI because the ROM code is in the TI processor. I needed answers from TI before proceeding with Octavo. I look forward to, if you have more questions or can point me to the next thing to check.

    Thank you,

  • Jack,

    Thanks for the insight. 

    I don't recall anything else wrt to this. I only can add there is a ROM bug preventing from booting from USB in the first version of silicon. This may be causing USB boot to be skipped faster. Just thoughts.

    Please correct me if my understandings are wrong:

    Your intention is:

    If eMMC is blank

    AND

    No SD card in the slot

    THEN

    Boot from UART connected to PC


    IF the above is correct, I would like to ask are you facing issues to boot from UART?

    Thanks,

    Stan

  • Stan,

    I have two problems related to the pause.

    1. If eMMC is blank and no sdcard, then I want to peripheral boot from UART. I will use minicom to download Barebox MLO/Proper to get to a bootloader command line. The eight 'C' and pause for 22 seconds causes problems with getting the download to start. If the download doesn't start or times out, then I have to cancel the download, cycle power on the board and try again.

    2. If eMMC is blank and sdcard is inserted, then I want to memory boot from sdcard. If the ROM code does not find the sdcard the first time, then it won't try again for another 22 seconds. It will eventually boot from the sdcard.

    When I get a batch of 100 board to commission, via sdcard, the 22 second delay adds up. I will say that after the eMMC is commissioned then the boards will boot quick. I have no problem (that I am aware of) booting from eMMC.

    Thank you,

    Jack

  • Hi Jack,

    Is it possible on these boards to observe reset inputs to the SoC, reset outputs, and system clock? Can you please do that if possible?

    Thanks,

    Stan