Tool/software:
Hello,
I'm currently working on pcie support for the r5f of the j784s4 and I'm running into a problem when I try to put serdes into a reset state.
When I run the following code:
print("before by en\n"); CSL_FINSR(*(volatile uint32_t *)(uintptr_t)(baseAddr + 0x404),31,31, 0x1); print("after en\n");
In trace0 of the remote core, I only have the message "before by en" printed.
The message "after by en" is missing, which indicates that the CSL_FINSR command is creating an unexpected interruption in the program's execution. Perhaps due to incorrect memory access.
We are assigning the value defined by CSL_WIZ16B8M4CT3_0_WIZ16B8M4CT3_BASE to the baseAddr of the command, because our objective is to use the pcie0 that is associated with serdes1 and the wiz1 mux.
However, we have already assigned the values defined by CSL_WIZ16B8M4CT3_1_WIZ16B8M4CT3_BASE, CSL_WIZ16B8M4CT3_2_WIZ16B8M4CT3_BASE and CSL_WIZ16B8M4CT3_3_WIZ16B8M4CT3_BASE. And with all these values we have the same behavior, an unexpected interruption of the program execution.
Apart from this, at DTS level, we have disabled the following nodes to avoid creating possible interference:
serdes0, serdes_wiz0, pcie0_rc, pcie0_ep, pcie1_rc, pcie1_ep.
Our setup: j784s4 as root complex connected to an am64x as endpoint (but the rules don't matter in the state I'm in)
Jacinto SDK: 09.01.00.22
Can you help, please? Any comments on this subject?
Best regards,
Joao Lima