Vai al contenuto
PLC Forum


Circuito reset


3kek1

Messaggi consigliati

del_user_97632
 

dd if=/dev/mmcblk0 of=/tmp/mnt/Ciccio.bin

ok, hai salvato tutta l'area "user data", quindi tutte le partizioni del file system, gia bene

 

 

Ma mi spieghi come mai il log di avvio mostrava scritte anche antecedenti alla scritta di U-boot versione, e io come posso pensare di arrivare alla console di u-boot se nemmeno compare una sola riga di log?

Ho provato a cercare rapidamente un datasheet / RM ma non trovo nulla. Se lo trovi posta qui un link.

 

Se hai provato a collegare i fili per CLK/CMD/D0-D3, e non va se sei su windows naturalmente windows non simpatizza onc ext2/4, prova da linux, per altro sono driver diversi e potrebbe essere che linux ce la faccia.

Anche se la prima partizione puo benissimo essere VFAT (alcune volte solo mmcblk0p1 e' VFAT).

 

Ci sono 2 tipi di boot che vanno per la maggiore:

 

1)

ROM Bootloader -> carica u.boot in SRAM (ram statica, interna alal cpu, che va da 4 a 512K in genere) ->u-boot inizializa le ddr e carica il kernel in ddr

2)

ROM Bootloader -> carica un piccolo SPL (secondary boot loader) quando la memoria SRAM e' molto piccola, e potrebbe essere quello dei 2 messaggi iniziali, -> 3 il piccolo SPL carica il "Tertiary" (terzo) bootloader che e' u-boot, che carica il kernel

 

Un po come alla fiera dell'est, ricordi la canzone ?

 

(scusa per tutti i typo ma sono piuttosto stanco e sbaglio molto) ora devo smettere di seguire il forum o mi licenziano, controllero verso sera, buona fortuna

 

 

Modificato: da _angelo_
Link al commento
Condividi su altri siti


Aiuto! E' sparito il sistema di quotaggio testo. Manca l'icona pure, beh

(PS: ho quotato inserendo a mano un tag QUOTE)

 

 


Se hai provato a collegare i fili per CLK/CMD/D0-D3
 

 

Anche GND...

datasheet di cosa, della CPU? Mi sembra che non si trova..

Sul fatto di Windows so che non mostrera' mai il contenuto della memoria aprendo l'icona in Gestione Risorse, pero' almeno l'icona dovrebbe comparire, aprendola dovrebbe chiedere di formattare, ma io visualizzerei il contenuto con l'Hex editor HxD con la voce Apri disco fisico, come faccio quando voglio aprire tutta la struttura raw ad esempio di una normale chiave usb drive di cui vedo a partire dal settore di avvio.

 

 


1) ROM Bootloader -> carica u.boot in SRAM
 

 

Carica da dove?

 

Per chiarirci forse meglio, ti metto un estratto iniziale del LOG della scheda funzionante (PS: come fai a inserire il testo dei log in un riquadro?):

 

  Boot-
DRAM Channel A Calibration.
HW Byte 0 : DQS(8 ~ 37), Size 30, Set 22, HW_Set 25.
HW Byte 1 : DQS(5 ~ 31), Size 27, Set 18, HW_Set 19.
HW Byte 2 : DQS(8 ~ 37), Size 30, Set 22, HW_Set 24.
HW Byte 3 : DQS(10 ~ 36), Size 27, Set 23, HW_Set 25.
 ,rDQS CHA offset -0x03030203 .
DRAM A Size = 512 Mbytes.
DRAM Channel B Calibration.
HW Byte 4 : DQS(9 ~ 40), Size 32, Set 24, HW_Set 26.
HW Byte 5 : DQS(6 ~ 35), Size 30, Set 20, HW_Set 22.
 ,rDQS CHB offset -0x00000004 .
DRAM B Size = 256 Mbytes.
Boot

Start Pmain

0x0000a000
EMMC boot

CID:0x64341125
:0x301096cf
:0x30344739
:0x11010030
LZHS addr:0x00100040
LZHS size:0x00146370
LZHS checksum:0x000000c5
Boot

Start Lmain


MT5398 Boot Loader v0.9
Boot reason: A/C power on!!
Load VGA internal EDID.................
 Load HDMI internal EDID***********.................
 CEC Physical offset 156
HDMI1 Physical adr 0x40
HDMI1 PA 0x40
HDMI1 checksum 0x98
HDMI2 PA 0x30
HDMI2 checksum 0xa8
HDMI3 PA 0x20
HDMI3 checksum 0xb8
HDMI4 PA 0x10
HDMI4 checksum 0xc8
SIF_Master0: new design
IR DATA register : 0x       0
Boot reason: A/C power on!!T8032 init A/C on case loader stage...
Load T8032 FW (addr: 0x  e1b2d0, size: 24576)success!!
T8032 FW version: 73
T8032 change to loader stage...
Turn on 4k2k Lvds power
LDR_FlashCopy 0xf010 0x7aa00 0x80
(SDR)Request Clk:24MHz Bus Clk:24MHz, SelVal:7
1st MAC in EEP is valid (80:00:80:00:80:00)
1st : (80:00:80:00:80:00)
2nd : (00:80:00:80:00:ff)
Boot reason: A/C power on!!Boot reason: A/C power on!!Org:0x10 Flags:0x10
                             
PDWNC_EnterPowerDown(100,0)
Disable VGA wakeup
Standby            þH¡H¨øDRAM Channel A Calibration.
HW Byte 0 : DQS(8 ~ 37), Size 30, Set 22, HW_Set 25.
HW Byte 1 : DQS(5 ~ 31), Size 27, Set 18, HW_Set 19.
HW Byte 2 : DQS(8 ~ 37), Size 30, Set 22, HW_Set 24.
HW Byte 3 : DQS(9 ~ 35), Size 27, Set 22, HW_Set 25.
 ,rDQS CHA offset -0x03030203 .
DRAM A Size = 512 Mbytes.
DRAM Channel B Calibration.
HW Byte 4 : DQS(9 ~ 40), Size 32, Set 24, HW_Set 26.
HW Byte 5 : DQS(6 ~ 35), Size 30, Set 20, HW_Set 22.
 ,rDQS CHB offset -0x00000004 .
DRAM B Size = 256 Mbytes.
Boot

Start Pmain

0x0000a000
EMMC boot

CID:0x64341125
:0x301096cf
:0x30344739
:0x11010030
LZHS addr:0x00100040
LZHS size:0x00146370
LZHS checksum:0x000000c5
Boot

Start Lmain


MT5398 Boot Loader v0.9
SIF_Master0: new design
IR DATA register : 0x       0
T8032 change to loader stage...
Turn on 4k2k Lvds power
LDR_FlashCopy 0xf010 0x7aa00 0x80
(SDR)Request Clk:24MHz Bus Clk:24MHz, SelVal:7
1st MAC in EEP is valid (80:00:80:00:80:00)
1st : (80:00:80:00:80:00)
2nd : (00:80:00:80:00:ff)
Org:0x10 Flags:0x10
                             
PDWNC_Init
USB0: Set GPIO51 = 1.
USB1: Set GPIO200 = 1.
USB2: Set GPIO200 = 1.
USB3: Set GPIO200 = 1.
Display 0x00e57968 background:0x00000000
No valid index found from EEPROM


OSD_SetPlaneSwitchOrder[1,2,0],Switch[2,3,1]
---------- [SA7] vErrorHandleInit ----------
[SA7] Error handling init
[SA7] PANEL_GetPanelWidth=0x780, PANEL_GetPanelHeight=0x438 , wDrvGetOutputHTotal=0x898 , wDrvGetOutputVTotal=0x465
[SA7] PANEL_GetHTotalMax=0xa00, PANEL_GetHTotalMin=0x848, PANEL_GetVTotalMax=0x5aa, PANEL_GetVTotalMin=0x443
[SA7] PANEL_GetPixelClkMax=154000000, PANEL_GetPixelClkMin=119260000
[SA7] PANEL_GetPixelClk60Hz = 0x8d9ee20
---------- [SA7] vErrorHandleSetByTiming ----------
[SA7] u2HSyncWidth=260, u2HSyncStart=1930, u2VSyncWidth=50660, u2VSyncStart=15996
---------- [SA7] vErrorHandleSetByTiming end----------
---------- [SA7] vErrorHandleSetByPanel end----------
[SA7] vDDDSInit
---------- [SA7] vErrorHandleSetByTiming ----------
[SA7] u2HSyncWidth=44, u2HSyncStart=1936, u2VSyncWidth=3, u2VSyncStart=1119
---------- [SA7] vErrorHandleSetByTiming end----------
###VbyOne VOPLLInit  finsih###vDrvSetOCLKClockSchemaInit.
###VbyOne VOPLLSet  finsih###[SA7] _fgVopllUseDDDS = True
[LVDS] VOPLL Initialize successful !
VB1 VB1 impedance cal  pass and value =5 .................


GPIO42:0


u4DimmingSwap = 127
[4K2K][VB1]------send FHD_60 CMD #1
[4k2k] i2c send error
[4k2k] i2c send error
[4k2k] i2c send error
[4k2k] i2c send error
[4k2k] i2c send error
[4k2k] i2c send error
[4k2k] i2c send error
[4k2k] i2c send error
[4k2k] i2c send error
[4k2k] i2c send error
[4k2k] i2c send error
LDR_OsdDisplay(13, 0x15600000, 768, 240)
Color:13 BmpAddr:0x15600000 Width:768 Height:240
OSD_Base_SetHStart[h=0x106,v=0x6]
Panel 1920 x 1080


*************u4BmpPitch=1536******************
OSD_RGN_Create ok u4Region=0
u4OutWidth=768,u4OutHeight=240,u4OutX=576,u4OutY=420.


OSD_SetPlaneSwitchOrder[1,2,0],Switch[2,3,1]


Flash load lzhs header from 0x80000 to dram(0x1500170), size=2048
Decompression uboot to 0x00800000...


Flash load image from 0x80000 to dram(0x1500170), size=0x3886b


Flash load tz from 0x213360(part_4) to dram(0x1ee00000), size=0x31467
secure boot ok
LZHS start
LZHS done
secure boot ok
LZHS start
LZHS done
Starting image...

 


U-Boot 2011.12.12 (Mar 03 2015 - 09:15:26)


DRAM:  374.9 MiB
WARNING: Caches not enabled
MMC:    aes init success!
HOST 1
Dev Num: 0, Timing Position: 0, Sample Edge: 0x00
11010030:30344739:301096CF:64341125
id1:00303034 id2:47393010
eMMC Name: THGBM5G5A1JBAIR
Dev Num: 9, Timing Position: 1, Sample Edge: 0x00
Dev Num: 9, Timing Position: 2, Sample Edge: 0x11
: 0

 

Modificato: da Trans Istor
Link al commento
Condividi su altri siti

Dunque chiedo conferma, senza log non ho nessuna speranza di entrare nella console di U-boot? No perche' col metodo fili saldati oramai mi sembra di averle provate tutte, tranne il fatto che sto usando fili di rame singoli non smaltati e mi tocca tenerli separati con pezzi di carta.. :wacko:

 

Link al commento
Condividi su altri siti

del_user_97632

Da dove provi a leggere la emmc ? Se usi linux, a emmc connessa dovrebbe apparire un device /dev/mmcblkX (x numero di device, 0 1 o 2 etc)

E se ci sono errori nel rilevarla, potresti vedere degli errori col comando "dmesg, o in /var/log/messages

 

 

Eh, quando la negoziazione salta poi da 400khz a 4 fili 50Mhz o forse anche 200Mhz, a quel punto i fili volanti magari creano problemi, oppure hai in parallelo sui dati una qualche resistenza che disturba. 

 

Non ho cpaito se hai trovato i 3 pin delal console sulla scheda ? Mi collegherei li col temrinale per vedere se escono messaggi. Prova anche a inveritre TX e RX se non va, e provare un po di baud rate, 9600, 19200. 57600 e 115200,

 

 

Link al commento
Condividi su altri siti

1) dai punti che ho trovato sullo schema, precisamente collegati direttamente alla memoria, non prima delle resistenze da 23 ohm circa

se intendi da quale sis.op. Per ora da Windows, avevo provato linux ma i collegamenti erano sbagliati, ora come ho spiegato non credo che win abbia problemi, se l'interfaccia e' compatibile con le SD allora deve comparire l'icona, poi apro HxD..

2) Come ho detto non ho problemi a collegarmi alla UART, ci sono sia predispos. per connet. 3 pin che collegamento via VGA

il problema e' se ha senso provare a collegarsi senza avere un log dovendo mettermi li a separare i fili, se e' il caso sosotituisco i fili nudi con

fili guainati.

Modificato: da Trans Istor
Link al commento
Condividi su altri siti

del_user_97632

Mmm situazione si complica pare ..

 

Riguardo la tua domanda che avevo perso sopra, da "dove" il ROM bootloader fa il boot:

Il ROM bootloader, scritto nella ROM della cpu, "in genere", perche' bisogna vedere il datasheet della cpu, che non trovo, prevede varie possibilita' per il boot iniziale. Di nuovo, "in genere"

- bus parallelo classico

- spi flash

- nand flash

... e per cpu piu potenti piu

- usb

- emmc

Sempre "in genere", il primo dispositivo della lista qui sopra da cui viene effettuata la prima lettura in SRAM interna e' deciso da dei pin di "bootstrap", che sono in genere una serie di resistenze pulluppate o pull-down-ate connesse alla cpu.

 

Di solito, non puo' essere il ROM bootloader a inizializzare le DDR, perche' non avresti modo di scegliere le SDRAM/DDR che vuoi. Quindi l'inizializzazione delle DDR lo deve fare un bootloader caricato in SRAM. Dai log che vedo, "parrebbe" che prima di u.boot venga caricato un piccolo bootloader del costruttore. Che probaiblmente e' nei primi byte del settore di boot della emmc.

 

Quindi per il ruo caso il flusso pare

 

ROM bootloader -> carica Primary botoloader del costruttore in SRAM (immagino da eMMC, sempre che non ci sia una flash interna, che di solito in cpu di questo genere non c'e', ma non lo escludo, esiste di tutto) -> inizializzazione DDR -> caricamento u.boot in DDR -> salto a u.boot ---> caricamento in DDR del kernel e salto finale al kernel

 

L'usicta principale della messaggistica e' sempre la console seriale. Se ti colleghi correttamente, e apri un Teraterm (parlo linguaggio windows) devi vedere qualche messaggio di boot.

 

In fine, si, da windows dovresti vedere apparire il dispositivo, poi cliccando su ovviamente qualche errore, ma il dispositivo in esplora risorse dovrebeb apparire. Molto meglio se trovi modo di leggerla da linux, perche c'e' un po di messaggistica del driver, ma non voglio complicarti la vita

 

.

 

 

 

 

 

 

 

 

 

Link al commento
Condividi su altri siti

Per Teraterm intendi un programma di terminale? Anche uno qualunque come Hyperterminal che ho usato? Ma se non mi compare nessun messaggio vuol dire che e' spacciata o premendo tasti posso far comparire qualcosa?

Link al commento
Condividi su altri siti

del_user_97632

Si Hyperterminal, quel che e' di default in widows.

 

La console seriale e' la porta dove u-boot, ma immagino anche il bootlaoder precedente, mandano l'output per default, eccetto qualche scheda che magari utilizza la uart2 invece della 1 o cose del genere. Dovresti ricevere caratteri, e da li digitando qualsiasi tasto fermi il conto alla rovescia di u-boot e entri nel suo prompt comandi. Talvolta il conto alal rovescie e' configurato a 0, quindi per entrare nel prompt devi premere dei tasti (qualsiasi) motlo velcemente.

 

Se non esce niente dai tre fili verifica:

- non e' che c'e' un driver 232 prima dei 3 fili ? Allora sei gia in 232.

- altrimenti, come spesso accade, i pin sono UART TTL/CMOS LL. Stai usando un adattatore TTL/LOGIC LEVEL -> 232 ? o TTL->USB ?

- provare a invertire RX e TX

- provare a cambiare i baud rate, 9600. 19200, 57600 115200, ma sempre n 8 1.

 

insomma smanettamenti del genere. a ogni prova riavvia.

 

Link al commento
Condividi su altri siti

Non hai capito che non ho nessun problema a collegarmi all'UART, ho un programmatore RT809F molto usato dai riparatori TV, esso ha una porta VGA ISP che colloquia con la VGA del tv, e' uno dei pochi modelli che fa questo tra i tv, il mio problema e' che ricordo che dopo la formattazione dell'area utente al riavvio niente di niente output, ora che scrivo sto pensando che la uart e' collegata sia sulla vga che su tre fori per connettore a cui gia mi ero connesso nelle prime prove, il log era lo stesso quindi penso si equivalgano ma meglio che controllo su schema, del resto sul VGA escono molte scritte gia prima di U-boot quindi il log e'completo, se avessi il log della sessione in cui ho cancellato la memoria potrei verificare che ho lasciato intatte le partizioni boot 1 e 2, ma cosi mi ricordo, e se cosi fosse pero' non si spiega il log del tutto assente. Domani appena raccolgo la calma, mi saldo 4 fili isolati e faccio la prova, mica che mi sto rinco...do con queste prove notturne da smnettone profondo..

Link al commento
Condividi su altri siti

del_user_97632

No, "non capisco" cosa centri la UART con la VGA. Nella presa VGA hai il video e un canale i2c per EDID, ma non c'e' nessuna UART. Se tu vedevi il log tramite il video VGA, sappi che e' tutta un'altra cosa, perche' il video viene inizializzato in un certo punto del processo di boot, quindi ci possono essere degli errori che vedi solo da seriale, ma nel video vedi nero. Anche il kernel linux tiene in memoria la messaggistica e la manda poi fuori nel video, ma se si pianta prima, gli errori li vedi _solo_ dalla seriale uart (tre fili). E magari da li anche riesci a accedeere a u-boot.

 

Poi "non capisco" perche' non ci sia un pdf con i cablaggi di questo famoso programmatore. Pace.

 

Ve beh, ti auguro buona fortuna, devo dire che il tempo investito qui nel forum, che non e' poco, lo perdo per altre cose che non riesco a fare. Mi prendero' una pausa.

 

 

 

.

 

 

 

 

 

 

 

 

 

Link al commento
Condividi su altri siti

Ma si non preoccuparti, mi hai gia' dato qualche nozione interessante, non spero certo che tu mi segua ancora, io lo faccio con altri, ma sono un caso a parte..

Vedo che non ti fidi, del fatto che ho ricevuto il log integrale dalla porta VGA che oltretutto e' solo in ingresso per cui non c'entra mostrare a video, se sei scettico ancora ti allego il log integrale ma in realta' tu che sei esperto di questo ambito dovresti riconoscere gia' dallo scampolo sopra che il log parte dalle prime fasi di boot, quindi e' integrale, sulla VGA ci sono 2 pin normalmente non usati, per cui penso coesistera' i2c e uart, sono non standard, bene sull'argomento non ho altro da dire, piuttosto stanotte causa insonnia da tosse mi sono messo li svogliatamente a saldare fili, cambiando quelli nudi con altri ricoperti, ho controllato bene le saldature, purtoppo come collegamento diretto memoria>lettore usb non ci siamo, Windows non mostra l'icona, poi ho sconnesso il lettore e ho connesso il programmatore RT in VGA dissaldando il ponticello del reset CPU, purtroppo e' come mi ricordavo nessun log, nenanche premendo e tenendo premuto un tasto all'alimentazione. Devo accettare forse il fatto che la mia memoria non e' un granche e' le boot 1 e 2 le ho cancellate. Sono all'epilogo direi.. Grazie tante.

 

Aggiungo una nota, ho letto tempo fa che con un lettore smart card non si puo accedere direttamente alle partizioni di boot di una SD/mmc e che le stesse sono indispensabili per l'identificazione della memoria stessa, devo accettare questo e che le part. sono andate al macero come spiegazione del fallimento. Scheda da buttare. Mannaggia a quel Linus..

 

Modificato: da Trans Istor
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...