reserve and initialize CSA for a task

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

cross mob
Uma
Level 1
Level 1
5 questions asked 5 sign-ins First reply posted

Dear Team,

we are facing an issue when reserved CSA for task are freed


uint32 pcxiaddr;
uint32 pcx;
uint32 Effectiveaddr;


/* Get the free CSA */
pcxiaddr = __mfcr(0xfe00);

/* get effective address */
Effectiveaddr = (((pcxiaddr) & 0x000F0000) << 12) | (((pcxiaddr) & 0x0000FFFF) << 6);

pcxiaddr = *(uint32*)Effectiveaddr;

/* get effective address */
Effectiveaddr = (((pcxiaddr) & 0x000F0000) << 12) | (((pcxiaddr) & 0x0000FFFF) << 6)

/* update FCX after reserving two CSAs */
__mfcr(0xfe38, *(uint32 *)Effectiveaddr);

with what CSA " *(uint32 *)Effectiveaddr " has to be updated with, since it contains the next CSA in FCX.

This is creating a problem because when the TASK is executed using the above two reserved CSAs, PCX is updating with address " *(uint32 *)Effectiveaddr "
Because of this there is no proper link established.

Can you please tell us how to do it.

0 Likes
1 Solution
Yuva
Moderator
Moderator
Moderator
250 replies posted 250 sign-ins 100 solutions authored

Hello,

Please refer to the IFX_SSW_INIT_CONTEXT implementation in the iLLD.

Thanks.

View solution in original post

0 Likes
1 Reply
Yuva
Moderator
Moderator
Moderator
250 replies posted 250 sign-ins 100 solutions authored

Hello,

Please refer to the IFX_SSW_INIT_CONTEXT implementation in the iLLD.

Thanks.

0 Likes