Hallo Leute, ich habe ein Problem beim Erzeugen der „JTAG Indirect Configuration File (.jic)“ mit meiner Nios II Hardware und dessen Software. In meinem Design sind fünf NIOS II Controller eingebettet. Diese sollen nun mit einem .jic-File programmiert werden und die Software von den fünf NIOS II Controller enthalten. Für einen ersten Test habe ich für einen der fünf NIOS ein .jic-Files nach der Anleitung (vgl. http://www.altera.com/support/kdb/solutions/rd10132010_126.html) erzeugt. Die Konvertierung funktioniert soweit, jedoch startet die NIOS-Software nicht. Nun meine Fragen ;-): --------------------- Kann das nichtstarten der NIOS-Software daran liegen, dass nicht bekannt ist zu welchem NIOS die Software gehört? Oder ist die Dazugehörigkeit: „Software <-> NIOS“ im .sof- bzw. .elf-File hinterlegt? Außerdem würde ich gerne wissen, wie man fünf NIOS-Software in ein .jic-File packt. In der Anleitung ist ein solcher Fall nicht aufgezeigt. Hat hierzu jemand eine Idee? Vielen Dank für eure Hilfe! Viele Grüße, ASott
Base Full erased ...Base (aufpassen nacher die Hacken non-erase machen,sonst ist die Base Kernel mit weg...) Du must mit "enhanced mode" 'option den Boot-Kernel erst mal da jeweils installen. Dann wird mit dem enh-Boot-Base Kernel nachgeladen. also.Kernel-base+.['Modul-Bit-File] . Das sind also 2 Schritte, bei dem du aufpassen musst, die Base nicht im 2ten Schritt zu 'erasen. Ich suche dir ein Video Tut noch raus. Tip: Blätter da mal die Menues enhanced mode und der enhanced superwiser mode sozusagen ist das gestrickt. Und das mit in der Chain 'a #5 Module -->[][][][][].-->JTAG sei dank. Ich suche dir ein Video Tut noch raus. ist aber auf Türkisch, aber die Bilder sagen ja mehr als tausend Worte. Gruss Holger.
Solution ID: rd12092009_471 Last Modified: Nov 08, 2010 Product Category: Embedded Product Area: Hardware Development Product Sub-area: Configuration/Booting Title How do I create a .jic file with my Nios II hardware and software image? Description The method used to create a .jic file with a Nios® II hardware and software image is as follows. 1. Create a flash file for the hardware and software image sof2flash --input=<hwimage>.sof --output=hwimage.flash --epcs --verbose elf2flash --input=<elf file>.elf --output=swimage.flash --epcs --after=hwimage.flash --verbose Note: When creating the software flash image, there is no need to add a boot srec (this is located in the EPCS Controller), the --after option ensures the software image starts immediately after the hardware image. 2. Convert the flash images into Hex files nios2-elf-objcopy -I srec -O ihex hwimage.flash hwimage.hex nios2-elf-objcopy -I srec -O ihex swimage.flash swimage.hex 3. When creating your jic file using Quartus® II Convert Programming File tool, add the Flash Loader and both hex files with absolute addressing option selected. Note: You do not need to add the .sof file to the jic image. This is because you created a hardware hex image. Using the hardware hex image ensures the software hex image is at the proper offset in the EPCS. LINK: http://www.altera.com/support/kdb/solutions/rd12092009_471.html PS. Google mal nach Cubic Cyclonium, da ist ein Ref-Design. Aber es ist auch im Netz als andere Variante verfügbar.. Ich habe mit das Teil + die CD dazu gekauft. Da ist ein alter SOC mit EP1C6F256 drin. 0x8000 ist die Map-Addr ... ---------------------------------------------- Gruss Holger. Das Video mach ich noch nachher rein.
Hallo Holger, vielen Dank für deine Infos! Hört sich alles etwas komplizierter an... und ich weiß im Moment noch nicht genau wie ich es nach deinen Infos bewerkstelligen soll. Aber wird mir bestimmt mit dem Video-Tutorial klarer... Aber schonmal vielen Dank für die bisherigen Infos :-) Gruß MemY
Der Titel: SOPC Builder ile SOC Tasarimi Drei JTAG modis: Factory default , Factory default enhanced Das Video http://www.youtube.com/watch?feature=player_detailpage&v=XtpjxPTx1YY Bitte vorspulen auf 01:58 ... and the JTAG indirect mode at 01:58 in the Video Operation of a IEEE 1149.1 JTAG (boundary scan) TAP controller. Shows how the TAP controller operates within a JTAG network. Step-by-step analysis of the TAP state machine and timing diagram JTAG TAP Controller Primer http://www.youtube.com/watch?feature=player_detailpage&v=PhaqHKyAvR4 JTAG indirect, JTAG Active Serial Mode. ALTERA FPGA http://www.youtube.com/watch?feature=player_detailpage&v=Yr-fSX_cJyc --------------------------------------------------------------------- Gruss Holger.
ASott schrieb: > http://www.altera.com/support/kdb/solutions/rd10132010_126.html) > erzeugt. Die Konvertierung funktioniert soweit, jedoch startet die > NIOS-Software nicht Frage: Ist der /Reset evtl. noch aktiv. Hast du den vergessen ? Geht der Clock ?. Die Mode Pinne M0..M3 ? JTAG clock ist Master Clock.. und nicht Ex.Clock Gruss Holger.
Hallo, Holger was Du schreibst ist, mit Verlaub, Bullshit. Der erste Prozessor kann aus dem EPCS booten (sollte das .jic halt im EPCS landen). Die restlichen vier Prozessoren müssen in diesem Fall von einer festen Adresse im eigenen Speicherbereich booten. Schau Dir mal unter Advanced Features ResetRequest und ResetTaken an. Also musst Du folgendes implementieren: Der einzige Prozessor der aus dem EPCS booten kann, stoppt alle anderen vier mit einem ResetRequest, schreibt in den Speicherraum der vier Prozessoren die Programme und läßt sie mit entfernen von ResetRequest loslaufen..
Ich schrieb: > im eigenen Speicherbereich booten. Danke an alle für den Tip. Ja gut. Hast du ein minimales Referenz Modell, was du uns posten kannst ? Damit können die beiden testen, warum der Prozess nicht anlaufen will. (Stand-Allone geht ja, aber haben die auch das JTAG abgemacht, und einen POWER on reset gefahren...oder hängt da noch der JTAG-Debugger dran, der den Reset macht, dann ist das nicht Stand-Allone- mit POWER on Reset Bingo> so sehe ich das leider immer wieder, das evtl. nicht optimal & minimal reduziert wird... und schon ist der Tag rum. Das ist denn auch Bullshit hoch 3. ) ############################################## Main(#MEM)--main#1() 0xX000:xxxx main#2();0xY000:xxxx ############################################## Ich würde das so minimal runter-reduzieren. 1) Mit den Scope nachmessen, ob das SPI-Boot-Rom geladen wird.. Ich denke da an eine 'Blink-Led pro Prozessor. später dann noch von ResetRequest loslaufen..lassen, usw. Damit kann man das erst mal step by step einkreisen. Gruss Holger.
Dann ist mir mal ein Ding passiert, mit meinem Lattice MachXo Board. Da habe ich den externen Oszilator abgeklemmt, damit konnte ich das Mach Xo laden, und das Ding ging wie ich wollte. Machte ich das aber nicht, konnte ich nur gut starten, wenn ich vorher den Chip mit full erase behandelt hatte. Und danach den Code in den Chip via JATAG geflasht hatte. Fazit: Da waren also noch alte rest-bits drin. Die haben mir das Design verhagelt, und der Jtag hat kein error gemeldet, da der ja nur TDI mit TDO vergleicht. [TDI*rising edge][TDO falling Edge] -- compare. Und im SRAM sind rest-bits drin... [x][][] Kaum glaubhaft aber Praxis...Vesuch macht kluch Das war mir eine Lehre. Und ich habe das auch da noch so weit runter reduzieren müssen. Das zum SRAM basierenden FPGA.. Gruss Holger. Kann auch sein, das der SPI/EN Pin von disem FTDI billig JTAG nicht beschaltet ist. Dann brasseln die bits via laufendem Oszillator da rein. ???
:
Bearbeitet durch User
Holger Harten schrieb: > Kann auch sein, das der SPI/EN Pin von disem FTDI billig JTAG nicht > beschaltet ist. > Dann brasseln die bits via laufendem Oszillator da rein. ??? Das ist nur ein Beispiel, was alles schief gehen kann. Tip: Morgen zur Embedded World, und da mal fragen. 25-27 Feb. Der Fehler steckt im Detail... Gruss Holger.
Hallo Holger, Holger schrieb: > Frage: > Ist der /Reset evtl. noch aktiv. Hast du den vergessen ? Den habe ich auf VCC gelegt. Müsste also passen, oder? > Geht der Clock ?. Ja, das nehme ich an. Habe ja noch in Hardware ne Blinkende LED realisiert, die auch blinkt. > Die Mode Pinne M0..M3 ? Welche Pins sind die? Wo kann ich diese Konfigurieren? > JTAG clock ist Master Clock.. und nicht Ex.Clock Im QSYS habe ich für die "JTAG-UART" >Clock Input< mit dem >Clock Output< von meiner "Clock Source" verbunden? Ist das dann falsch? Gruß
ASott schrieb: >> Die Mode Pinne M0..M3 ? > Welche Pins sind die? Wo kann ich diese Konfigurieren Sry, die Konfiguration lautet wie folgt: -MSEL0: 0 -MSEL1: 1 -MSEL2: 0 -MSEL3: 0 => Standard 3,3V Aber an dieser Konfiguration sollte es eig. nicht liegen, oder? Da meine sonstige Hardware (in VHDL) anläuft?
ASott schrieb: > JTAG clock ist Master Clock.. und nicht Ex.Clock > Im QSYS habe ich für die "JTAG-UART" >Clock Input< mit dem >Clock > Output< von meiner "Clock Source" verbunden? Ist das dann falsch? Du erzeugst gen-code der nicht STAND-Allone gehen kann. Weil: Damit ist das doch noch an dein Host-System gekoppelt, via Console. (nicht abgenabelt vom Host-Mutter-System) Und wird somit nicht als Stand-Allone laufen... weil es sich mit einem Host-Sychen will, der nicht dran angeschlossen ist. Frage: Hast du die Platine selbst gebaut ?. Versuch mal da auf ein DE2 Board zu porieren. ####################################################################### Zu den M0 M1 M2 M3 Pinnen, die sind für jeden Typ bzw. Low Power Typen auch immer anders, also genau im Daten-blatt für jeden Typen nachlesen, bzw. bei Low-Power vom gleichen Derivat Fuss-Note lesen. ----------------------------------------------------------------------- Gruss Holger. Fazit: Das ist debugger Code oder debug-able Code in einem Stand-Allone System.
:
Bearbeitet durch User
Wow, was fürn Faden. Was willst eigentlich? Einen Nios booten oder fünf gleichzeitig?
Hallo @ICH Ich glaube das hat er hier gemeint. Hat aber im elf-code den Consolen mode drin, wie bei dem Hitex Stick STR9112CS [der geht nur mit dem Host-PC], ist der Debugger fest darin, (der steuert via FTDI JTAG bzw. JTAG-UART das System,/Reset usw..via der IDE ) Jetz hat er den Code in dem ASIM drin, und der TO wundert sich, das der nicht bootet. (Weil das System halt ohne den Host-PC nicht geht) Für doppel Prozessor [][][][][]----->[] Philosopher Thinker System-- round robbin. 0x8A00 0X8900 0x8800 DUART MEMORY (Bridge) AT. 0450:xxxx (SYSTEM_0:4)(>-->) System_2[0:0] Ich poste noch ein Bild. Link: http://www.altera.com/literature/tt/tt_nios2_multiprocessor_tutorial.pdf Ich schrieb: > Wow, was fürn Faden. Was willst eigentlich? Einen Nios booten oder fünf > gleichzeitig? Gruss Holger.
Lese doch bitte meinen ersten Post. Ohne eigenen Bootloader wird es nicht funktionieren. Ausserdem hat das alles nix mit den MSEL Pins zu tun. Lasst die doch bitte bei AS wenn Active Serial gebootet werden soll.
Um meine selbsgebaute FPGA Hardware zu testen, Mode Pinne: [0][1][0][0] Vector: LSB to MSB [0:3] M0 M1 M2 M3 Fazit: M1 ist der einzige Pin mit High-Potential Folglich Active Serial Configuration. ------------------------------------------------------ Active Serial Configuration Link: http://www.altera.com/literature/hb/cfg/cfg_cf51001.pdf You can perform an active serial (AS) configuration using EPCS devices. During AS configuration, the FPGA device is the master and the EPCS device is the slave. Configuration data is transferred one bit per clock cycle. ------------------------------------------------------------------------ ---------- Mit JTAG indirect lade ich das SPI Rom indirect durch-reicher[indirect] via FPGA. (JIC) "JTAG indirect Config" ######################################################################## ########## Zum Testen nehme ich ein VHD geschriebenes Blink-Programm . (Da brauche ich noch nicht einmal einen Takt ..) Oder noch einfacher 2 Eingänge 2 Ausgänge, mit inverser Logic. Sind die LED's via Ausgang an .?.. ------------------------------------------------------------------------ ---------- So einfach habe ich angefangen, bis ich da mit dem 72 MHz Ext.Oszillator Probleme hatte. Gruss Holger. Ich schrieb: > Nimmst Du Drogen? Nein Nur Kaffeeeee
Ich schrieb: > Wow, was fürn Faden. Was willst eigentlich? Einen Nios booten oder fünf > gleichzeitig? Ja ein einfaches Block-Schalt-Bild Der meint sicher ein Altera-Chip z.B EP1C6F256 und 5 Prozesse .. Variante#1.0: [Main] Nios-Boot (task#1),(task#2),()()(task_#n); Variante#2.0: Nios-Boot Nios-Boot Nios-Boot .... ..... [EP1C6F256] [EP1C6F256] [EP1C6F256] [EP1C6F256] [EP1C6F256] Ich schrieb: > Mir glaubst Du scheinbar nicht;) > http://www.alteraforum.com/forum/showthread.php?t=19839 Danke erstmal für den Link ! Link: Da ist das gut beschrieben. http://www.altera.com/literature/tt/tt_nios2_multi... Gruss Holger.
:
Bearbeitet durch User
Ich schrieb: > Mir glaubst Du scheinbar nicht;) > http://www.alteraforum.com/forum/showthread.php?t=19839 Also bei diser Konstelation ..siehe Bild. Doch das war ein ganz heisser Tip mit dem Boot-loader. Ist ja auch logisch das management sorgt halt dafür, das nicht alle gleichzeitig auf das SPI-Flash-Rom zugreifen. Also geht man sozusagen an den jeweiligen Startup (der main() aufruft), und macht da eine Zuriffs-Hierarchie ... auf das SPI-Flash-Rom. Gruss Holger.
Holger Harten schrieb: > Also geht man sozusagen an den jeweiligen Startup (der main() aufruft), > und macht da eine Zuriffs-Hierarchie ... auf das SPI-Flash-Rom. Ganz oben sitz der Master(Main)Super-Visor. Gruss Holger.
Natürlich kannst Du mehrere Prozessoren aus stinknormalen CFI-Flash booten. Beim EPCS siehts aber anders aus. Hier lädt der QSYS-EPCS-Controller aus dem EPCS-Flash einen kleinen Bootloader in den Speicherbereich des Prozessors, den Du vorher über die Resetadresse festgelegt hast. Der Bootloader kopiert sodann das Hauptprogramm in den Speicher. Sobald der Bootloader fertig ist startet Dein Programm. Das funktioniert aber nur mit einem Prozessor. Hast Du Mehrere, muss der erste Prozessor aus dem EPCS die einzelnen Programme holen und sie an die restlichen Prozessoren verteilen. Sobald er das geschafft hat, entfernt der erste Prozessor den Resetrequest und die anderen Prozessoren starten.
Ich schrieb: > Das sollte Dir helfen: > http://www.alterawiki.com/wiki/EPCS_bootloaders Ja Danke, so kenne ich das von den HITEX Tools auch, damit kann man das genau auf die Location legen. ------------------------------------------------------------------------ -- nios2-elf-objcopy to offset the address to the correct location ######################################################################## ## Because the code we will load is not located in the default location in the EPCS there is an additional step necissary. elf2flashis used to create the flash image efl2flash --epcs --input=my.elf --output=my.flash however it is not located at the right offset. The above line will locate it at address/offset 0x0. To remady this we use nios2-elf-objcopy to offset the address to the correct location nios2-elf-objcopy -I srec -O srec test_app.flash --change-addresses=0x1c0000 then you can use nios2-flash-programmer to program the EPCS with the file. ######################################################################## ### Gruss Holger.
ASott schrieb: > ich habe ein Problem beim Erzeugen der „JTAG Indirect Configuration File > (.jic)“ mit meiner Nios II Hardware und dessen Software. It is possible to choose JTAG chain (ISP-Jam) for Altera and Xilinx devices ... http://www.intellitech.com/solutions/multiple_scan_chains.asp http://www.intellitech.com/pdf/jtag-test-jtag-linker-fpga-serdes-ber-bit-error.pdf Hier ist eine Firma die dazu eine Eclipse IDE hat. Aber rechts in der Ecke auf dem Bild, kann man den JTAG Bus auch via Muxer so schalten, da wird ein Device draus, und man muss sich nicht mit der JTAG Kette rumplagen. Lattice hat das via IspVM Tool gemacht. Das habe ich schon ausprobiert, ist ein Tabell, darin trägst du den File ein, und damit fährt der JTAG batch Job via Project ab. Fertig ist die Laube. Bei Altera haben die das noch nicht so einfach für den USER gemacht. isPVM ----------- Tabelle--------- Device Machxo --- CODE Device MachXo2 --- Code usw............... ######################################################################## ## Gruss Holger. Gruss Holger.
Bin ich eigentlich der einzige, der Holgers Beiträge komplett undurchsichtig, nicht zusammenhängend und komisch formuliert findet?
Holger Harten schrieb: > isPVM ----------- Tabelle--------- > Device Machxo --- CODE > Device MachXo2 --- Code > usw............... Oder auch einfach via JTAG-indirect transport durch das MachXo2 mit hardended SPI Kernel (also nix vorher draufladen) der SPI-Kernel ist schon im Machxo2 Fabric drin. Das muss in Alera auch so gehen, nur das man den SPI-Kernel vorher laden muss, und dann erst das SPI-Config-Flash via JTAG laden kann, aber darauf achten, das der SPI-Kernel nicht gelöscht wird. Also die Hacken in deinem USB-Blaster Menue richtig verwalten. Viel Erfolg. Gruss Holger.
...deswegen auch meine Frage nach den Drogen.
Student schrieb: > Bin ich eigentlich der einzige, der Holgers Beiträge komplett > undurchsichtig, nicht zusammenhängend und komisch formuliert findet? Nein, bist du nicht. Alle seine Beiträge sehen so aus. Ich habe ja mehrfach versucht, zu verstehen, was Holger schreibt. Aber keine Chance. Ich fürchte der kann nicht anders. Tja, sowas solls geben.
Kurzer Nachtrag... Hier in dem MachXo2 ist der Code schon in dem FPGA drin, das SPI ist nur eine Erweiterung für Daten, und ist somit eine weitere Option. Dieses FPGA braucht also kein ext. SPI-Config Speicher. [@config.-FLASH- im Chip ]. Damit vereinfacht sich das Design ungemein. ------------------------------------------------------------------------ - Ich schrieb: > ...deswegen auch meine Frage nach den Drogen. Es soll ja Leute geben die das nehmen, einfach zu besseren Inspiration. ------------------------------------------------------------------------ - Aber ich mache nach möglichkeit alles erst mal modular. Da habe ich schon Dinger erlebt, war der Watchdog beim Boot-up mit aktiv, und das Teil ging nach dem Boot immer wieder zyklisch in den Reset. War eine automotive Maske Step-B. Da ist nur ein Pin ext. zu verbinden, und das ist ok. P.S Danke nochmal für die Hilfe. Gruss Holger.
@ASott Hier ein Beispiel was ein Altera Hard-ware Design angeht. R52 Siehe Bild mit 10K an GND. Das ist der nCE. (Chip-Enable) für den Altera FPGA Chip. Desweitern sind auf dem Bild noch die "Conf_Done" Pinne usw. zu sehen. Die sind der Monitor, um zu testen ob das FPGA richtig configuriert wurde. ################################ Siehe bitte das Datenblatt dazu. Somit kannst du die ROM-Version testen. Z.B eine einfache SPI-Romversion machen, nur in VHDL geschrieben. Blink-Licht.sof to (Blink-Licht.pof). Power cycle your board, and check to see if it was programmed successfully. via SPI-PROM. Also erst mal kein Nios II, das machst du erst danach, wenn die ROM-Versipn nach power-off--< then power-on-> geht. http://www.alterawiki.com/wiki/EPCS_Guide Power cycle your board, and check to see if it was programmed successfully. via SPI-PROM. ASott schrieb: > Sry, die Konfiguration lautet wie folgt: > > -MSEL0: 0 > -MSEL1: 1 > -MSEL2: 0 > -MSEL3: 0 Auf dem Bild ist ein passive serielle Konfiguration Aber die du da hast ist active seriell, und das ist ok, denke ich. Viel Erfolg bei den guten Projekten. Gruss Holger.
:
Bearbeitet durch User
Student schrieb: > Bin ich eigentlich der einzige, der Holgers Beiträge komplett > undurchsichtig, nicht zusammenhängend und komisch formuliert findet? Nein, aber solange wie der Fragensteller mit den Antworten was anfangen kann, soll es mir recht sein :-)
Duke Scarring schrieb: > Nein, aber solange wie der Fragensteller mit den Antworten was anfangen > kann, soll es mir recht sein :-) Das ist ja auch nicht trivial, so kann AScot sich da aber informieren. Danke für die Untersützung. Ich finde eigene Hardware zu bauen, ist immer nicht einfach gewesen, und man muss auch die Module einzeln testen können, und dann im Verbund, auf dem JTAG Bus via JAM Batch Configurieren. Dazu ist ja JTAG erfunden worden, damit man nur ein Programm hat was die JTAG Kette da laden kann, und definiert modul# für modul# nach einer Hierarchie anfahren kann. Das geht ja auch in der Einschaltsequenz für die Core-Spannung, bzw I/O Spg. so. Also erst nach dem Power good usw. Takt Freigabe. Sonst ist mit Multi-FPGA Anwendung noch ein Problem, was man sich einhandelt. Und zuerst mag das nicht auffallen, aber ich habe das schon erlebt. Da macht man dann nochmal den Stecker raus, und wieder rein, und das Ding geht wieder. Dafür ist den ein Lattice II Power-Manager Chip gut. ------------------------------------------------------------------------ - Hallo! @AScot Julius Baxter von der Ini in England hat da ein Video-Tutorial gemacht. OpenRISC 1000 Demonstration - Chip Hack Da wird via GTK Wave das SoC mit Altera erklärt, JUMP 0x100 ... JUMP 0x1000 usw. also einfache main() mit echter RS232 Uart, und nicht mit "virueller JTAG UART" . Damit kannst du das System vom cStartup call Main ... erst mal testen. Link: http://www.youtube.com/watch?list=FL0yrYVaJFUNroFzyTtUO5RA&feature=player_detailpage&v=5pG3FL_k6to include "uart.h" uart_init(0); sprintf("Hello World!\n") http://www.youtube.com/watch?list=FL0yrYVaJFUNroFzyTtUO5RA&feature=player_detailpage&v=5pG3FL_k6to#t=504 Gruss Holger.
@AScot Ich habe schon eine Mail geschrieben, aber das hier ist für den Jam STAPL player, mit Source Code in C. ------------------------------------------------------------------------ --- JTAG Configuration ALTERA FPGA Devices. Jam STAPL player (PDF) http://www.altera.com/support/devices/configuration/schemes/jtag/cfg-jtag.html ------------------------------------------------------------------------ --- Gruss Holger.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.