Hi!
I would guess, that I/O image is too large. As you
probably know, PC based computers have separate I/O space, whose
size is only 64KB. In CRT application, the minimum image size is 16MB
(to save resources).
What you have to do is:
Set PCI_NUM_OF_DEC_ADDR_LINES 20 in
pci_user_constants.v.
This will give you a minimum image size of
4KB.
Set PCI_AM2 20'hFFFF_F.
This should help.
You also have to be careful about memory mapped
images here.
Set PCI_AM0 20'hFFFF_F also.
Set PCI_AM1 to the value, that will represent the
size of an image you want.
That would be:
20'hFFFF_F for 4KB
20'hFFFF_E for 8KB
20'hFFFF_C for 16KB
.
.
20'hFFF0_0 for 1MB
20'hFFE0_0 for 2MB
etc..
Hope this works!
Let me know, because we haven't been testing I/O
accesses in hardware yet!
Regards,
Miha Dolenc
----- Original Message -----
Sent: Thursday, September 12, 2002 8:09
PM
Subject: [pci] IO Mapping Trouble
I have been successfully using the OpenCore PCI
core in a Spartan-2 200k part. I have been able to access configuration
space directly and through the memory mapped image, I also am able to access
a memory mapped image.
My only problem comes in when I try to add an
additional PCI image that uses an IO mapping, instead of a Memory
mapping.
I get an error message at boot time
saying:
PCI I/O Port Conflict: Bus 00, Device 0F,
Function 00
I press escape to continue booting into
Linux. Once the machine has finished booting, the results of lspci -v
are:
00:0f.0 Bridge: Unknown device 2321:0001 (rev
01) Flags: medium devsel, IRQ 9 Memory at fe000000 (32-bit,
non-prefetchable) [disabled] [size=16M] Memory at f7000000 (32-bit,
non-prefetchable) [disabled] [size=16M] I/O ports at
<unassigned> [disabled]
When I don't include the IO space image, region 0
and region 1 are fully functional.
The changes that I make in pci_user_constants.v
over the default crt application version are:
`define PCI_IMAGE2
`define PCI_BA2_MEM_IO 1'b1
Information and/or suggestions are greatly
appreciated.
|