Forum: Mikrocontroller und Digitale Elektronik Netgear WAX214 DRAM Fehler


von Jan (bugsimpson)


Angehängte Dateien:

Lesenswert?

Hallo,

vor mir liegt ein Access Point von der Firma Netgear.
Dieser möchte nicht starten. Die beiden Ethernet LED´s blitzen zyklisch 
auf.
Versorgungsspannungen sind alle da (wenn ich keine übersehen habe..).

Laut Konsole gehe ich davon aus das der SoC mit dem DRAM nicht 
kommunizieren kann, verstehe ich den Log richtig?

Was gibt es noch für mögliche Fehlerquellen? Außer das der DRAM defekt 
sein könnte?

Den SoC (MEDIATEK MT7621AT) und den DRAM (NANYA NT5CC256M16ER-c) habe 
ich schon versucht zu Reflowen, leider ohne Erfolg.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Jan schrieb:
> Was gibt es noch für mögliche Fehlerquellen?

Spannungsversorgung fuers DRAM/SoC-RAM-IOs
Durchkontaktierungen auf der Platine
Loetstellen
...

Gruss
WK

von Jan (bugsimpson)


Angehängte Dateien:

Lesenswert?

Ich habe mal den DRAM runter genommen und die Spannungen überprüft. Laut 
Datrnblatt und Type von DRAM sollte es eine 1V3 (VDD VDDq) Version sein. 
Gemessen habe ich jedoch bei beiden Rails 1V5.

Könnte das schon ein Problem sein?

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Jan schrieb:
> Gemessen habe ich jedoch bei beiden Rails 1V5.
>
> Könnte das schon ein Problem sein?
Glaub' ich - ohne, dass ich gross Ahnung von den Spezialitaeten dieser 
RAMs haette - eher nicht. Im Datenblatt steht so ne Note von "backward 
compatible zu 1.5V" fuer 3L Typen, vermutlich ist der bei dir Verbaute 
so einer.

Ich haette da nicht viel Hoffnung auf erfolgreiche Fehlersuche/behebung.

Gruss
WK

von Tobyas H. (tobyas)


Lesenswert?

Das sieht nach einem fehl-konfiguriertem Stage 1 bootloader aus.
1
MT7621   stage1 (...)
2
=== XTAL-40Mhz === DDR-1200Mhz ===
3
(...)
4
Cannot find any pass-window
5
[EMI] DRAMC calibration failed

Versucht DDR3L Kalibrierung bei 1200MHz.

Jan schrieb:
> Den SoC (MEDIATEK MT7621AT) und den DRAM (NANYA NT5CC256M16ER-c) habe

Den DRAM gibt es aber nur bis speed grade DDR3L-1866 (933 MHz).

Vielleicht wird der Stage 1 bootloader oder dessen Konfig falsch aus 
einem anderen Speicher (SPI NOR Flash?) geladen.

Grüße,
Tobyas

von Jan (bugsimpson)


Lesenswert?

Tobyas H. schrieb:
> Das sieht nach einem fehl-konfiguriertem Stage 1 bootloader aus.
>
> 1
> MT7621      stage1 (...)
>
> 2
> === XTAL-40Mhz === DDR-1200Mhz ===
>
> 3
> (...)
>
> 4
> Cannot find any pass-window
>
> 5
> [EMI] DRAMC calibration failed
>
> Versucht DDR3L Kalibrierung bei 1200MHz.
> Jan schrieb:
>> Den SoC (MEDIATEK MT7621AT) und den DRAM (NANYA NT5CC256M16ER-c) habe
>
> Den DRAM gibt es aber nur bis speed grade DDR3L-1866 (933 MHz).
> Vielleicht wird der Stage 1 bootloader oder dessen Konfig falsch aus
> einem anderen Speicher (SPI NOR Flash?) geladen.
> Grüße,
> Tobyas

Ah okay..
Was genau meinst Du mit falsch? Es gibt wohl eine Open Source Firmware 
für Router und AccessPoints (für einige zumindest) dann könnte es ja 
sein das jemand versucht hat diese zu flashen?

Vermutlich wird es ohne passenden RAM eher schwierig die Kiste wieder 
zum laufen zu bekommen?

von Tobyas H. (tobyas)


Lesenswert?

Eine übliche Boot-Reihenfolge bei solchen SoC ist:

Stage 0 Loader:  Ausführung aus SoC internem Boot-ROM. Kopiert aus ext. 
NAND/NOR Flash den Stage 1 Loader ins SoC interne SRAM. Started Stage 1 
Loader.

Stage 1 Loader:  Ausführung aus SoC internem SRAM. Initialisierung von 
Clock und allem was für DRAM Betrieb notwendig ist. DRAM Kalibrierung. 
Kopiert aus ext. NAND/NOR Flash den Stage 2 Loader (das kann schon die 
Applikation/ das OS sein) in das DRAM. Started Stage 2 Loader.

Jan schrieb:
> Was genau meinst Du mit falsch?

Laut deinem Logfile wird eine DRAM Kalibrierung mit 1200MHz für ein 933 
MHz DRAM Typ (DDR3L-1866) ausgeführt. Diese findet keine valides Fenster 
in dem die Daten stabil sind. - Korrigiert mich bitte jemand, falls ich 
das falsch lese.

In der von Stage 0 Loader geladenen Konfig, welche in Stage 1 benutzt 
wird,
stehen Infos dazu was für ein DRAM typ benutzt wird und wie dies zu 
konfigurieren ist (u.a. wie schnell).
Meine Vermutung: Diese Konfig wird falsch gelesen oder wurde von 
Benutzter falsch eingestellt.

Jan schrieb:
> Es gibt wohl eine Open Source Firmware
> für Router und AccessPoints (für einige zumindest) dann könnte es ja
> sein das jemand versucht hat diese zu flashen?

Genau. Wenn jemand die Konfig des Bootloaders unpassend umgeflasht hat, 
sieht das so aus.

> Vermutlich wird es ohne passenden RAM eher schwierig die Kiste wieder
> zum laufen zu bekommen?

Wenn du den DRAM runter genommen hast und jetzt keinen passenden mehr 
drauf bekommst, ist hier sowieso Ende.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Jan schrieb:
> dann könnte es ja
> sein das jemand versucht hat diese zu flashen?

Naja, also wenn das der Fall sein kann, dann wird wohl nur noch das 
ausfuehrliche Datenblatt des SoCs (in dem Bootoptionen und -verhalten 
offengelegt sind) weiterhelfen koennen. Nachdem das olle DRAM wieder auf 
die Platine gebraten wurde und dabei alles gutgegangen ist.

Gruss
WK

von Kilo S. (kilo_s)


Lesenswert?

Der hat einen 128MB Nand drauf, also auch eher schwierig ein 
funktionierendes Image einfach so neu in den Speicher zu schieben.

https://openwrt.org/toh/hwdata/netgear/netgear_wax214_v2

Wäre es ein SPI Flash wäre das ein Kinderspiel.

von Jan (bugsimpson)


Lesenswert?

Gestern sind neue RAMs eingetroffen.
Der Bootloader kann schon mal ein wenig mehr mit dem neuen RAM anfangen 
als mit dem alten, jedoch bekommt er das Timing immer noch nicht.

Diese Meldung kommt
1
cannot find opt_dle value

Was bezweckt dieser Wert und an was könnte es Hardwaretechnisch liegen?


Der komplette Log
1
===================================================================
2
3
         MT7621   stage1 code Dec 16 2019 17:45:55 (ASIC)
4
5
         CPU=500000000 HZ BUS=166666666 HZ
6
7
==================================================================
8
9
Change MPLL source from XTAL to CR
10
11
do MEMPLL setting..
12
13
MEMPLL Config : 0x11000000
14
15
3PLL mode + External loopback
16
17
=== XTAL-40Mhz === DDR-1200Mhz ===
18
19
PLL3 FB_DL: 0xa, 1/0 = 714/310 29000000
20
21
PLL2 FB_DL: 0xe, 1/0 = 628/396 39000000
22
23
PLL4 FB_DL: 0x12, 1/0 = 567/457 49000000
24
25
DDR patch working
26
27
do DDR setting..[01F40000]
28
29
Apply DDR3 Setting(use default AC)
30
31
          0    8   16   24   32   40   48   56   64   72   80   88   96  104  112  120
32
33
      ————————————————————————————————————————
34
35
0000:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
36
37
0001:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
38
39
0002:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
40
41
0003:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
42
43
0004:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
44
45
0005:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
46
47
0006:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
48
49
0007:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
50
51
0008:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
52
53
0009:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
54
55
000A:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
56
57
000B:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
58
59
000C:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
60
61
000D:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
62
63
000E:|    0    0    0    0    0    0    0    0    0    0    1    1    1    1    1    1
64
65
000F:|    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1    0
66
67
0010:|    1    1    1    1    1    1    1    1    1    1    0    0    0    0    0    0
68
69
0011:|    1    1    1    1    0    0    0    0    0    0    0    0    0    0    0    0
70
71
0012:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
72
73
0013:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
74
75
0014:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
76
77
0015:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
78
79
0016:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
80
81
0017:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
82
83
0018:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
84
85
0019:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
86
87
001A:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
88
89
001B:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
90
91
001C:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
92
93
001D:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
94
95
001E:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
96
97
001F:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
98
99
DRAMC_DQSCTL1[0e0]=13000000
100
101
DRAMC_DQSGCTL[124]=80000033
102
103
rank 0 coarse = 15
104
105
rank 0 fine = 72
106
107
B:|    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
108
109
cannot find opt_dle value
110
111
[EMI] DRAMC calibration failed

von Jan (bugsimpson)


Lesenswert?

Es lag wirklich am DRAM. Habe einen neuen drauf gesetzt und jetzt bootet 
die Kiste wieder. Vielen Dank für die Antworten.

von Tobyas H. (tobyas)


Lesenswert?

Tobyas H. schrieb:
> Laut deinem Logfile wird eine DRAM Kalibrierung mit 1200MHz für ein 933
> MHz DRAM Typ (DDR3L-1866) ausgeführt.

Ich lag hier offenbar falsch. Der Bootloader scheint sich auf die 
interne DDR-Controller clock zu beziehen. Die ist doppelt so hoch wie 
die am DDR Speicher (wg. double data rate).

Jan schrieb:
> rank 0 coarse = 15
> rank 0 fine = 72

Das sieht doch zum ersten schonmal gut aus. Jetzt gibt es ein Fenster 
mit validen Werten. Die einsen in den mittleren Reihen.

> cannot find opt_dle value
> Was bezweckt dieser Wert und an was könnte es Hardwaretechnisch liegen?

Ich würde auf eines der DQS-Signale (data strobe) tippen, dessen Ball 
keinen Kontakt hat. Das würde dazu passen, dass bei Variation dessen 
Delay zu den Daten-Leitungen kein valides (bzw. optimales) Timing 
gefunden wird.

Als Refenenz kurze Zusammenfassung was was opt_dle bedeutet:
"In the context of MT7621 / DDR PHY tuning, opt_dle often refers to:
Optimal Data Latch Enable delay — a timing parameter used during DDR 
memory training.
It’s part of the MEMPLL / DQS calibration process in the bootloader.
The bootloader runs a loop testing different delay values and picks the 
one that gives the most stable read/write results.
The chosen value is stored in opt_dle and applied to the DDR controller 
registers."

von Tobyas H. (tobyas)


Lesenswert?

Jan schrieb:
> Es lag wirklich am DRAM.

Glückwunsch Jan.
Meine letzte Antwort war wohl zu langsam. 😉

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.