I am working with 2 C6457s directly connected through SRIO.
DSP1 boots from flash memory and copies the program for DSP2 to
the start of L2. A doorbell is sent to wake up DSP2 which should start
executing from L2.
DOORBELL_INTR_0_DOORBELL_ICSR has bit 0 set
DOORBELL_INTR_ROUTE_0_DOORBELL_ICRR routes this bit to INTDST0
INTDST0_DECODE has bit 0 set
and this triggers EVTFLAG_0 (Event 20).
Event 20 through INTMUX1 should set INT4.
IER is however 0x00000001 which means INT4 is masked, and thus my doorbell
never gets there.
**********************************
Tests:
1.
Using CCS I can set the program counter to start of L2 and the program
runs as expected. This leads me to the conclusion that SRIO works fine
including the Doorbell.
2.
Running the example code for the C6457 EVM (SrioBoot) I can see that the
IER is set to 0x00000043. This indicates to me that INT6 is enabled and that
INTMUX1 should route event 20 to INT6 rather than INT4 as I am observing.
3. Reading the GPIO using CCS with no program loaded I observe that the only
difference between the EVM and my setup is the HPI bus width. 32(EVM) vs
16. This leads me to beleive that the bootload in L3 rom should initialize
the board in the same way. (But it is not...).
************************************
Questions:
1. I am wondering what affects interrupt enable setting during startup.
Are there other factors than the GPIO defined bootmode?
(SRIO Boot mode 11 - Config 1)
The reason for this question is that the EVM and my board has the same
bootmode, but different IER.
2. Are there any way that I could set IER, ISR or even PC in DSP2 from DSP1?
Any help with this issue would be greatly appreciated.