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.

TMDS64EVM: TMDS64EVM, AM64xx

Part Number: TMDS64EVM
Other Parts Discussed in Thread: TCA6424, UNIFLASH

Tool/software:

Hello,

Couple questions related to boot : 

1. When manually test cold POR_RST by pressing SW7 switch while power is ON (not power ON reset), sometimes the boot generates this error : 

DMSC Firmware Version 9.2.8--v09.02.08 (Kool Koala)
DMSC Firmware revision 0x9
DMSC ABI revision 3.1

Some tests have failed!! 

So what may cause this problem ?

2. Setting condition : fixed OSPI boot (primary)/UART boot (backup) by way of resistors strap only and none of the toggle switches are used or installed.

The systems works fine when initial flashing the OSPI (via UART boot) when OSPI is empty. The power is cycled and system will do OSPI boot.

Use case : secure boot when changing to use the backup key. There are two steps : programming (or select) the backup key then followed with new software

certificate with backup key. What happens is during reprogramming the OSPI with new software the power is lost and therefore it renders the boot unsuccessfully.

In this case there is a need to FORCE UART boot so that the software can be programmed again. As stated above that physically the boot setting is OSPI/UART.

The thought of using the I/O expander device to serve this purpose but the current IO expander TCA6424ARGJR is the volatile device and at the power ON all the ports

are inputs and used to read the boot mode information. So is there a non-volatile IO expander from TI that serves the programming and retaining the boot mode

configuration outputs as UART boot ?

3. If no non-volatile IO expander is found, can we implement the following with TCA6424 device : hold TEST_GPIO3 low, program the IO expander as outputs for UART

boot then initiate the cold boot via TEST_PORZn signal or CONN_MCU_PORz signal ? If so then there will be a hook in SBL to allow software to do IO expander programming.

Is this scheme possible ?

Thanks,

Huynh

  • Hi,

    Thanks for your question.

    Allow me sometime to get back to you.

    Regards,

    Vaibhav

  • Hi,

    2. Setting condition : fixed OSPI boot (primary)

    Did you meant xSPI bootmode? If the flash you are using is S28HS512T then booting in OSPI bootmode is not possible, as it is a flash limitation. I can state the reason why OSPI bootmode will not be supported once you confirm if you have set xSPI or OSPI Bootmode.

    The systems works fine when initial flashing the OSPI (via UART boot) when OSPI is empty.

    Basically writing the binaries to the flash via UART Uniflash works fine.

    The thought of using the I/O expander device to serve this purpose but the current IO expander TCA6424ARGJR is the volatile device and at the power ON all the ports

    are inputs and used to read the boot mode information. So is there a non-volatile IO expander from TI that serves the programming and retaining the boot mode

    configuration outputs as UART boot ?

    Let me know if this FAQ helps in general for programming IO Expander:  [FAQ] PROCESSOR-SDK-AM64X: How to program TCA6424A using SoC_I2C1 

    I understand your concern, that the IO Expander resets back to default state upon PORz, has this been tested on your end and confirmed ?

    3. If no non-volatile IO expander is found, can we implement the following with TCA6424 device : hold TEST_GPIO3 low, program the IO expander as outputs for UART

    boot then initiate the cold boot via TEST_PORZn signal or CONN_MCU_PORz signal ? If so then there will be a hook in SBL to allow software to do IO expander programming.

    Is this scheme possible ?

    I will check on this and let you know, meanwhile please help respond on the pending questions above.

    Regards,

    Vaibhav

  • Question 2 : We set it as xSPI(primary)/UART(backup) combination and we program it using uniflash when UART boot. The Uart boot normally needed when first boot with the new flash. That is not an issue and it works. This includes when there is an software update and it should work fine in-situ (hence it always boots in flash boot). The use case is when we change the secure boot certificate by activate the back up key certificate by rolling the key from1 to 2 and followed with updated software with new key. The only situation that is stuck when the software update the power supply is lost and therefore recycle power will not execute the new software (yet) and old software still has the old key. So the system boot will be stuck at SBL. But we cannot force the UART boot since ROM and SBL boot in place and it will resume flash boot all the time. Now we are stuck. Remember the condition is no physical change of resistors boot strap is allowed. So the only solution is using some non-volatile I/O expander with OE\ enable so that at power On this device will override the resistors boot strap and make it UART boot if we want to in this scenario.

    We understood the TCA6424ARGJR is volatile and default to Input at power ON reset and can only use this device if the solution in question 3 is viable.

    Actually there are only 2 lines that need to manipulate : SYS_BOOTMODE3 and SYS_BOOTMODE6 to flip polarity to change from flash boot to UART boot.

    So I am looking at the small TI CPLD or configurable logic gate devices to accomplish this in place of volatile TCA6424ARGJR. Again we want to control and change the boot mode if needed. Consult your internal expert to see if this option is Ok.

    Question 3 : if the TCA6424ARGJR is used then we have to be able to configure it at SBL level and cold boot (while power is ON) according the steps laying out in the last post.

  • Hi,

    The use case is when we change the secure boot certificate by activate the back up key certificate by rolling the key from1 to 2 and followed with updated software with new key. The only situation that is stuck when the software update the power supply is lost and therefore recycle power will not execute the new software (yet) and old software still has the old key. So the system boot will be stuck at SBL. But we cannot force the UART boot since ROM and SBL boot in place and it will resume flash boot all the time. Now we are stuck. Remember the condition is no physical change of resistors boot strap is allowed. So the only solution is using some non-volatile I/O expander with OE\ enable so that at power On this device will override the resistors boot strap and make it UART boot if we want to in this scenario.

    Allow sometime for another expert to comment on this.

    Thanks,

    Vaibhav

  • Hello,

    1. When manually test cold POR_RST by pressing SW7 switch while power is ON (not power ON reset), sometimes the boot generates this error :

    This is a known issue of random authentication failure. This is fixed in the latest SYSFW versions. Please replace the default SYSFW binaries in your SDK version with the SYSFW binaries from the latest SDK version.

    The only situation that is stuck when the software update the power supply is lost and therefore recycle power will not execute the new software (yet) and old software still has the old key. So the system boot will be stuck at SBL.

    If the flashing did not finish successfully then the authentication of that image would fail. The ROM would reject the image fallbacking to the UART backup bootmode.

    Regards,

    Prashant