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.

TMS320F28388D: Software Reset

Part Number: TMS320F28388D


Hi,

I have already studied section 3 (Reset for CPU1 and CPU2) and section 41.2 (Reset for CM) of the TRM. However, several things are still unclear to me. So, I have several questions regarding soft reset for all CPUs.

1- Based on the information in these two sections, we can infer that every resets on the CPU1 yields a reset on the CPU2 and CM, am I right? If so, is there any way to do a soft reset for the CPU1 without resulting in any reset on the other CPUs?

2- Is there an option to do a reset on the CPU2 like "Simulate CPU1 Reset" which is for CPU1? Is it just a specific reset option for only CPU1?

3- What is the best way to use of reset options mentioned in these two sections to separately do a soft reset for all three cores?

4- In the section "3.3.5 Debugger Reset (SYSRS)" of the TRM, it has been mentioned that "Debugger Reset (SYSRS)" (for the CPU2) resets only CPU2, its peripherals, and its clock gating and LPM configuration. First, what is exactly the "LPM configuration" here? Second, what parts of the CPU2 subsystem remain unchanged during this type of reset?

5- On page 161 of the TRM, it has been mentioned that System resets (like SIMRESET.CPU1RSn for the CPU1) reset a large subset of the device but maintain some system-level configuration. What is exactly the "system-level configuration"?

6- In the section "41.2.2 System Reset Request (CMSYSRESETREQ)", it has been mentioned that "This action resets almost all the logic on the CM except for debug". What does it mean by "almost all the logic" and "debug" in this sentence? What parts of the CM subsystem exactly remain unchanged during this type of reset?

7- During the options mentioned to do soft resets in these two sections of the TRM, are RAMs (LSRAMs, GSRAMs, MessageRAMs, and other types of RAMs) remain unchanged? Or will they also be reset?


Best,
Alex

  • Hi Alex,

    1- Based on the information in these two sections, we can infer that every resets on the CPU1 yields a reset on the CPU2 and CM, am I right? If so, is there any way to do a soft reset for the CPU1 without resulting in any reset on the other CPUs?

    Yes, your understanding is correct. No, on CPU1 reset both CPU gets reset because CPU1 is primary CPU and does all the device initialization tasks.

    2- Is there an option to do a reset on the CPU2 like "Simulate CPU1 Reset" which is for CPU1? Is it just a specific reset option for only CPU1?

    No, there is no option like that. What usecase you have for that ?

    3- What is the best way to use of reset options mentioned in these two sections to separately do a soft reset for all three cores?

    Only CPU2 and CM can be reset separately, not CPU1.

    4- In the section "3.3.5 Debugger Reset (SYSRS)" of the TRM, it has been mentioned that "Debugger Reset (SYSRS)" (for the CPU2) resets only CPU2, its peripherals, and its clock gating and LPM configuration. First, what is exactly the "LPM configuration" here? Second, what parts of the CPU2 subsystem remain unchanged during this type of reset?

    LPM -> Low power mode. Anything in CPU2 subsystem which is reset by XRSn or PORESETn will not be reset by debug reset. Reset source info is mentioned in register bit description. 

    5- On page 161 of the TRM, it has been mentioned that System resets (like SIMRESET.CPU1RSn for the CPU1) reset a large subset of the device but maintain some system-level configuration. What is exactly the "system-level configuration"?

    Same as last point. Anything which gets reset by XRSn or PORESETn does not get reset by this.

    7- During the options mentioned to do soft resets in these two sections of the TRM, are RAMs (LSRAMs, GSRAMs, MessageRAMs, and other types of RAMs) remain unchanged? Or will they also be reset?

    RAM should remain unchanged. 

    Regards,

    Vivek Singh

  • Hi Vivek,

    Thank you for the detailed explanation.

    No, there is no option like that. What usecase you have for that ?

    In a firmware updating use case, after updating the firmware of all three cores I need to do soft reset for each core separately. How can I do that then?

    RAM should remain unchanged. 

    So, do you mean that the only way to reset RAMs is a hardware reset? Is there any way to do soft reset for RAMs?

    And one more question, what do you suggest to perform the best way for a soft reset of all three cores after a firmware updating process of three cores?

    Best,

    Alex

  • Alex,

    In a firmware updating use case, after updating the firmware of all three cores I need to do soft reset for each core separately. How can I do that then?

    You can do that for CPU2 and CM but for CPU1 firmware update you have to reset all cores. As I mentioned earlier, CPU1 being primary CPU has control over GPIO pinmux, Shared RAM ownership which will get reset by CPU1 so it's logical to reset the other cores as well.

    So, do you mean that the only way to reset RAMs is a hardware reset? Is there any way to do soft reset for RAMs?

    From soft reset you mean clearing the RAM ? If yes, then we have RAMINIT feature which user SW can initiate to clear any RAM block. Please look in TRM for detail.

    And one more question, what do you suggest to perform the best way for a soft reset of all three cores after a firmware updating process of three cores?

    I did not understand this query. You want to reset all the cores or individual CORE (CPU2/CM) ? On CPU1 you have CPU2/CM reset control which can be used to reset CPU2 and CM and for CPU1 we have CPU1SIMRESET_CPURSn.

    Regards,

    Vivek Singh