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?