Hi There:
I'm using the TMS320DM648 DVDP evaluation board and I'm trying to make that the DSP generates a PCI interrupt for the host. I'm using a sample program that comes with the pspdrivers however I can not generate the interrupt. I'm using the following code:
status = PAL_sysPCIGetMemMapReg(pciHandle,
PAL_SYSPCI_STATUS_SET,
PAL_SYS_PCI_READ_WRITE_SIZE_WORD,
&interruptStatus);
if(PAL_SOK != status)
{
PCI_DEBUG("ERROR: Unable to write the memory mapped configuration register while interrupt genration\n");
return;
}
/*
* Set DSPINT bit in memory mapped status set register
*/
interruptStatus = interruptStatus | (0x01000000u);
/*
* Write the status set register to trigger interrupt
*/
status = PAL_sysPCISetMemMapReg(pciHandle,
PAL_SYSPCI_STATUS_SET,
PAL_SYS_PCI_READ_WRITE_SIZE_WORD,
interruptStatus);
if(PAL_SOK != status)
{
PCI_DEBUG("ERROR: Unable to write the Backend configuration register while interrupt genration\n");
return;
}
After runing this piece of code, the value of the PAL_SYSPCI_STATUS_SET register is still the same as it was read before.
1.- What am I missing?
2.- Also, the original example ORs the interruptStatus variable with (0x80000000u) instead. Why? According to the SPRUEL4 (PCI User's Guide) the interrupt are located on bits 24-27, and bit 31 is reserved.
Thanks;
Gabriel