I have created a board with two C6455.
I'm connected by PCI between the C6455.
Let me be the one Master.
fail to be carried out in accordance with the PCI Configuration sprue60 9.1.1.
It is set in the following manner, but how will it wrong.
----------------------------------
#define PCIMCFGDAT ((unsigned int*)0x02C00300)
#define PCIMCFGADR ((unsigned int*)0x02C00304)
#define PCIMCFGCMD ((unsigned int*)0x02C00308)
busno = 0;
devno = 0;
funcno = 0;
addr = 0;
bno_bit = (busno << 16);
dno_bit = (devno << 11);
fno_bit = (funcno << 8);
adr_bit = (addr & 0xfc);
/* Check READY bit */
while(1)
{
if(*PCIMCFGCMD & 0x80000000)
{
break;
}
}
*PCIMCFGDAT = 0xB000104C;
*PCIMCFGADR = 0x80000000 | bno_bit | dno_bit | fno_bit | adr_bit;
*PCIMCFGCMD = 0x000000F1;
/* Check READY bit */
while(1)
{
if(*PCIMCFGCMD & 0x80000000)
{
break;
}
}
----------------------------------
The problem occurs in Check READY bit of the second.
There seems to be no end bit.
Thank you everyone.
