[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

IO Question



All,

I am building single chip WWW server based on a PCI NE2000 card. As such..I
have no OS or PCI controller chip....just a PIC micro connected straight to
the PCI bus.

The following is working perfectly:

- CONFIG READ
- CONFIG WRITE
I can read and set the various config registers...including the BARs. In my
card, BAR0 requests 256 IO addresses and BAR1 requests 256 MEM addresses. I
have set these BARs as follows
BAR0 (io) =  00001000
BAR1 (mem)=  00001000   (ie same...but this should not matter??)

and I have set the CONFIG_COMMAND register to have the CMD_IO_SPACE and
CMD_MEM_SPACE bits set (all others off)

But...this is NOT working;
- IO READ
- MEM READ
In an NE2000, a read from (IO_BASE_ADDR + 00) or (MEM_BASE_ADDR+00) should
give me the NE2000 COMMAND register. In fact...I get the hardwired MAC
address for the card (ie from the on board EPROM)

So...I can not workout why I am getting back address 00 from the EPROM
instead of address 00 from the normal registers.

Ideas??

Rob