i.mx6 - Wie Registerzugriff per JTAG

Gast #5999758
Lesenswert?
• ▲
▼
Guten Morgen

Ich habe einen i.mx6, auf dem Linux läuft.
Leider funktioniert ein Teil der Peripherie nicht korrekt.
Ich habe eine falsche Konfiguration in Verdacht.
Daher wollte ich, wie ich es von den kleinen STM32 her kenne, die 
REgister der Peripherie auslesen und überprüfen, ob diese richtig 
gesetzt sind.

Dafür habe ich einen JLink per JTAG verbunden.
Ich habe gewartet bis das Linux system gestartet ist und dann per 
jlink.exe die Verbindung als "generic-A9" hergestellt.
Der Core wurde erkannt. Per halt konnte ich ihn auch anhalten und die 
CPU register auslesen.
Das Problem ist nun, dass ich keinen Zugriff bekomme.
Im uboot konnte ixh mit "mem 100 10" noch etwas lesen. Sobald Linux 
gestartet ist, erscheint ein Fehler "Could not read memory".
Sowohl unter Linux als im uboot kann das Peripherieregister 0x020E0008 
nicht gelesen werden.

Gibt es etwas, was freigeschaltet werden muss?

Vielen Dank
Gast #5999778
Lesenswert?
• ▲
▼
Danke für die schnelle Antwort
Ich habe exakt die Bezeichnung ausgewählt, die auf dem Chip steht: 
MCIMX6U7...
Der Chip scheint auch erkannt zu werden:
1
AP[0]: AHB-AP (IDR: 0x44770001)
2
AP[1]: APB-AP (IDR: 0x24770002)
3
AP[2]: JTAG-AP (IDR: 0x14760010)
4
Iterating through AP map to find APB-AP to use
5
AP[0]: Skipped. Not an APB-AP
6
AP[1]: APB-AP found
7
ROMTbl[0][0]: CompAddr: 82141000 CID: B105900D, PID:04-003BB907 ETB
8
ROMTbl[0][1]: CompAddr: 82142000 CID: B105900D, PID:04-002BB906 CTI
9
ROMTbl[0][2]: CompAddr: 82143000 CID: B105900D, PID:04-004BB912 TPIU
10
ROMTbl[0][3]: CompAddr: 82144000 CID: B105900D, PID:04-001BB908 CSTF
11
ROMTbl[0][4]: CompAddr: 8214F000 CID: B105100D, PID:04-000BB4A9 ROM Table
12
ROMTbl[1][0]: CompAddr: 82150000 CID: B105900D, PID:04-000BBC09 Cortex-A9
13
Found Cortex-A9 r2p10
14
6 code breakpoints, 4 data breakpoints
15
Debug architecture ARMv7.0
16
Data endian: little
17
Main ID register: 0x412FC09A
18
I-Cache L1: 32 KB, 256 Sets, 32 Bytes/Line, 4-Way
19
D-Cache L1: 32 KB, 256 Sets, 32 Bytes/Line, 4-Way
20
System control register:
21
  Instruction endian: little
22
  Level-1 instruction cache enabled
23
  Level-1 data cache enabled
24
  MMU enabled
25
  Branch prediction enabled
26
Memory zones:
27
  [0]: Default (Default access mode)
28
  [1]: AHB-AP (AP0) (DMA like acc. in AP0 addr. space)
29
  [2]: APB-AP (AP1) (DMA like acc. in AP1 addr. space)
30
Cortex-A9 identified.

Speicher auslesen klappt trotzdem nicht. Ich vermute, es hat was mit der 
MMU zu tun, ich weiß es aber leider nicht.
Gast #5999784
Lesenswert?
• ▲
▼
Martin schrieb:
> Ich vermute, es hat was mit der
> MMU zu tun, ich weiß es aber leider nicht.

IIRC nutzt Linux auch im Kernel-Space ein Mapping via MMU. Man muss sich 
also diesen IO-Bereich irgendwo in den Adressraum mappen lassen. 
Allerdings ist die Frage, ob die MMU für JTAG-Zugriff überhaupt relevant 
ist und das nicht direkt auf den Bus geht... Spannend ;-)
Gast #5999809
Lesenswert?
• ▲
▼
Wenn du den Prozessor im Kernel Space anhältst (d.h. der Processor Mode 
ist nicht "User") und dann über das SCTLR.M bit die MMU (und damit 
auch den Cache) abschaltest, den Register-Zugriff durchführst, und dann 
SCTLR.M sofort wieder einschaltest vor der weiteren Programmausführung 
könnte es vielleicht gehen... Oder desaströs abstürzen :)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.