Forum: FPGA, VHDL & Co. Spass mit xpc4drv, windrvr6 und 2.6.18


von olf (Gast)


Lesenswert?

Servus,
ich versuche gerade seit Stunden den ISE Webpack ans Laufen zu 
kriegen...
Hatte ihn auch schon mal am Start, mit den Treibern von Xilinx (xpc4drv) 
und dem aktuellen windrvr6 von Jungo.
War schon damals ne Qual mit rumgepatche und so...
Nur jetzt geht garnix mehr! Die Module kompilieren zwar, lassen sich 
aber nicht laden.
Die Tipps die ich gefunden habe bringen wenig bis nicht, da sie sich auf 
eine ältere Kernelversion stützen. Ich hab 2.6.18 am laufen.
Jetzt die Gretchenfrage:
Ist hier jemand mit Kernel jünger als 2.6.12 (da gings nämlich noch bei 
mir;) ) und hat dieser hypothetische Jemand den Kram am laufen?
Der Erste kriegt auch ne Kiste Bier! (wenns denn auch reproduzierbar 
ist. Sein Vorgehen, nicht das Bier)

jute Nacht wünsch ich denn mal...

von olf (Gast)


Lesenswert?

---------
Symbol usb_register_driver is being used by a non-GPL module, which will 
not be allowed in the future
Please see the file Documentation/feature-removal-schedule.txt in the 
kernel source tree for more details.
---------
---------

What:  USB driver API moves to EXPORT_SYMBOL_GPL
When:  Febuary 2008
Files:  include/linux/usb.h, drivers/usb/core/driver.c
Why:  The USB subsystem has changed a lot over time, and it has been
  possible to create userspace USB drivers using usbfs/libusb/gadgetfs
  that operate as fast as the USB bus allows.  Because of this, the USB
  subsystem will not be allowing closed source kernel drivers to
  register with it, after this grace period is over.  If anyone needs
  any help in converting their closed source drivers over to use the
  userspace filesystems, please contact the
  linux-usb-devel@lists.sourceforge.net mailing list, and the developers
  there will be glad to help you out.
Who:  Greg Kroah-Hartman <gregkh@suse.de>
---------

Ach, das ist doch zum ko***n
Ich geh jetzt heulen.

von Fpgakuechle K. (Gast)


Lesenswert?

Also den Webpack habe ich hier bequem am Laufen unter:
  (uname -a) -> linux 2.6.16.13-4

Allerdings meinst Du wohl nicht das Webpack als Designflow, sondern 
impact zum Download?! Ich hatte vor ca 11 Monaten das Parallelport Kabel 
aus dem Spartan3 Starterkit am Laufen, der windriver Jungo war 
entscheident. Hat dennoch Stunden gedauert. So im Herbst habe ich mal 
wieder einen FPGA laden wollen, hatte aber inzwischen Linux geupdatet 
(auf die obenen genannte Version). Nach ca. 2 h habe ich es aufgegeben. 
Jetzt werde ich mir ne Windowskiste wegen dem blöden Parallelport 
zulegen müssen }:-(  .

Aber vielleicht findet sich doch einer Lösung. Ich würde dann ebenfalls 
nen Kasten Bier sponsern (wenns bei mir unter dem genannten läuft). Oder 
das Equivalent an ProSecco, wir sind hier keine Chauvies.

von Jens B. (sio2)


Lesenswert?

Linux  2.6.16
also:
wget 
ftp:ftp.xilinx.com/pub/utilities/M1_workstation/linuxdrivers.2.6.tar.gz

entpacken, und den xpc4drv kompilieren (siehe Readme ;) ist einfacher 
dreisatz afair)
beim win6drv makefile nach dem ./confgure anpassen

CFLAGS = -c -O2 -Wall -D"KBUILD_STR(s)=\#s" 
-D"KBUILD_BASENAME=KBUILD_STR(windrvr6)" -DLINUX -D__KERNEL__ -DMODULE 
-DWINDRIVER_KERNEL -DLINUX_USB_SUPPORT -mpreferred-stack-boundary=2 
-nostdinc -iwithprefix include -Wstrict-prototypes -Wno-trigraphs 
-fno-common -pipe -D"KBUILD_MODNAME=KBUILD_STR(windrvr6)" -O 
-I/lib/modules/2.6.16-gentoo-r1/source/include 
-I/lib/modules/2.6.16-gentoo-r1/source/include/asm/mach-default 
-I/root/linuxdrivers.2.6/WinDriver/include 
-I/root/linuxdrivers.2.6/WinDriver -fno-strict-aliasing

!!nicht vergessen hier noch eure pfade anzupassen. es muss keine 
gentoo-kernel sein, ich nutze vanilla-sources.
die module mach /lib/mocules/misc kopieren und fettich.
um die devices noch zu erstellen muss folgendes in ein initscript oder 
von hand gestartet werden, vor aufrupf von impact

insmod /lib/modules/misc/windrvr6.ko
set -- $(grep windrvr6 /proc/devices)
rm -f /dev/windrvr6
mknod -m 0666 /dev/windrvr6 c $1 0
insmod /lib/modules/misc/xpc4drvr.ko
set -- $(grep xpc4drvr /proc/devices)
for i in 0 1 2 3
do
        rm -f /dev/xpc4_$i
        mknod -m 0666 /dev/xpc4_$i c $1 $i
done



ich verschweige einfach mal, das ich probleme mit mehrfach 
hintereinander programmieren habe, wenn auf meinem schlepptopp pcmcia 
gestartet ist. hab nen extra kernel ohne pcmciaunterstuetzung. ka genau 
was da das problem ist. er erkennt das kabel nmicht mehr,. er findet es 
nur noch und sagt es ist belegt. ohne pcmcia gehts 1a

ps: radeberger, köstritzer, eibauer oder torgauer ritter dunkel sind so 
meine favoriten. na denn prost ;)

von Jens B. (sio2)


Lesenswert?

Für USB sollte das hier gehen, aber nicht getestet, hab parallelkabel
http://inisyn.org/src/xup/

von olf (Gast)


Lesenswert?

Vielen Dank für die Antworten!

@Jens B:
Ich schätze mal, du hast die selbe Quelle wie ich benutzt? ;)
Aber leider lassen sich die Module nicht laden.
Das mit "USB driver API moves to EXPORT_SYMBOL_GPL" war Schwachsinn, 
steht ja 2008 dabei. War spät gestern.
Außerdem hab ich das Parallel Cable...
XUP bringt mir daher nichts, sorry das ich mich nicht klar ausgedrückt 
hab.
@Fpga Kuechle:
Ja, ich meine Impact und das Parallel Cable III (oder wegen mir auch 
vier)
Das entschuldige ich ebenfalls mal mit der Uhrzeit ;)
WebPack an sich war flott installiert und läuft wunderbar.

So und jetzt hab ich gerade nochmal wachen Geistes in dmesg geguckt und 
siehe da:
-------
BUG: warning at lib/vsprintf.c:280/vsnprintf()
 [<c0204a35>] vsnprintf+0x5c5/0x5d0
 [<c018d687>] sysfs_create+0xa7/0xe0
 [<f1116ee0>] LINUX_printk+0x2c/0x42 [windrvr6]
 [<f111a7de>] init_module_cpp+0x4e/0x80 [windrvr6]
 [<f1116fb9>] init_module+0xc/0x78 [windrvr6]
 [<c01251fe>] blocking_notifier_call_chain+0x2e/0x40
 [<c0133213>] sys_init_module+0x153/0x1860
 [<c0102c4d>] sysenter_past_esp+0x56/0x79
init module failed status: -1
-------
Das produziert der Versuch, windrvr zu laden.
Mal schaun was google dazu sagt ;(

von T.M. (Gast)


Lesenswert?

Ich nehme zum Programmieren den XC3PROG der OpenSource ist. Er kann von 
Haus aus Spartan-3, mit geringer Anpassung im Sourcecode auch Virtex-2. 
Ich habe das mit den windrv auch nicht hinbekommen und nach mehreren 
Stunden aufgegeben. Mit dem XC2PROG geht es einwandfrei, einfach die 
Sourcen ziehen bei Sourceforge und kompilieren. Ich kann nochmal 
schauen, welche Zeile ich in welcher Datei ich angepasst habe, damit 
auch V2 programmiert werden können.

T.M.

von daniel (Gast)


Lesenswert?

gibt es irgendwo eine kleine doku oder tutorial zu XC3PROG?
die bitfile erzeugt es ja nicht oder?

von T.M. (Gast)


Lesenswert?

Bitfiles erzeugt man mit bitgen aus der ISE-Suite.

Naja, Tutorial zu einem Programm was nur eine Handvoll Optionen hat...
Ich glaube es gab detect, program und noch eine Option. Ich schau dann 
zH mal nach, ich fand es relativ einfach. Da gab es eine ASCI-Liste mit 
unterstützden FPGAs und deren IDs. Wenn man einen nichtunterstützen FPGA 
an der Leitung hatte, gab er dessen ID zurück. Damit hab ich dann 
einfach die ID als meinen benutzten V2 in die Liste eingetragen (V2 und 
S3 haben ähnliche Architektur) Und schon konnte ich auch V2 
programmieren.

von Fpgakuechle K. (Gast)


Lesenswert?

<ps: radeberger, köstritzer, eibauer oder torgauer ritter dunkel sind so
<meine favoriten. na denn prost ;)

Ich probiers mal am wochenende aus. Wenns nicht gleich funzt, werd ich 
wohl den Kasten beim Installieren selber leeren müssen ;-)

von Jens B. (sio2)


Lesenswert?

@olf: Das problem hatte ich auch. Kann es sein, dass du die Reihenfolge
./configure
makefile anpassen
make

nicht eingehalten hast? ich weiss nicht mehr wie ich es gelöst habe, 
aber ich habe das problem nicht mehr

von Uwe Bonnes (Gast)


Lesenswert?

Das sch**ss Windriver Module ist eine stete Quelle von Frustationen.
Unter Linux waere es mit libusb und ppdev wunderbar zu erschlagen, aber 
irgendwelche Xilinx Leute meinen dafuer kommerzielle Software einkaufen 
zu muessen...

von Jens B. (sio2)


Lesenswert?

Ich kann auch nicht verstehen, wieso die nicht einfach nen treiber 
freigeben. wenn ich die daten mitloggen will, kann ich es auch am jtag 
machen, also kanns kein geheimnis sein. und die bieten ja auch nicht 
erst sein 3 tagen ne linux version an

von olf (Gast)


Lesenswert?

Hurga!
Dem geht! 200 Puls bald...

Falls es jemanden interessiert, ich bin im wesentlichen den 
Informationen auf
http://gentoo-wiki.com/HOWTO_Xilinx
gefolgt.
Allerdings gings danach auch nicht und ich hab hier gepostet.
Jetzt hab ich aber noch ein bisschen 
rumgespielt/gegoogelt/geraucht/gehasst und sehr wahrscheinlich liegt der 
Knackpunkt in der Kernelkonfig, die sollte nämlich so aussehen:
-----------------------------------------
# Loadable module support
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y

# Parallel port support
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
-----------------------------------------

Gott zum Grusse!

von olf (Gast)


Lesenswert?

Oh ja, fast vergessen.
Man sollte sich auch nicht nach dem Xilinx Installer richten und die 
selbst kompilierten Module nach /lib/modules/misc legen. Da findet sie 
nämlich modules-update nicht.
Lieber nach "/lib/modules/`uname -r`/misc" schieben. Oder halt mit 
depmod rumfrickeln.

von olf (Gast)


Lesenswert?

@ Jens B.
Nöö, das makefile hab ich schon angepasst. Zumindest anfangs.
Jetzt gehts auch mit den Orginal CFLAGS, warum auch immer.

von Rick Dangerus (Gast)


Lesenswert?

Ich hab hier 2.6.17 mit impact und ParallelCable am Laufen. Man musste 
m.E. den allerneusten WinDriver nehmen, nicht den der bei Xilinx dabei 
ist.

HTH
Rick

von T.M. (Gast)


Lesenswert?

Wie gesagt, mit dem xc3sprog gehts auch. Zumal mal wie ich gelesen habe, 
bei dem windriver mit jedem neuen Kernel den Spass neu aufsetzen darf, 
das kann man sich auch gut sparen...

von olf (Gast)


Lesenswert?

Ja schon, die WinDriver sollt man direkt von jungo nehmen, die von 
Xilinx sind zu alt.
Aber das ganze Parallelport Zeug muss als Module kompiliert sein. Das 
hatte ich halt vergessen bzw. hatte zu Anfang aus Ordnungssinn alles 
fest einkompiliert. Und dann produziert WinDriver recht sinnbefreite 
Fehlermeldungen.
Vielleicht hilfts ja noch jemandem ;)

von Fpgakuechle K. (Gast)


Lesenswert?

T.M. wrote:
> Ich nehme zum Programmieren den XC3PROG der OpenSource ist. Er kann von
> Haus aus Spartan-3, mit geringer Anpassung im Sourcecode auch Virtex-2.

Hm, ich wollt hier ein XC95xxx board programmieren, da nützt mir des net 
viel. Oder sind Anpassungen an den CPLD bekannt?

von olf (Gast)


Lesenswert?

Ich hatte danach gesucht, aber nix gefunden.
Falls du da etwas in Erfahrung bringst, wäre es nett, wenn du hier 
bescheid geben würdest!
Gruss

von T.M. (Gast)


Lesenswert?

Mhm, in der Devicelist von xc3sprog steht folgendes:

# IDCODE    IR Length  Text
0140d093  6  XC3S50
01414093  6  XC3S200
0141c093  6  XC3S400
01428093  6  XC3S1000
01434093  6  XC3S1500
01440093  6  XC3S2000
01448093  6  XC3S4000
01450093  6  XC3S5000
05045093  8  XCF02S
00608093  5  XC2S15
0060c093  5  XC2S30
00610093  5  XC2S50
00614093  5  XC2S100
00618093  5  XC2S150
0061c093  5  XC2S200

Ich habe sie noch um meinen XC2V250 erweitert, indem ich einfach den 
IDcode mit dem Programm ausgelesen und dann in die Liste eingetragen 
habe. In diversen Foren habe ich gelesen, dass man auch PROMs 
programmieren kann, oder zumindestens, dass es der Ersteller des 
Programms geschafft hat. Zu finden unter: 
http://www.rogerstech.co.uk/xc3sprog/index.html



T.M.

von Uwe Bonnes (Gast)


Lesenswert?

@fpgakuechle:
Nein, xc3sprog kann nicht mit CPLDs umgehen. Allerdings gibt es in der 
letzten Quelloffenen Version on naxjp (0.79) JTAG Code zum Programmieren 
von XC95 und XC2. Die Kommentare sind allerdings auf Japanisch, die 
Herkunft der Algorothmen ist unklar, evt. vielleicht mit NDAs vom 
Programmautor erworben. Ab 080 gibt es ja nur noch Binaermodule.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.