This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

cPCI communication error

We have  two C6455 DSP's and a processor connected via PCI  Local bus interface

Where one DSP is the master/host and other DSP & processor will be the peripherals.

AD31 is used for DSP2 and AD30 is used for the processor as IDSEL

Following are the settings done at the master side.

1)  "BUS_MS" bit  is set in the PCICSR register

2) Configuration read as below

unsigned int pci_read_config (int addr, int busno, int devno, int funcno)
{
unsigned int bno_bit = (busno << 16);
unsigned int dno_bit = (devno << 11);
unsigned int fno_bit = (funcno << 8);
unsigned int adr_bit = (addr & 0xfc);

/* Check READY bit */
while(1)
{
if(*PCIMCFGCMD & 0x80000000)
break;
}

*PCIMCFGADR = 0x80000000 | bno_bit | dno_bit | fno_bit | adr_bit;
*PCIMCFGCMD = 0x00000001;

/* Check READY bit */
while(1)
{
if(*PCIMCFGCMD & 0x80000000)
break;
}
return *PCIMCFGDAT;
}

Following are the observation/issues.

1) while performing configuration read (Type 1) , for any device number  from 0x0 to  0x1F  DSP 2 is responding

2) If unplug the DSP2 from the backplane , then PCIMCFGCMD register's READY bit will never set to one in the first loop itself

Please suggest if any setting needs to be done at the master and slave side.

Regards,

Mithun