TMS320F28P650DH: CLB HLC on CPU2

Part Number: TMS320F28P650DH


Dear Experts,

I have been able to successfuly use the CLB and HLC on CPU1. It is doing what it should.
My application needs the CLB to be moved to CPU2 which I did and the CLB is working from what I can see.

To do this I needed to move ownership to CPU2 by adding the folling code on CPU1:

    SysCtl_selectCPUForPeripheralInstance( SYSCTL_CPUSEL_CLB1, SYSCTL_CPUSEL_CPU2 );
    SysCtl_setPeripheralAccessControl(SYSCTL_ACCESS_CLB1, SYSCTL_ACCESS_CPUX, SYSCTL_ACCESS_FULL);

This made it work and this is all that I could find to allow CLB1 to work on CPU2.

My question to you is that the HLC is not firing the CLB IRQ on CPU2 as it did when I set it up on CPU1. I have the interrupts enabled on CPU2 because I have an IPC toggling an LED.

I have also tested the routing of the IRQ for the CLB on CPU2 and this is also working. I added the following line on CPU2 and then the ISR is triggered as I expect it to be:

HWREGH(PIECTRL_BASE + 0x0B) |=(1<<4);

I exported the event to the LUT0 and can see that also on my scope, so I am fairly happy that CLB1 is working on CPU2.

Can you please tell me what step I am missing to enable the HLC to also work on CPU2?