06-06-2016 10:45 PM
I am trying to use, what would be the Linux serial console, in a FreeRTOS remote application. The problem is getting the interrupts working. Use of the UART has been totally disabled on the Linux side. The serial port has been disabled in the device tree. When FreeRTOS comes up it configures the serial port and performs a loopback test. Everything seems fine but the interrupts are never received. I even tries to force the IRQ routing by:
XScuGic_InterruptMaptoCpu(&xInterruptController, 1, 82);
I even tried adding "clk_ignore_unused" in the bootargs. It didn't fix the problem and caused Ethernet to fail?...
06-21-2016 10:15 AM
For Those Who May Be Interested....
void XScuGic_InterruptMaptoCpu(XScuGic *InstancePtr, u8 Cpu_Id, u32 Int_Id)
u32 RegValue = XScuGic_DistReadReg(InstancePtr,
XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id)); u32 Offset = (Int_Id & 0x3); RegValue = (RegValue & (~(0xFF << (Offset*8))) ); RegValue |= ((Cpu_Id+1) << (Offset*8)); XScuGic_DistWriteReg(InstancePtr, XSCUGIC_SPI_TARGET_OFFSET_CALC(Int_Id), RegValue);
For the particular problem of using the serial port, which is normally assigned as the Linux console:
I hope this was useful.