problem with PCI interface

Dragon

problem with PCI interface

Postby dirp » Thu Jun 18, 2009 4:45 am

Hi, all.

My dragon board finally comes right in my hand. This is a very nice board i think.

Unfortunately, I got problem using the board as a PCI card.

First, I plugged the dragon board into a free PCI slot. I loaded the plug & play bit stream file example named PCI_PnP.100K.bit shipped with the board using FPGAconfigurator software. Then I scan any hardware change in device manager, but nothing happened. The operating system doesn't detect any new device.

I also generated the bit file from the example Verilog code and the ucf file inside PCI P&P folder using Xilinx ISE 9.1, loaded the bit file, but the result is the same.

I generated another bit file from IORAM project folder, loaded the bit file, and once I launched the IOtest software and hit the read button, it gives me "privileged instruction" message.

The other bit file example such as ledglow.100k.bit and ledblink.100k.bit work fine as well as a code I wrote doing the counting LED.

I plug a USB 2.0 PCI card next to the Dragon board on the PCI slots and it runs normally. The device manager could detect the card but not my dragon board.

I have read and followed all the instruction on the dragon's manual and still give no clue. Can anybody give me some advice about this problem?

FYI these are what I use:
- Dragon board rev.E from KNJN
- ASUS P5KPL-CM mainboard with Intel Core2Duo processor and Intel 82801 PCI bridge controller on the board
- Windows XP SP2
- Xilinx ISE 9.1i
- FPGAconf.exe
- IOtest.exe

thank's

-dianirfan-
dirp
 
Posts: 5
Joined: Thu Jun 18, 2009 3:33 am
Location: Indonesia

Postby fpga4fun » Thu Jun 18, 2009 3:03 pm

It is likely that the BIOS disable the PCI clock. So you may have to configure the FPGA and then reboot the computer to let the BIOS detect the board. See also chapter 6.4 from the documentation.

For the "privileged instruction", that's normal with Windows XP or Vista. Check http://www.fpga4fun.com/PCI2.html (section "Device driver").
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Postby dirp » Mon Jun 22, 2009 6:34 am

Hi, thank you for the quick reply.

To check whether the clock is running or not, i did a little experiment.
I wrote a code which control the three LEDs to do the binary counting. Instead of taking the clock from the USB 24Mhz clock, I assigned the clock at pin 91 which is the PCI 33Mhz clock. The three LEDs is still counting like usual, now with faster speed. From this experiment we know that the PCI clock is ticking, right.

I follow the instruction at this link http://www.fpga4fun.com/PCI2.html. I simply install the UserPort driver and now I can use the PCI IO RAM design with IO test software. Thank you.

But, I still cannot use the Plug & Play design or the example PCI_PnP.100K.bit file. The OS doesn't detect any plug & play compliant device at device manager. What else do I miss?

Thank you for the help.
dirp
 
Posts: 5
Joined: Thu Jun 18, 2009 3:33 am
Location: Indonesia

Postby fpga4fun » Mon Jun 22, 2009 9:01 am

Ok, so the clock is fine.
Make sure the PC boots when the FPGA is configured with the PCI_PnP design. One easy way is to configure the boot-PROM with the design and then power cycle or reboot the PC.

If it still doesn't work, try in another PC, or send the dragon board back to KNJN and they'll test it.
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Postby dirp » Wed Jun 24, 2009 2:21 am

hello again,

My Dragon board still not recognized by Host PC. but I found something interesting. I used the tools provided at Craig's website. It is a bash shell tools which is able to enumerate all PCI devices and show their properties. This is what I got from Craig's PCI program for my USB PCI card:

[b] Bus 3 (PCI), Device Number 1, Device Function 0
Vendor 1106h VIA Technologies Inc
Device 3038h VT82xxxxx UHCI USB 1.1 Controller (All VIA Chipsets)
Command 0017h (I/O Access, Memory Access, BusMaster, MemWrite+Invalidate)
Status 0210h (Has Capabilities List, Medium Timing)
Revision 62h, Header Type 80h, Bus Latency Timer 20h
Self test 00h (Self test not supported)
Cache line size 32 Bytes (8 DWords)
PCI Class Serial, type USB (UHCI)
Subsystem ID 30381106h Unknown (Generic ID)
Subsystem Vendor 1106h VIA Technologies Inc
Address 4 is an I/O Port : 0000E880h
System IRQ 16, INT# A
New Capabilities List Present:
Power Management Capability, Version 1.1
Supports low power State D1
Supports low power State D2
Supports PME# signalling from mode(s) D0, D1, D2, D3hot
PME# signalling is currently disabled
Current Power State : D0 (Device operational, no power saving)

Hex-Dump of device configuration space follows:
0000 06 11 38 30 17 00 10 02 62 00 03 0C 08 20 80 00 ..80....b.... €.
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020 81 E8 00 00 00 00 00 00 00 00 00 00 06 11 38 30
dirp
 
Posts: 5
Joined: Thu Jun 18, 2009 3:33 am
Location: Indonesia

Postby fpga4fun » Wed Jun 24, 2009 2:32 am

Not sure if it read correctly bytes 10 and 11... what are these 80 and 08 values?

Please do not post copyrighted code on the forum.
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Postby dirp » Wed Jun 24, 2009 4:55 am

I really sorry about the code.

As far as I know, byte 09, 0A, and 0B are encoded as class code (http://en.wikipedia.org/wiki/PCI_Configuration_Space).

KNJN gives the value of these bytes as 00, 80, and 08. The rests of the configuration space is almost 00 and a few 01 but not FF.
dirp
 
Posts: 5
Joined: Thu Jun 18, 2009 3:33 am
Location: Indonesia

Postby fpga4fun » Wed Jun 24, 2009 5:01 am

You're right.
Could you change the Device ID, maybe that would help.
Or try the board in another PC?
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am


Return to PCI FPGA board