openOCD config for ARM IMX31 unklar

OP #2596194
Hi everyone,

ich versuche seit geraumer Zeit mit openOCD und Olimex Debugger ein ARM 
IMX31 board zum Laufen zu bekommen. Jedoch habe ich jetzt zwar das board 
verbunden bekommen (nach langem herum konfigurieren) aber ich bekommen 
kein image im RAM gestartet.

Aktueller Stand:
- lauffaehiges board
- alte JTAG Konfiguration von einem alten/anderen Debugger
- init/connect/reset/halt/resume geht
- MMU ist aus
- lesen/schreiben der control register funzt und werte stimmen auch

Problem:
- verstehe Teile der configs vom ARM nicht (hat weniger was mit openOCD 
zu tun)
- image was in RAM geladen wird schlägt bei "verify_image" immer fehl 
(d.h. der upload in den RAM scheint nicht zu klappen)

Fragen:
- wie kann ich validieren ob der RAM richtig konfiguriert ist
- kann man bei einem ARM einfach den RAM beschreiben, program Counter 
setzen.. und go? ich habe da so meine Zweifel inzwischen :-)

Wundersame stelle in der Beispiel openOCD init (es wird in bestimmte 
Speicher Bereiche der CPU geschrieben):


proc imx31pdk_init { } {

  imx3x_reset

  # This setup puts RAM at 0x80000000

  mww 0x53FC0000 0x040
  mww 0x53F80000 0x074B0B7D

  # 399MHz - 26MHz input, PD=1,MFI=7, MFN=27, MFD=40
  #mww 0x53F80004 0xFF871D50
  #mww 0x53F80010 0x00271C1B

  # Start 16 bit NorFlash Initialization on CS0
  mww 0xb8002000 0x0000CC03
  mww 0xb8002004 0xa0330D01
  mww 0xb8002008 0x00220800

  # Configure CPLD on CS4
  mww 0xb8002040 0x0000DCF6
  mww 0xb8002044 0x444A4541
  mww 0xb8002048 0x44443302

       .... more memory writes like this ...
}
Gast
Ich kenne diesen Controller nicht, aber die Memory Writes sind eher 
keine Writes ins wirkliche RAM, sondern in Teile des Adressbereichs wo 
(I/O) Register des Controllers gemappt sind. Du brauchst also das 
Datenblatt mit Registerbeschreibungen zu deinem Controller um 
nachvollziehen zu können was genau diese Writes tun.

Generell ist der RAM Init sehr abhängig vom Controller und RAM Chip der 
drauf ist, mit Copy-Paste von anderen Boards kommt man da nicht weit, du 
musst sehr genau die Timings/Größen/Bitzahlen konfigurieren die eben für 
genau deinen Chip nötig sind.

Ausführen aus dem RAM geht normalerweise schon, du musst aber dort auch 
ein Programm ablegen das entsprechend dafür ausgelegt ist (u.U. Linker 
Skripte fürs Compilieren anpassen, falls nötig, usw.).
OP
Hi "asfdf" :-)

Danke für die Antwort.
Mir ist klar, dass hinter den Adressen am Ende Konfigurations-Register 
stehen.

Vielleicht muss ich meine Frage besser formulieren:
Die Zahlenwerte sind sehr wahrscheinlich korrekt (da ich sich sie von 
einem anderen Debugger Skript für mein Board genommen habe). Jedoch 
will ich verstehen was genau diese konfigurieren, da ich die Skripte 
verwenden will um SW/Bootloader Fehler zu finden.

Zum Thema Datenblatt: ich habe mich bei Freescale über den IMX31 (bzw. 
genau den entsprechenden ARM1136) informiert, nur kann ich die obigen 
Adressen (z.B. 0x53FC0000) nicht mit der Spezifikation in Einklang 
bringen... sehr wahrscheinlich weil ich da falschen Erwartungen habe :P

Noch als Info dazu:
Ich habe bereits erfolgreich bestimmte Register zuordnen können und auch 
konfiguriert, im Unterschied zu den obigen wurden diese aber direkt 
angesprochen, nicht über gemappte Address-Bereiche (Beispielsweise gibt 
es ein CP15 Register, dass man über openOCD JTAG Kommandos direkt 
anspricht).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.