Temat: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Hej !

Po nieudanej aktualizacji z karty SD uwaliło mi pamięć spi nagrywając domyślnie obraz firmware w komórkach
wcześniej niż powinien być tym sposobem uwalając u-boot-a i cała resztę później ...

Z tego co udało mi się wygrzebać w internecie pamięć posiada następującą mapę :

http://www.openipcam.com/files/ARM9/GM8 … e_V1.1.pdf

strona 4 i 5 to opisuje...



Udało mi się dostać się do kostki Winbonda i zgrać ją.
Oczywiście zgrana kostka nie ma się nijak do tego co powinno w niej być - dane są bynajmniej dziwne
z tego względu że szukając tekstu np " SPI BOOTSTRAP" nie znajduje go choć znalazłem podobne znaki ale jakby
przestawione i pogubione ....

Co bardziej ciekawe próbowałem sprawdzić czy aby dump się dobrze zgrał tak więc ... zgrany dump  => wyczyszczona kostka => wgrany spowrotem ... i kamera zachowuje się tak samo (w sensie kamera sie inicjuje i wali błędem o

MP SPI-NOR Bootstrap v0.2.1
SPI: Fail to read code in 0x6000

)

Próbowałem w na adres 0x6000 dorzucić u-boot-a i wtedy dostałem bład Check image header i jakiś adres...

Pomógłby mi ktoś postawić te kamerke na nogi ? fajny sprzęt a szkoda...
Mile widziany dump z kamery jeśli ktoś taką posiada !!!!
Załatwiło by to sprawę od razu ...
Moja kamera to Revision A

2

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

komprez napisał/a:

[...]
Oczywiście zgrana kostka nie ma się nijak do tego co powinno w niej być - dane są bynajmniej dziwne
z tego względu że szukając tekstu np " SPI BOOTSTRAP" nie znajduje go choć znalazłem podobne znaki ale jakby
przestawione i pogubione ....[...]

Hasło na dziś: https://pl.wikipedia.org/wiki/Kolejno%C … ajt%C3%B3w

A bardziej w temacie... poszukaj u D-Linka w ich centrum GPL archiwum dla tego modelu. Jak jest, to jest duża szansa, że będzie tam gotowy cały lub częściowy wsad na kość.

3

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Dzieki za naprowadzenie - do tej pory nie zagłębiałem się tak bardzo w tematyke grzebania we flash-u wink

Co do Dlinka to nie wiedziałem że mają swoje GPL ... właśnie ściągam co tam mają i będę patrzeć ..

4

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Ściągłem sobie SDK do tego Dlinka .. ale niesiety jest puste w sensie nic nie ma skompilowanego ...

Udało mi się uruchomić to środowisko i z powodzeniem skompilowalem sobie UBOOT-a ..

Niestety w katalogu BURNIN jest jakiś inny projekt kompilowany chyba programem od codewarrior (wyczytałem w PDF-ie z pierwszego posta)

Ktoś coś dopomoże ? wink

5

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Pepe2k miałeś rację ... pomalutku dochodzę do setna ...

Wg PDF każdy image w spi ma swój nagłówek w którym m.in jest nazwa..
tak więc znalazłem winowajcę rom.bin który poszedł z karty SD wygląda to tak :

€ZGM.....ľm….....mor.nib.......

znajduje się on dokładnie na adresie 0x6000 gdzie powinien być burnin.bin

gdzie na końcu widać nazwę oczywiście przestawioną.

Teraz mam pytanie ... skoro dump jest poprzestawiany to muszę swoje skompilowane pliki bin również poprzestawiać ?

6

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

komprez napisał/a:

Teraz mam pytanie ... skoro dump jest poprzestawiany to muszę swoje skompilowane pliki bin również poprzestawiać ?

Nie, problem masz raczej po stronie ustawień w programatorze albo w programie, w którym przeglądasz sobie pliki binarne.

7

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Programator mam ten "ryżowy" wink CH341A i takie samo oprogramowanie do niego.

Ale ciekawostką jest to że jak wrzuce plik dump spowrotem na kość (poprzestawiany) po wcześniejszm wymazaniu całej kości to kamerka odżywa z tym samym błędem- czyli jak mam to rozumieć ?

8

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

komprez napisał/a:

Programator mam ten "ryżowy" wink CH341A i takie samo oprogramowanie do niego.

Ale ciekawostką jest to że jak wrzuce plik dump spowrotem na kość (poprzestawiany) po wcześniejszm wymazaniu całej kości to kamerka odżywa z tym samym błędem- czyli jak mam to rozumieć ?

Że jest OK, tylko w programie te dane źle Ci pokazuje. Ściągnij sobie jakiś porządny edytor HEX i tam przygotuj wsad.

9 (edytowany przez komprez 2015-10-22 09:13:06)

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Tzn tak ... używałem już HxD oraz 010 Editor-a i w obu przypadkach dump jest wyświetlany tak samo jak w programie od programatora ... podejrzewam że on sam w sobie przestawia bajty podczas wgrywania i odczytu...

Znalazłem w necie bibliotekę pod linuxa do tego CH341A i jest tam coś takiego :

/* ch341 requres LSB first, swap the bit order before send and after receive  */


Czyli wynika chyba z tego że pliki bin będę musiał przerobić na big endian-a przed wgraniem

10

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

komprez napisał/a:

Tzn tak ... używałem już HxD oraz 010 Editor-a i w obu przypadkach dump jest wyświetlany tak samo jak w programie od programatora ... podejrzewam że on sam w sobie przestawia bajty podczas wgrywania i odczytu...

Znalazłem w necie bibliotekę pod linuxa do tego CH341A i jest tam coś takiego :

/* ch341 requres LSB first, swap the bit order before send and after receive  */


Czyli wynika chyba z tego że pliki bin będę musiał przerobić na big endian-a przed wgraniem

A na czym jest ta kamera - jaki tam CPU/SoC siedzi? Część architektur ma możliwość pracy na obu typach (np. MIPS), ale niektóre tylko na jednym. Poza tym, skoro udało Ci się coś skompilować z SDK, to jak sobie taki plik binarny otworzysz, to powinieneś dojść do tego, czy jest to LE, cz też BE.

A jeśli nie dojdziesz, to i tak masz tylko dwie możliwości, więc pozostaje metoda prób i błędów.

11

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Procek to GM8126 architektura ARM...

Co do plików bin wyprodukowanych prze ze mnie to są ok ... tzn stringi są czytelne normalnie.

12

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

komprez napisał/a:

Procek to GM8126 architektura ARM...

Co do plików bin wyprodukowanych prze ze mnie to są ok ... tzn stringi są czytelne normalnie.

A jak wgrasz sobie taki wsad na kość i potem z niej odczytasz swoim programatorem to coś się zmienia? Jeżeli nie, to nie widzę problemu, powinno być ok.

13

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Wgrany wsad i odczytany jest zawsze taki sam ... jak pisałem wyżej sprawdziłem to aby wykluczyć uwalony programator wink

Czyli tak ... aby skonwertować sobie swojego bin-a do BE to co byś mi polecił ? ew. jakiś soft który ma taką opcję

14

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Znalazłem fajny soft HexWorkshop i za jego pomocą zrobiłem konwersję byte swap dump-a którego zrobiłem i elegancko
są teraz do odczytania wszystkie stringi...

No to teraz już mogę zacząć zabawe z produkcją obrazu..

15

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Pepe jeszcze tylko pytanie ... oto image header z nsboot.bin który naszczęście się ostał w spi i wygląda on tak :

FF  4D475A80   00000000E829000000000000  6E73626F6F742E62696E   0000
     img header                                                    nazwa pliku

.MGZ......)......nsboot.bin..

teraz tak ... to co jest wyżej jest po konwersji ... i nazwa pliku jest czytelna  natomiast zgodnie z dokumentem Flash System od tego procka podaje on że każdy imgage header jest złożony z tzw Magic Number ( 0x805A474D)  co wyżej widać że jest przestawione ....


TO jak to mam rozumieć ? Nagłówek czyta z byte-swap-em a reszta nie ? wink

16

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

komprez napisał/a:

Pepe jeszcze tylko pytanie ... oto image header z nsboot.bin który naszczęście się ostał w spi i wygląda on tak :

FF  4D475A80   00000000E829000000000000  6E73626F6F742E62696E   0000
     img header                                                    nazwa pliku

.MGZ......)......nsboot.bin..

teraz tak ... to co jest wyżej jest po konwersji ... i nazwa pliku jest czytelna  natomiast zgodnie z dokumentem Flash System od tego procka podaje on że każdy imgage header jest złożony z tzw Magic Number ( 0x805A474D)  co wyżej widać że jest przestawione ....


TO jak to mam rozumieć ? Nagłówek czyta z byte-swap-em a reszta nie ? wink

To jest tylko kwestia nomenklatury. Ja nie wiem, czy Ty powinieneś robić w ogóle konwersję. Zazwyczaj z kompilacji wychodzą pliki binarne w odpowiedniej konfiguracji kolejności bajtów (porównaj sobie obrazy OpenWrt dla różnych architektur). A to, w jaki sposób jest to wyświetlane w edytorze HEX, to jest kwestia umowna - to Ty powinieneś wskazać programowi z jaką kolejnością bajtów ma do czynienia i w jaki sposób chcesz żeby Ci to wyświetlał. Nie mam zielonego pojęcia w jaki sposób dane wyświetla Twój program od programatora, ale jestem pewien na 100%, że nie potrafi rozpoznać z jakim typem kolejności ma do czynienia, bo i niby na jakiej podstawie? smile

17 (edytowany przez komprez 2015-10-22 11:35:25)

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Znaczy się powiem CI tak ... to że obraz bin np. openwrt masz bez konwersji to nie znaczy że po uploadzie go do routera
u-boot nie umieści go w SPI już z w BE ... i dlatego szczytując go bezpośrednio programatorem z kostki wszystko jest przestawione ... podobnie z dumpem za pomocą u-boot-a ... zapewnie sam to przestawia i ma się gotowca że tak powiem ..

No nic ... jak pisałeś pozostało mi metoda prób i błędów ... załaduje najpierw burnin-a i uboot-a ... jak to mi ruszy to
firmware już bez problemu ...

będę pisać jak sprawa się ma bo jak się to mówi ? sytacja jest dynamiczna wink

18

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

I kolejne sprawozdanie z napraw wink

Po obrobieniu obrazu :
- skopiowaniu dumpa do pustego pliku
- otwarcie burnin.bin
- konwersja byte-swap 32bit
- wklejenie go do nowego dumpa na adres 0x6100 (0X6000-to naglowek)
- zmiana nagłówka (size oraz nazwa pliku)

I światełko w tunelu !

                                                                               
                                                                               
MP SPI-NOR Bootstrap v0.2.1                                       
Boot image offset: 0x6000. Booting Image .....
                               
0567Will set the following freq...
                         
PLL1: 800 MHz, PLL2: 540 MHz, CPU freq: 540 MHz, AHB freq: 270 MHz, DDR freq: 80
0 MHz
                                                               
go...

                                                                         
BG: 0x94314000
                                                               
error 0: , pass 3072

Can not find out boot block[0] or check sram fail[0].

                         
  ----------------------------------------------------------------------------


   GM Technology Corporation CPE Burnin Program (v0.2.5)

                     
   Platform: GM81262210  Cache: Disabled 

                                   
   PLL1: 800 MHz       PLL2: 540 MHz       DDR: 800 MHz

                       
   CPU : 540 MHz       HCLK: 270 MHz       PCLK: 135 MHz

                     
   UART:   1 MHz       H.264: 270 MHz      MPEG4: 200 MHz

                     
   STXWAMODE: RAO=1, STMWA=x

                                                 
  ----------------------------------------------------------------------------


( 1) DDR Test             ( 7) Watchdog Rest Test   (10) I2S Module1 Test     


(13) LCD Test             (14) Query RTC            (18) SAR ADC             


(19) MCP100 SRAM Test     (22) Enable Cache         (35) OTG 210 Test         


(50) MCP Clock Setting    (51) FCS Test             (61) I2C Read/Write       


(62) Change Cache WA_Mode (71) Address Read         (72) Address Write       


(73) Burn UBOOT image     (74) Burn Burn-In image   (75) Burn Linux image     


(76) Burn Loader image    (77) Burn fresh spi flash (78) BootFromSD           


(79) BootFromUSB          (80) UBOOT, Linux         

                         
Command>>

19

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Uboot też już funguje wink
Halogeny w tunelu wink

Load image from SPI-NOR offset 0xa6000 to sdram 0x2800000
Jump 0x2800000


U-Boot 2008.10 (Oct 20 2015 - 22:15:40)

I2C:   ready
DRAM:  128 MB
Manufacturer ID : 0018
Device ID       : 009F
Device Code 2   : 0018
Flash:  0 kB
#SF: Got idcode ef 40 18
##crc data not match, calc = 24b9ebd6, env field = 74db4325
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   FTMAC110#0

20

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

pepe ... a od nośnie tego błędu :
##crc data not match, calc = 24b9ebd6, env field = 74db4325
*** Warning - bad CRC, using default environment

to jak mam to rozumieć ? skopane coś przy kompilacji czy jak ?

21

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

Może wejdź w uboota i zapisz środowisko. Może nic po prostu tam nie ma i jedzie na domyślnych ustawieniach.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

22

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

OK Cezary ... mam nadzieję że uda mi się dziś to odpalić bo na chwilę obecną musze tam wrzucić obraz fw...
Wczoraj coś próbowałem to zauważyłem że chce go zaczytać z adresu 0xd00000 tak więc będę dziś próbować...

Jeszcze jedno ... jest tam taka opcja jak widzieliście powyżej boot fom sd ... i oczywiście próbowałem ...
nazwałem firmware jako liniux (pisało że tak ma być) i przeleciał pasek że niby kopiuje do nand-a
a póżniej Starting AP czy coś takiego i koniec ... tyle ...

O czym to może świadczyć ? zły firmware czy coś nie tak z podstawową konfiguracją  ?

Teoretrycznie jeśli chodzi o pamięc to testowałem ( 1) DDR Test i było ok.

23

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

komprez napisał/a:

pepe ... a od nośnie tego błędu :
##crc data not match, calc = 24b9ebd6, env field = 74db4325
*** Warning - bad CRC, using default environment

to jak mam to rozumieć ? skopane coś przy kompilacji czy jak ?

U-Boot to nie tylko obraz samego bootloadera. Najczęściej tzw. zmienne środowiskowe są zapisane w osobnym sektorze/bloku FLASH/NAND. Wgrałeś pewnie samego U-Boota, a w miejscu, gdzie on oczekuje zmiennych środowiskowych nie ma nic... lub jest jakaś kaszanka pozostała po tym nieudanym wgraniu firmware. Najprościej możesz zrobić tak jak napisał Cezary - polecenie "saveenv". Powinien zapisać domyślne zmienne, napisze Ci też pod jakim adresem są i jaki rozmiar mają.

komprez napisał/a:

Jeszcze jedno ... jest tam taka opcja jak widzieliście powyżej boot fom sd ... i oczywiście próbowałem ...
nazwałem firmware jako liniux (pisało że tak ma być) i przeleciał pasek że niby kopiuje do nand-a
a póżniej Starting AP czy coś takiego i koniec ... tyle ...

O czym to może świadczyć ? zły firmware czy coś nie tak z podstawową konfiguracją  ?

Z tego co widzę, to tam są dwa bootloadery i U-boot jest dopiero drugi. Jeżeli tak ma być, to raczej U-Boot powinien odpowiadać za wczytanie i uruchomienie kernela, a nie ten bootloader pierwszego poziomu. Zakładam, że nie wiesz jak powinien wyglądać prawidłowy bootlog i nigdzie go nie znalazłeś? Zacznij od przejrzenia zmiennych środowiskowych (polecenie "printenv") i dostępnych poleceń w U-Boot (polecenie "help" lub po prostu "?").

24 (edytowany przez komprez 2015-10-23 19:39:24)

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

OK błąd ze zmiennymi udało się zrobić ... saveenv pomogło wink

Natomiast mam problem z samym bootowaniem linuxa ... nie rusza.
Oto log :
MP SPI-NOR Bootstrap v0.2.1
Boot image offset: 0x6000. Booting Image .....
0567Will set the following freq...
PLL1: 800 MHz, PLL2: 540 MHz, CPU freq: 540 MHz, AHB freq: 270 MHz, DDR freq: 800 MHz
go...
BG: 0x94314000
error 0: , pass 3072

*********************************************
Please input ESC to run UBOOT
Please input . to run burn-in
Please push factoryReset Button for rescue mode from SD card while the starting of bootup
Otherwise, system will run Linux after 1 sec
*********************************************
  ----------------------------------------------------------------------------
   GM Technology Corporation CPE Burnin Program (v0.2.5)
   Platform: GM81262210  Cache: Disabled
   PLL1: 800 MHz       PLL2: 540 MHz       DDR: 800 MHz
   CPU : 540 MHz       HCLK: 270 MHz       PCLK: 135 MHz
   UART:   1 MHz       H.264: 270 MHz      MPEG4: 200 MHz
   STXWAMODE: RAO=1, STMWA=x
  ----------------------------------------------------------------------------
( 1) DDR Test             ( 7) Watchdog Rest Test   (10) I2S Module1 Test
(13) LCD Test             (14) Query RTC            (18) SAR ADC
(19) MCP100 SRAM Test     (22) Enable Cache         (35) OTG 210 Test
(50) MCP Clock Setting    (51) FCS Test             (61) I2C Read/Write
(62) Change Cache WA_Mode (71) Address Read         (72) Address Write
(73) Burn UBOOT image     (74) Burn Burn-In image   (75) Burn Linux image
(76) Burn Loader image    (77) Burn fresh spi flash (78) BootFromSD
(79) BootFromUSB          (80) UBOOT, Linux
Command>>


I to na tyle ...

Obraz również zmodyfikowany poprzez BYTEFLIP pod adresem 0xD6000


Komenda 78 (start z SD) daje taki wynik :

Command>>78
File Name must be <linux>
Card Size = 972MB,max data block length = 0x200
Drive 'C' Have No Find Partation Table

...SD Card on Drive C: !!!
Command initial
Copy to address 0x2800000
Wait.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Total copy 12479877 bytes.
## Starting AP at 0x02800000 ...


Po czym zawias

25

Odp: Kamera IP DLINK DCS-5222L - uwaliło flash spi - pomocy...

I jeszcze to bo zapewne będzie pomocne :

=> printenv
bootargs=
bootcmd=sf probe 0:0;sf read 0x4000000 0xd6100 0x800000;go 0x4000000
bootdelay=3
baudrate=38400
ethaddr=00:42:70:00:30:22
ipaddr=10.0.1.52
serverip=10.0.1.51
gatewayip=10.0.1.51
netmask=255.0.0.0
ethact=FTMAC110#0
ver=U-Boot 2008.10 (Oct 20 2015 - 22:15:40)