- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have tried to perform the kernel reset for every single core (in a TC399x) following the steps described in the user manual (5.3.4.12 Independent Core Kernel Reset).
I found also this topic: https://community.infineon.com/t5/AURIX/CPU-Kernel-Reset/m-p/318329#M4186 that is performing the reset on the CPU0, but there are not references to other cores.
In my case the CPU0 is resetting correctly, but using other cores, the related CPUx seems to remain locked in an inactive state.
This is the procedure, as example, for CPU1:
unlock_wdtcon()
CPU1_KRST1.RST = 1
CPU1_KRST0.RST = 1
while(CPU1_KRST0.RSTSTAT = 0)
CPU1_KRSTCLR = 1
lock_wdtcon()
I tried to run this sequence from both core0 and core1, without solve the problem.
What am I doing wrong?
Solved! Go to Solution.
- Labels:
-
Aurix
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You need to set the PC of the core that is halted back to its start address. This has to be done from a core that is running.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
1. I tried to perform the reset using the below ILLD API. This API successfully triggered a reset of Cpu1 from Cpu0.
IfxCpu_triggerCpuReset(IfxCpu_ResourceCpu_1);
You can refer to this API from IfxCpu.c file of the ILLD.
2. As per my understanding below flow was observed at your end:
i)CPU1 was initially running
ii)After the execution of your sequence, it went to an inactive state.
This could be because CPU1 was successfully reset, and it was not restarted again. You can confirm the state of CPU1(running or inactive) before and after executing your sequence.
Best Regards.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Nambi,
1. I'll try using the iLLD API and let you know.
2. The sequence you wrote is correct. The CPU1 was successfully reset and if I break my debug session on the CPU1 it is on the start address 0xA0000000, but it seems stuck there.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You need to set the PC of the core that is halted back to its start address. This has to be done from a core that is running.