CYT4BF8CED

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
xu
Level 1
Level 1
5 replies posted 25 sign-ins 5 questions asked

Hi,

I'm using CYT4BF8CED now, I want to make sure that ipcId is 2.

xu_0-1659325229700.png

xu_1-1659325262367.png

Thanks,

xu

 

 

0 Likes
1 Solution
Kavya_B
Moderator
Moderator
Moderator
100 replies posted 10 likes given 25 solutions authored

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

View solution in original post

3 Replies
Kavya_B
Moderator
Moderator
Moderator
100 replies posted 10 likes given 25 solutions authored

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.

IPCs_reserved_for system_calls.JPG

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

0 Likes
xu
Level 1
Level 1
5 replies posted 25 sign-ins 5 questions asked

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? 

xu_0-1659334879276.png

xu_1-1659335598027.png

When IpcId = 2, PollSromApiStatus returns f0000006. How should I configure CallSromApi?

Thanks,

xu

 

0 Likes
Kavya_B
Moderator
Moderator
Moderator
100 replies posted 10 likes given 25 solutions authored

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