Tool/software: Code Composer Studio
Hi~
i'm trying to comunication test EVM1(C6678) <-> EVM2 (C6678) with hyplnk_evmc6678_C66BiosExampleProject.
i run hyplnk_evmc6678_C66BiosExampleProject. in EVM1 and EVM2.
Basically, when running the example using only core0 on both EVMs, it worked fine without any problems.
Two chips that wake up all the cores in each DSP are connected by hyperlink.
and I want to use ipc between cores in one chip and hyperlink between chips.
so, i modified hyplnk_evmc6678_C66BiosExampleProject.
1. .cinit : in cofiguration file, L2SRAM -> MSMCSRAM
2. To run only when DNUM is 0, added main.c ( in EVM_init(), enable all cores) and modified main() -> hyplnk_main() thread in hyplnk_evmc6678_C66BiosExampeProject
CASE1 : EVM1[8core up] <-> EVM2[8core up]
result : "Fatal error detected"
"Fatal error detected" occurs during hyperlink test only when both EVM1 and EVM2 cores are used.
It was based on the basic example, but I do not know which part to modify, so I contact you...
log is below
------------------------------------------------------------
[C66xx_0] About to do system setup (PLL, PSC, and DDR)
Power domain is already enabled. You probably re-ran without device reset (which is OK)
Constructed SERDES configs: PLL=0x00000228; RX=0x0046c495; TX=0x000ccf95
system setup worked
About to set up HyperLink Peripheral
============================Hyperlink Testing Port 0
========================================== begin registers before initialization ===========
Revision register contents:
Raw = 0x4e901900
Status register contents:
Raw = 0x00000004
Link status register contents:
Raw = 0x00000000
Control register contents:
Raw = 0x00000000
Control register contents:
Raw = 0x00000000
============== end registers before initialization ===========
Waiting for other side to come up ( 0)
SERDES_STS (32 bits) contents: 0x03078d1b; lock = 1
Waiting for other side to come up ( 1)
============== begin registers after initialization ===========
Status register contents:
Raw = 0x04402005
Link status register contents:
Raw = 0xccf00000
Control register contents:
Raw = 0x00006204
============== end registers after initialization ===========
Waiting 5 seconds to check link stability
Analyzing the connection for each lane
Precursors 1 Analysis: 0,1,0,1,0,1,0,1
Postcursors: 19 Analysis: 1,0,1,0,1,0,0,1
Link seems stable
About to try to read remote registers
============== begin REMOTE registers after initialization ===========
Status register contents:
Raw = 0x0440200b
Link status register contents:
Raw = 0xfdf0bdf0
Control register contents:
Raw = 0x00006204
============== end REMOTE registers after initialization ===========
Peripheral setup worked
[hyplnk_main:735] entry...(DNUM:0)
Version #: 0x02010008; string HYPLNK LLD Revision: 02.01.00.08:Oct 26 2020:13:53:37
About to read/write once
About to read/write once
Fatal error detected <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< FATAL ERR
Local fatal isr status.lError = 1
Local fatal isr status.rError = 1
Local fatal isr ECCErrors.dblErrDet = 1
------------------------------------------------------------
CASE2 : EVM1[core0 only up] <-> EVM2[8core up]
result : hyperlink test SUCCESS.
My goal is to get hyperlink working properly in CASE1.
but, I can't understand why the things I set up to use all cores are a problem.
Is there an error due to master/slave configuration when using hyperlink? ( example is hyperlink master mode. is it correct?)
If the master/slave configuration is the cause, I wonder how to set one EVM to slave mode.
Attach the modified code.
1. core0 only :
2. 8 cores up :