- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm using CYT4BF8CED now, I want to make sure that ipcId is 2.
Thanks,
xu
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @xu ,
Actually the comments in the screenshot you shared in your last post has the answer. Let me explain.
You mentioned that you got error code '0xF0000006' returned from system call (PollSromApiStatus value). If you see Architecture TRM, this error code refers to the condition - Client did not use its reserved IPC structure for invoking system call.
In Traveo II, system calls are always executed in CM0+ IRQ0. This is by design and can't be modified by the user. There are dedicated IPC structures for each core and DAP to invoke system calls. You are using a controller that belongs to TVII-B-H-8M family which contains one CM0+ core, two CM7 cores (CM7_0 and CM7_1) and a DAP which can initiate/trigger system calls. Please refer to the screenshot I had attached in my last response on this thread. You can see that IPC0 is reserved for system call invocation from CM0+ core, similarly IPC1 for CM7_0 core, IPC2 for CM7_1 core and IPC3 for DAP.
You are getting the error code because you are not following the above mentioned rule while invoking the system call (CallSromApi()). Based on whether your flash loader runs on any of the cores or if you are connecting an external debugger/programmer (which connects through DAP), you need to change the value of 'IpcId'. If in case you are using an external programmer to program CYT4BF8CED chip, then 'IpcId' should be 3, not 2.
Hope this clarifies your doubt.
Thanks,
Kavya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @xu ,
The question is not very clear to me.
If your question is in the context of system call invocation from different bus masters, then IPC ID = 2 (i.e. IPC structure 2) is reserved for Data Access Port (DAP) in case of Body Entry family in Traveo II. You are using CYT4BF8CED (which belongs to Body High family). This controller consists of two CM7 cores (CM7_0 and CM7_1 namely). The IPC structures reserved for system calls in this controller can be seen in the attached image.
IPC structure 2 is reserved for system call invocation from CM7_1 core. The IPC structure reserved for system call invocation by DAP is IPC structure 3 in CYT4BF8CED controllers. For more details, please refer to chapter 'Nonvolatile Memory Programming' in Architecture TRM (Document No. 002-24401).
If the interpretation of your question is not correct, then please explain/elaborate your question.
Thanks,
Kavya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @Kavya ,the programming spec(002-22035 Rev. *B) of Traveo II
I read the programming spec(002-22035 Rev. *B) of Traveo II,I would like to ask if the following function also uses the IpcId value of 2?
When IpcId = 2, PollSromApiStatus returns f0000006. How should I configure CallSromApi?
Thanks,
xu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @xu ,
Actually the comments in the screenshot you shared in your last post has the answer. Let me explain.
You mentioned that you got error code '0xF0000006' returned from system call (PollSromApiStatus value). If you see Architecture TRM, this error code refers to the condition - Client did not use its reserved IPC structure for invoking system call.
In Traveo II, system calls are always executed in CM0+ IRQ0. This is by design and can't be modified by the user. There are dedicated IPC structures for each core and DAP to invoke system calls. You are using a controller that belongs to TVII-B-H-8M family which contains one CM0+ core, two CM7 cores (CM7_0 and CM7_1) and a DAP which can initiate/trigger system calls. Please refer to the screenshot I had attached in my last response on this thread. You can see that IPC0 is reserved for system call invocation from CM0+ core, similarly IPC1 for CM7_0 core, IPC2 for CM7_1 core and IPC3 for DAP.
You are getting the error code because you are not following the above mentioned rule while invoking the system call (CallSromApi()). Based on whether your flash loader runs on any of the cores or if you are connecting an external debugger/programmer (which connects through DAP), you need to change the value of 'IpcId'. If in case you are using an external programmer to program CYT4BF8CED chip, then 'IpcId' should be 3, not 2.
Hope this clarifies your doubt.
Thanks,
Kavya