|
|
Home
> FAQ > Abatron
BDI2000 PowerPC-Targets
| |
|
|
| |
|
|
| |
FAQ Abatron
BDI3000/2000 PowerPC-Targets
|
|
| |
|
|
| |
|
|
| |
|
|
 |
Wie
sieht die Resetsequenz bei einem COP Target
aus?
- Die BDI2000 führt einen HRESET aus
- BDI2000 zieht am TRST und löst einen
Reset am TAP Controller aus
- Der PowerPC betätigt HRESET und SRESET
- Die BDI lässt HRESET los
- Die BDI2000 wartet bis HRESET und SRESET
inaktiv sind
- BDI2000 wartet bis Debug Modus aktiv ist.
Beispiel Initialierungssequenz von einem
PowerPC Target:
- BDI asserts HRESET
- Reset JTAG controller passed
- Bypass check: 0x000000001 => 0x00000001
- Bypass check: 0x000000001 => 0x00000001
- JTAG exists check passed
- COP status is 0x01
- Check running state passed
- BDI scans COP freeze command
- BDI removes HRESET
- Target PVR is 0x80822013
- Target SVR is 0x00000000
- COP status is 0x05
- Check stopped state passed
- Check LSRL length passed
- BDI sets breakpoint at 0xFFF00100
- BDI resumes program execution
- Waiting for target stop passed
- TARGET: Target PVR is 0x80822013
- TARGET: resetting target passed
Fehlermeldung: JTAG Exits Check Failed,
JTAG Bypass Check Failed
Wenn eine "JTAG Exits check failed"
Meldung nach einem "JTAG Bypass check"
kommt, dann bedeutet dies, das die JTAG-Chain
nicht ansprechbar ist und das Bypass Register
nicht ausgelesen werden kann.
Die Meldung erscheint in folgender Reihenfolge
auf dem Telnet Prompt:
> - CONFIG: loading configuration file
passed
> - TARGET: processing reset request
> - TARGET: BDI asserts TRST and RESET
> - TARGET: BDI removes TRST
> - TARGET: Bypass check 0x000000001
=> 0x00FFFFFF
> - TARGET: JTAG exits check failed
Es gibt verschiede Gründe, die dafür
verantwortlich sind:
- a) Der CPUTYPE
im Konfigurationsfile ist nicht richtig
eingestellt ist. Der Ort des Bypass Registers
kann von Prozessor zu Prozessor unterschiedlich
sein und die BDI2000 greift daher eventuell
auf die falsche Stelle zu.
- b) Wenn das
Reset-Signal am JTAG Stecker verzögert
wird (evtl. durch einen Resetcontroller),
dann fügen Sie bitte ein WAKEUP Delay
im Konfigurationsfile hinzu.
Dies funktioniert nicht, wenn der Prozessor
einen aktivierten Watchdog Timer besitzt,
da der Watchdog auslöst, bevor die
Wakeup-Time abgelaufen ist.
- c) Bei COP
Targets kann zusätzlich ein PowerUP
Delay hinzugefügt werden.
- d) Falls der
Prozessor nicht das einzige Device in
der JTAG Scan Chain ist, muss der IR-Wert
für alle Devices in der Scan Chain
der BDI2000 mitgeteilt werden. Benutzen
Sie dazu bitte die Befehle SCANPRED und
SCANSUCC, um die korrekten Werte zu spezifizieren.
Dies gilt auch z.B. für den PPC4xx
Core im Xilinx FPGA.
- e) Prüfen
Sie bitte den JTAG Anschluss, um sicherzustellen,
dass alle Leitungen korrekt miteinander
auf dem Board verbunden sind. Die Referenz
hierzu finden Sie im Handbuch. Benutzen
Sie bitte ein Oszilloskop, um die Logik-Level
der einzelnen Signale zu überprüfen.
- f) Stellen
Sie sicher, dass die JTAG Chain auf Ihrem
Board aktiviert ist. Falls die Meldung
0x000000001 => 0xFFFFFFFF kommt, findet
die BDI2000 keine Devices. Der JTAG ist
deaktiviert. Wenn ein Mux oder Jumper
für die JTAG Chain verwendet wird,
prüfen Sie bitte die Einstellungen.
- g) Ist eine
Spannungsquelle am Prozessor angeschlossen?
Stellen sie bitte sicher, dass eine "saubere"
Spannungsquelle mit der definierten Spannung
verwendet wird.
- h) JTAG ist
gegenüber Rauschen sehr empfindlich
und das Hinzufügen von Widerständen
erzeugt langsamer ansteigende Signale,
die dann nicht mehr in das Zeitfenster
hineinfallen. Für die meisten JTAG-Leitungen
genügen Pull-Ups von >= 1Kohm
Signal
Name Resistor Pullup/pulldown Resistor
Value:
TDI, TDO, TMS, TCK pullup >=2K
RESET and TRST pullup 1K-3K
TRST pulldown (ARM only) 1K-10K
VCC <= 1K
Die Fehlermeldung: PPC Core timeout waiting
for freeze
- a) Bei einem
PowerPC 82xx kann eine es zu einem Fehler
in der Startup Sequenz kommen, wenn TRST
und HRESET miteinander verbunden sind.
Prüfen Sie bitte die JTAG Belegung,
ob TRST und HRESET von einander getrennt
sind.
- b) Bei COP
Prozessoren ist es nötig, den QACK
Pin aktiv low zu treiben. Dies kann über
einen Pull Down Widerstand geschen oder
in dem Konfigurationsfile durch den Befehl
QACK LOW. Falls dies nicht geschieht kommt
es zu einer Fehlermeldung.
- c) Wenn das
Reset-Signal am JTAG Stecker verzögert
wird (evtl. durch einen Resetcontroller),
dann fügen Sie bitte ein WAKEUP Delay
(WAKEUP 2000) im Konfigurationsfile hinzu.
Dies funktioniert nicht, falls der WAKEUP
zu lange ist und der Prozessor einen aktivierten
Watchdog Timer besitzt. In diesem Fall
löst der Watchdog einen Reset aus
bevor die Wakeup-Time abgelaufen ist.
- d) Falls bei
einem PPC440 diese Meldung auftaucht,
prüfen sie bitte ob der PPC440 Core
richtig arbeitet. Der Core sollte, ohne
das die BDI2000 angeschlossen ist, auf
das Boot Rom zugreifen. Wenn das nicht
der Fall ist, prüfen sie bitte die
Resetbeschaltung und die Clock des Prozessors.
- e) Wenn der
PPC8xx versucht die Init-List ohne erfolg
wiederholt zu laden, dann kann die Ursache
ein ständiges LOW des Bus Busy Signals
sein. Dies kann das holen des Bootvektors
und anhalten des Prozessors verhindern.
- f) Tritt dies
Meldung während des Debugging eines
PPC85xx auf, versuchen sie MEMACCESS CORE
im Konfigurationsfile einzustellen. Dadurch
ist das Verhalten manchmal stabiler als
beim SAP Speicherzugriff.
- g) Beim Zugriff
auf eine fehlerhafte nicht existente Adresse
im Speicher kann ebenfalls diese Fehlermeldung
auslösen. Kommt die Meldung direkt
nach einem PROG oder LOAD Befehl, dann
prüfen sie bitte, ob dieser Speicherbereich
verfügbar ist.
- h) Eine nicht
beendete Speichertransaktion, die niemals
endet, macht es unmöglich auf JTAG
Befehle zu reagieren (z.B. ein Device
am PowerPC Bus).
Stellen sie sicher, das kein Device am
PPC oder PCI Bus die JTAG-Resetleitung
auslöst und kein Rauschen auf der
JTAG Schaltung ist.
Was ist die Ursache für die Fehlermeldung
"Target reset detected, restarting
target" ?
- a) Wenn TRST
und HRESET miteinander verbunden sind
kann es zu einem Fehler in der Startup
Sequenz kommen. Prüfen Sie bitte
die JTAG Belegung, ob TRST und HRESET
von einander getrennt sind.
- b) Bitte stellen
sie sicher, dass der Watchdog ausgeschaltet
ist. Bei COP Prozessoren ist die Adresse
des Wachdog abhängig vom IMMR. Prüfen
sie bitte, ob die Adressen im Konfigurationsfile
richtig eingestellt sind.
- c) Falls der
WAKEUP im Konfigurationsfile zu lange
ist und der Prozessor einen aktivierten
Watchdog Timer besitzt kann dies einen
Watchdog-Reset auslösen, bevor die
WAKEUP Zeit abgelaufen ist.
- d) Falls das
Board nach einem "GO" Befehl
vom Telnetprompt einen Reset ausführt,
so kann das an einem Konflikt zwischen
Konfigurationsfile und Applikation/Bootloader
liegen. Dies kann z.B. eine Änderung
des IMMR sein, die der Applikation bzw.
dem Bootloader nicht bekannt ist und somit
auf falsche Registeradressen zugreift.
- e) Manche COP
Targetboards haben eine Resetverzögerung;
Hierfür können sie den Befehl
POWEUP im Konfigurationsfile eintragen.
Z.B. "POWERUP 10000".
- f) Wenn die
Bootadresse im Konfigurationsfile nicht
korrekt angegeben ist, kann der Prozessor
evtl. immer wieder einen Reset ausführen.
Für einen COP Prozessor liegt die
Bootadresse normalerweise bei 0x00000100
oder 0xfff00100. Die Bootadresse kann
im Konfigurationsfile über den Befehl
"BOOTADDR" eingestellt werden.
- g) Prüfen
sie beim PowerPC, ob das RSTCONF Signal
High oder low ist. Bei low wird das default
HWCW benutzt. Bei high wird kein Defaultwert
geladen und das IMMR liegt bei 0x0. Hier
ist zu berücksichtigen, dass der
Watchdog über die richtige Adresse
angesprochen wird.
- h) Ebenfalls
kann ein ungültiges HWCW zu einem
Reset führen.
Manchmal erscheint die Fehlermeldung:
"Invalid PVR" oder "Unsupported
Target". In diesem Fall legen sie
den RSTCONF Pin auf high und bringen sie
das Board mit einem gültigen Konfigurationsfile
zum laufen.
Beim Startup der BDI2000 erscheint die
Fehlermeldung "waiting for target stop
failed" oder "check stopped state
failed" und "Break at Boot Vector
Failed, Freeze Forced"
Während des Startup setzt die BDI2000
einen Hardwarebreakpoint auf den Bootvektor.
Falls ein Bootmonitor auf dem Targetboard
vorhanden ist kann alternativ der Befehl
"STARTUP RUN" im Konfigurationsfile
verwendet werden. Dadurch wird kein Breakpoint
auf den Bootvektor gesetzt und der Bootmonitor
gestartet. Ansonsten gibt es verschiedene
Ursachen für die o.g. Fehlermeldung:
- a) HRESET wird
nicht richtig getriggert. Stellen sie
bitte sicher, dass HRESET und TRST korrekt
und unabhängig voneinander angezogen
werden. Rauschen kann ebenfalls zu Problemen
führen. Falls notwendig, setzen sie
einen 1K Ohm Widerstand für HRESET
und TRST ein.
- b) Im Konfigurationsfile
ist der Parameter BOOTADDR nicht richtig
auf den Bootvektor eingestellt.
- c) Bei COP
Targets mit RESET Baustein oder einem
Resetdelay kann es ebenfalls zu einem
Fehler kommen, da der HRESET nicht rechtzeitig
angezogen wird, um das Board anzuhalten.
Hier kann ein POWERUP Delay im Konfigurationsfile
Abhilfe schaffen (z.B. Powerup 1000).
- d) Wenn das
HRCW bei einem PPC82xx nicht gültig
ist kann es einen Fehler geben. Ziehen
sie den RSTCONF Pin auf High und initialisieren
sie das HRCW über das Konfigurationsfile.
Stellen sie sicher, dass IMMR Register
auf 0x00000000 eingestellt ist und die
Frequenz der CPU festgestellt ist. Bei
manchen Frequenzen kann sich das Problem
auflösen.
- e) Bei einem
PPC750 und MPC74xx Target ist es wichtig,
dass der Pin auf Low ist, andernfalls
kann die BDI2000 keinen Breakpoint setzen.
- f) Messen sie
den PowerPC Prozessorbus und prüfen
sie, ob dieser vom Reset herausläuft
Falls ein Hardwareproblem zu einem hängen
des MPX Busses führt, kann die BDI2000
den Prozessor nicht anhalten. Zum Testen
entfernen sie alle MPX Bus Devices.
- g) Prüfen
sie die Stromversorgung des Prozessors.
Falls diese unter einen bestimmten Level
fällt, kann es zu unvorhergesehenen
Problemen kommen.
- h) Falls die
Meldung 'Check stopped state Failed' auftaucht,
dann bedient der PPC die CKSTP_OUT Leitung.
Der PPC versucht auf den Bootvektor zuzugreifen,
aber ein Speicherproblem verhindert diesen
Zugriff. Falls dies passiert, geht der
Prozessor in den "Check Stop State"
und hält alle Clocks an.
Der PQ2 liest das HRWC auf D0-D7 ein und
shiftet diese über die Pins D0-D31.
Daher müssen diese Pins frei sein
(Weder Pullup noch Pulldown). Alles andere
erzeugt ein fehlerhaftes HRCW.
|
 |
| |
|
|
| |
|
|
| |
|
|
| |
Computer Communication
& Interface GmbH, Starnberger Str. 22,
82131 Gauting bei München
Tel.: +49-89-850 97 18, Fax: +49-89-850
97 19, Email:
|
|
| |
|
|
| |
|
|
|
|
|