[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: IO Question
Rob:
Could you supply some more info? Specifically,
1. Are you clocking the PCI Clock with an I/O pin of the PIC?
2. Some controller chips may need a number of clocks after reset to load the
eeprom. Are you providing this?
2a. Are you resetting the chip to start off with? If so, how many clocks?
3. What particular NE2000 chip compatible chip are you using?
4. What is the PCI address to obtain the MAC address?
Dave
Rob Clark wrote:
> 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