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.

Boot sequence question about Tec. Ref. Manual

Expert 2280 points
Other Parts Discussed in Thread: AM1808

Dear all,

With reference to AM335x Technical Reference Manual (Rev. C), section "26.1.5.2.1 SYSBOOT Configuration Pins", could you please clarify note 5 related to USB0 boot device?

"5. Boot mode is not a permanent booting device. All other boot modes are and will be included in subsequent booting sequences after each watchdog timeout."

Which is the meaning of "permanent booting device"?

I'm interested in using USB interface for programming empty flash memory of the device at the first time. In my understanding, due to the limit of 110 KB available in internal RAM, it will be necessary to download a Secondary-Boot-Loader to initialize external RAM and other peripheral. Then the SBL will download u-boot etc and write them to flash. Something similar to UART boot mode, but faster (in my expectation). Is it correct?

Thanks in advance.
Best regards,
Max

  • Qmax said:

    With reference to AM335x Technical Reference Manual (Rev. C), section "26.1.5.2.1 SYSBOOT Configuration Pins", could you please clarify note 5 related to USB0 boot device?

    "5. Boot mode is not a permanent booting device. All other boot modes are and will be included in subsequent booting sequences after each watchdog timeout."

    Which is the meaning of "permanent booting device"?

    It means if the present booting device fails to detect/boot, the next booting device will be selected. It could even be rolled-over to 1st booting device, if the present device is the last device in the selected boot mode.

    Qmax said:

    I'm interested in using USB interface for programming empty flash memory of the device at the first time. In my understanding, due to the limit of 110 KB available in internal RAM, it will be necessary to download a Secondary-Boot-Loader to initialize external RAM and other peripheral. Then the SBL will download u-boot etc and write them to flash. Something similar to UART boot mode, but faster (in my expectation). Is it correct?

    Correct.

    Regards

    Gururaja

  • Gururaja Hebbar said:

    With reference to AM335x Technical Reference Manual (Rev. C), section "26.1.5.2.1 SYSBOOT Configuration Pins", could you please clarify note 5 related to USB0 boot device?

    "5. Boot mode is not a permanent booting device. All other boot modes are and will be included in subsequent booting sequences after each watchdog timeout."

    Which is the meaning of "permanent booting device"?

    It means if the present booting device fails to detect/boot, the next booting device will be selected. It could even be rolled-over to 1st booting device, if the present device is the last device in the selected boot mode.

    [/quote]

    Hi Gururaja, thanks for you clarification but I am still missing something. In my understanding this is the standard boot procedure: the ROM try to boot from the first booting device accordingly to boot sequence based on SYSBOOT value. If it fails, it moves to second booting device, and so on until one boots with success or all of them fail. In this last case ROM enter in a dead loop until watchdog will expires (3 minutes) and a reset will occur. After that I suppose everything will be exactly the same as the very first time: ROM start-up, SYSBOOT sensing, configurations and again in the boot sequence...

    So, in this procedure, I do not understand which is the peculiarity of the USB0 booting device that Note 5 would outline.

    Thanks. Regards, Max

  • Qmax said:

    With reference to AM335x Technical Reference Manual (Rev. C), section "26.1.5.2.1 SYSBOOT Configuration Pins", could you please clarify note 5 related to USB0 boot device?

    "5. Boot mode is not a permanent booting device. All other boot modes are and will be included in subsequent booting sequences after each watchdog timeout."

    Which is the meaning of "permanent booting device"?

    It means if the present booting device fails to detect/boot, the next booting device will be selected. It could even be rolled-over to 1st booting device, if the present device is the last device in the selected boot mode.

    [/quote]

    Hi Gururaja, thanks for you clarification but I am still missing something. In my understanding this is the standard boot procedure: the ROM try to boot from the first booting device accordingly to boot sequence based on SYSBOOT value. If it fails, it moves to second booting device, and so on until one boots with success or all of them fail. In this last case ROM enter in a dead loop until watchdog will expires (3 minutes) and a reset will occur. After that I suppose everything will be exactly the same as the very first time: ROM start-up, SYSBOOT sensing, configurations and again in the boot sequence...

    So, in this procedure, I do not understand which is the peculiarity of the USB0 booting device that Note 5 would outline.

    Thanks. Regards, Max

    [/quote]

    On the mentioned boot mode, the above flow is true only on a Power on Reset. On a Warm reset, the boot sequence is picked up on SYSBOOT register values but then non-permanent devices are removed before booting is attempted

    Basically it means that the USB0 is only available as a boot device when the device is reset from power-on. Any other resets (i.e. warm or watchdog) will not include the USB0 as a boot device.

     A secondary boot could be used as a solution. For example, to be able to boot from a USB stick, the system can be configured to boot from a SPI flash, and the code for configuring the USB and booting from a USB stick can be loaded into the SPI flash.

    Regards

    Gururaja

  • Hello there.

    I am planning to purchase the beaglebone and hence an initial study of it. I was reading TI's AM335x technical reference manual and also had a similar doubt like QMax above.

    My questions are:

    1. The manual talks about 'Public ROM' code all the time. I believe it is proprietry code hard burned into some non volatile memory which is always invoked on startup. If it is indeed TI code which is invisible to the user, what does the word 'public' mean here?
    2. The manual talks about the 'ROM reset vector'. Is it different from the reset vector for the entire system? What I mean is, when ARM is resetted, it does a number of things and then later jumps to either 0x0000'0000 or to 0xFFFF'0000 depending on whether 'high vectors' having been configured or not (ARM Architecture Reference Manual). If I am correct until here, then how does this information relate to TI's 'ROM reset vector' being at address 0x20000? Is this ROM internal to the SoC (although outside the A8 core)? So it basically means that TI has designed the SoC in such a way that this internal ROM appears to the MPU as if it is at 0x0000'0000 (referred to, at times using the word 'remapping'), isn't it?
    3. Now as per the AM335X_starterware_booting_and_flashing guide, the beaglebone has no settings to configure the boot modes (correct me if I am wrong here). So the micro SD card that is shipped with the bone is the primary boot device (as per the SRM) and it already contains the second stage bootloader isn't it?
    4. I believe the very basic bootloader is in the ROM (which is TI proprietry) and it already configures the various important peripherals including the microSD card driver and hence whatever binary files are placed in the SD Memory card is then read by this ROM bootloader right?
    5. What exactly is the TI PSP contain? As far as I have understood, it contains the second stage and the 3rd stage bootloaders (u-boot) and the Linux kernel? But I cannot seem to find the link to download it
    6. In addition to the TI PSP, I could even use Angstrom or Android on the board right? But I would need to then use u-boot which has been ported to the bone as well. Am I correct? Can you point me to a place where I can download the ported u-boot?

    Thanks for your time. Keen to hear from you soon.

    Regards,

    Aijaz

     

  • Gururaja Hebbar said:

    On the mentioned boot mode, the above flow is true only on a Power on Reset. On a Warm reset, the boot sequence is picked up on SYSBOOT register values but then non-permanent devices are removed before booting is attempted

    Basically it means that the USB0 is only available as a boot device when the device is reset from power-on. Any other resets (i.e. warm or watchdog) will not include the USB0 as a boot device.

     A secondary boot could be used as a solution. For example, to be able to boot from a USB stick, the system can be configured to boot from a SPI flash, and the code for configuring the USB and booting from a USB stick can be loaded into the SPI flash.

    Ok, this means system will try to boot using USB0 only after power-on.
    Instead, after watchdog expiration it will not test and try USB0 boot mode anymore.

    I would suggest to clarify the definition of "permanent booting device" in further revision of manual.

    Thanks for your answer. Regards,
    Max

  • Hi Administrator

    Please remove my questions above since I have already started a new thread here .

    thanks again.

    Regards,

    Aijaz

  • Gururaja Hebbar said:

    On the mentioned boot mode, the above flow is true only on a Power on Reset. On a Warm reset, the boot sequence is picked up on SYSBOOT register values but then non-permanent devices are removed before booting is attempted

    Basically it means that the USB0 is only available as a boot device when the device is reset from power-on. Any other resets (i.e. warm or watchdog) will not include the USB0 as a boot device.

    Hi

    Two further questions about this topic:

    1- I've not found any "Emulation boot mode" pins configuration in TRM. The AM1808 has a specific boot mode that make the system to stop at the very beginning. How can I do the same with AM335x EVM? I would like to connect with CCS via JTAG asap after system reset.

    2- In TRM, with reference to SYSBOOT[4:0] 10010b configuration, the USB0 device does not have note [5] about permanent devices. Is it just a typo, or with this boot pins configuration USB0 is handled as a permanent device?

    Thanks once again for your support.

    Regards, Max