Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Tlaciaren Samsung ML-2525 - firmware
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Výpočetní technika
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
rnbw



Založen: Mar 21, 2006
Příspěvky: 33756
Bydliště: Bratislava

PříspěvekZaslal: po březen 11 2013, 22:49    Předmět: Citovat

Tak dakujem za pomoc, uz asi ostavaju len nejake pokusy so subormi. Skusim firmware pre ine tlaciarne s rovnakym CPU a pripadne ich menit, co na to bootloader povie.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: po březen 11 2013, 23:23    Předmět: Citovat

Ono to má 45+12 bytů hlavičku a navíc je to big-endian ARM.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rnbw



Založen: Mar 21, 2006
Příspěvky: 33756
Bydliště: Bratislava

PříspěvekZaslal: po březen 11 2013, 23:34    Předmět: Citovat

Zistil som, ze to asi nebude len ID typu tlaciarne, ale pravdepodobne nejako suvisi aj s verziou firmwaru. Ale stale neviem, odkial to pochadza.

ML2520_V1.01.00.84.fls: 000F69A4
FIX_NU_0000-0000000000_ML2525_V1.01.00.85.hd: 000F69A5
ML2520_V1.01.00.86.fls: 000F69A5

FIX_NU_0000-0000000000_ML1660_V1.01.00.34.hd: 000F9082
FIX_0000-0000000000_ML1660_V1.01.00.35.hd: 000F9083
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: po březen 11 2013, 23:51    Předmět: Citovat

To já také nevím, i když už teď ten disassembling dává smysl, je to 6MB instrukcí vzniklých překladem z Cčka, takže chuťovka a navíc pro ARM. Confused
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rnbw



Založen: Mar 21, 2006
Příspěvky: 33756
Bydliště: Bratislava

PříspěvekZaslal: út březen 12 2013, 0:05    Předmět: Citovat

Tak to je fakt chutovka... Este skusim nejake experimenty, napr. odpojit niektory adresny pin SDRAM, ci potom nahodou boot loader neusudi, ze je obsah flash poskodeny. Inak SDRAM som pre istotu skusal aj vymenit, ale ziadna zmena, tak som vratil naspat povodnu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: út březen 12 2013, 22:18    Předmět: Citovat

Tak jsem se v tom ještě chvíli vrtala. Zjistila jsem, že ten vlastní kernel (začíná na 0x1C00C a je dlouhý 0x41FEC) je šifrovaný pomocí nějakých dvou tabulek (proto v něm není čitelný žádný text). Flashovací program nejdříve testuje checksum toho nového image načteného z PC, ten zjevně sedí. Pak dešifruje do paměti jak ten nový, tak ten starý kernel a získá z nich jakási čísla, to jsou ta dvě čísla v [[[ ]]]. První je ze starého kernelu a druhé z nového. V algoritmu získání těch dvou čísel jsem se bohužel ztratila. Sad Jen vím, že pokud vyjde to číslo záporné, hodí to chybu. A číslo patřící ke starému kernelu je záporné a tak to hodí "Image is invalid".
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rnbw



Založen: Mar 21, 2006
Příspěvky: 33756
Bydliště: Bratislava

PříspěvekZaslal: út březen 12 2013, 22:21    Předmět: Citovat

Porovnal som subory ML2520_V1.01.00.84.fls a ML2520_V1.01.00.86.fls, ktore maju rozdielne ID.

Prvy rozdiel je az na offsete 0x1c053, hned za zaciatkom nejakeho bloku (ked odrezem zo suboru hlavicku 45+12B, zacina tento blok presne na 0x1c000). Tento blok je cely zmeneny a je zjavne komprimovany (dalsia kompresia ho nezmensi). Ale nepasuje to na inflate, to by malo zacinat bajtom 0x78 Sad

Okrem tohoto bloku je zmena uz len na uplnom konci suboru, kde je priadny datum a posledne dva bajty, ktore su pravdepodobne checksum.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: út březen 12 2013, 22:30    Předmět: Citovat

rnbw napsal(a):
zacina tento blok presne na 0x1c000

No to je ten vlastní kernel se svojí hlavičkou, první 4B je $NKF, další 4B je jakási adresa, se kterou se pak operuje v tom divném algoritmu a třetí 4B jsou délka kernelu.

Jinak ten datum na konci je také důležitý, pokud je starší než datum uvedený ve flashovacím programu (tady 2008-04-02), tak vypíše chybu Can't Update Old Rom.

Edit: Co se do toho zkusit nabourat přes ten JTAG například pomocí OpenOCD? Tím by šla nejspíš přečíst a přepsat i ta flashka. ARM940T by měl umět.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rnbw



Založen: Mar 21, 2006
Příspěvky: 33756
Bydliště: Bratislava

PříspěvekZaslal: út březen 12 2013, 22:55    Předmět: Citovat

Tak k tomu hlaseniu som sa este nedostal, to uz by bol pokrok Smile

JTAG by som mohol vyskusat, aj tak som sa chcel naucit s tym robit. Postavim adapter na paralelny port a skusim, co to urobi.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rnbw



Založen: Mar 21, 2006
Příspěvky: 33756
Bydliště: Bratislava

PříspěvekZaslal: čt březen 14 2013, 19:47    Předmět: Citovat

Urobil som jednoduchy kabel len s odpormi - vid priloha (FET som vynechal pretoze CPU nema signal SRST). Zapojil som to podla jedineho dostupneho zapojenia pinov pre Jupiter4E (vid priloha 2).

Prvy pokus neuspesny:
kód:
$ jtag

UrJTAG 0.10 #1502
Copyright (C) 2002, 2003 ETC s.r.o.
Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors

UrJTAG is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
There is absolutely no warranty for UrJTAG.

WARNING: UrJTAG may damage your hardware!
Type "quit" to exit, "help" for help.

jtag> cable wiggler help
Usage: cable WIGGLER parallel PORTADDR [TDO,TRST,TDI,TCK,TMS,SRESET]
   or: cable WIGGLER ppdev PPDEV [TDO,TRST,TDI,TCK,TMS,SRESET]

PORTADDR   parallel port address (e.g. 0x378)
PPDEV      ppdev device (e.g. /dev/parport0)
TDO, ...   parallel port bit number, prepend '#' for inversion
           default is '7,4,3,2,1,#0'

jtag> cable wiggler ppdev /dev/parport0
Initializing ppdev port /dev/parport0
jtag> detect
Warning: TDO seems to be stuck at 0
jtag> detect
Warning: TDO seems to be stuck at 0
jtag> print
Run "detect" first.
jtag> quit


Zistil som, ze signal nTRST je uzemneny cez R1 (33R), tak som ho odstranil. Teraz to asi funguje, len treba pouzit iny program (?):
kód:
$ jtag

UrJTAG 0.10 #1502
Copyright (C) 2002, 2003 ETC s.r.o.
Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors

UrJTAG is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
There is absolutely no warranty for UrJTAG.

WARNING: UrJTAG may damage your hardware!
Type "quit" to exit, "help" for help.

jtag> cable wiggler ppdev /dev/parport0
Initializing ppdev port /dev/parport0
jtag> detect
IR length: 4
Chain length: 1
Device Id: 0 (0x0000000000000000)
chain.c(149) Part 0 without active instruction
chain.c(200) Part 0 without active instruction
chain.c(149) Part 0 without active instruction
jtag> print
 No. Manufacturer              Part                 Stepping Instruction          Register
------------------------------------------------------------------------------------------------------------------
   0                                                         (none)               (none)
jtag> quit



jtag_wiggler_unbuf.png
 Komentář:

Stáhnout
 Soubor:  jtag_wiggler_unbuf.png
 Velikost:  19.41 kB
 Staženo:  75 krát


jupiter4e.png
 Komentář:

Stáhnout
 Soubor:  jupiter4e.png
 Velikost:  82.91 kB
 Staženo:  68 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rnbw



Založen: Mar 21, 2006
Příspěvky: 33756
Bydliště: Bratislava

PříspěvekZaslal: čt březen 14 2013, 21:33    Předmět: Citovat

Tak skutocne to zije. OpenOCD som skompiloval najnovsi. Prvy pokus:
kód:
# ./openocd -f ../tcl/interface/parport.cfg
Open On-Chip Debugger 0.6.1 (2013-03-14-20:43)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.sourceforge.net/doc/doxygen/bugs.html
Warn : Adapter driver 'parport' did not declare which transports it allows; assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
parport port = 0x378
adapter speed: 1 kHz
Info : clock speed 1 kHz
Warn : There are no enabled taps.  AUTO PROBING MIGHT NOT WORK!!
Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -expected-id 0x10940f0f ..."
Warn : AUTO auto0.tap - use "... -irlen 4"
Warn : gdb services need one or more targets defined
Info : accepting 'telnet' connection from 4444


kód:
$ telnet localhost 4444
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> scan_chain
   TapName             Enabled  IdCode     Expected   IrLen IrCap IrMask
-- ------------------- -------- ---------- ---------- ----- ----- ------
 0 auto0.tap              Y     0x10940f0f 0x10940f0f     4 0x01  0x03


Podla ID som nasiel na webe nejaky konfigurak, tak som ho upravil:
kód:
if { [info exists CHIPNAME] } {
  set  _CHIPNAME $CHIPNAME
} else {
  set  _CHIPNAME arm
}
if { [info exists ENDIAN] } {
  set  _ENDIAN $ENDIAN
} else {
  set  _ENDIAN little
}
if { [info exists CPUTAPID ] } {
  set _CPUTAPID $CPUTAPID
} else {
 # force an error till we get a good number
  #set _CPUTAPID 0xffffffff
  set _CPUTAPID 0x10940f0f
}

jtag newtap arm taptap  -irlen 4 -ircapture 0x1 -irmask 0xf
target create arm arm9tdmi -endian big -variant arm940t  -chain-position  0

reset_config trst_and_srst srst_pulls_trst

init
halt

poll off

#source scripts.cf
#dc
poll

#ic

armv4_5 reg


A uz to vyzera lepsie:

kód:
# ./openocd -f ../tcl/interface/parport.cfg -f test.cfg
Open On-Chip Debugger 0.6.1 (2013-03-14-20:43)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.sourceforge.net/doc/doxygen/bugs.html
Warn : Adapter driver 'parport' did not declare which transports it allows; assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
parport port = 0x378
adapter speed: 1 kHz
Warn : Specify TAP 'arm.taptap' by name, not number 0
trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain
Info : clock speed 1 kHz
Info : JTAG tap: arm.taptap tap/device found: 0x10940f0f (mfg: 0x787, part: 0x0940, ver: 0x1)
Warn : JTAG tap: arm.taptap       UNEXPECTED: 0x10940f0f (mfg: 0x787, part: 0x0940, ver: 0x1)
Error: Trying to use configured scan chain anyway...
Warn : Bypassing JTAG setup events due to errors
Info : Embedded ICE version 2
Info : arm: hardware has 2 breakpoint/watchpoint units
background polling: off
TAP: arm.taptap (enabled)
target state: halted
target halted in ARM state due to breakpoint, current mode: Undefined instruction
cpsr: 0x4000001b pc: 0xffffffe8
DEPRECATED! use 'arm reg' not 'armv4_5 reg'
System and User mode registers
      r0: e8bd87f0       r1: e1a01004       r2: e3a00000       r3: ebfffc02
      r4: e3590000       r5: 0a000001       r6: e2650000       r7: e8bd87f0
      r8: e1a00005       r9: e8bd87f0      r10: e8bd87f0      r11: 00000000
     r12: 00000000   sp_usr: bc733a57   lr_usr: f31be6b3       pc: ffffffe8
    cpsr: 4000001b

FIQ mode shadow registers
  r8_fiq: 8253c6cf   r9_fiq: d9cb4385  r10_fiq: d37bbf72  r11_fiq: 96cf8a74
 r12_fiq: b0331b05   sp_fiq: 02000914   lr_fiq: db7b3335 spsr_fiq: 000000b9

Supervisor mode shadow registers
  sp_svc: 0200162c   lr_svc: 02602840 spsr_svc: 10000011

Abort mode shadow registers
  sp_abt: 02001114   lr_abt: 7ecf2fa7 spsr_abt: 00000010

IRQ mode shadow registers
  sp_irq: 02000d14   lr_irq: 7bb35be6 spsr_irq: 300000bd

Undefined instruction mode shadow registers
  sp_und: 00000000   lr_und: 00000000 spsr_und: 80000031
Info : accepting 'telnet' connection from 4444


kód:
$ telnet localhost 4444
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> mdw 0
0x00000000: e59ff060
> mdw 1000
0x000003e8: eafffff8
> dump_image dump.bin 0 524288


Flash zacina od adresy 0, takze sa to teraz nacitava (ide to hrozne pomaly).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: čt březen 14 2013, 21:55    Předmět: Citovat

No vidíš, za chvíli budeš mít spraveno. Smile
Jinak na adresách 0x260FBA4 a 0x260FCA4 jsou ty dvě šifrovací tabulky. První má 256 bytů a druhá 64.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rnbw



Založen: Mar 21, 2006
Příspěvky: 33756
Bydliště: Bratislava

PříspěvekZaslal: čt březen 14 2013, 22:29    Předmět: Citovat

Este sa obavam, ze nebudem vediet zapisovat do flash. Ale uvidim, zatial sa to stale nacitava - mam len takmer 128 KB, takze to necham cez noc.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
rnbw



Založen: Mar 21, 2006
Příspěvky: 33756
Bydliště: Bratislava

PříspěvekZaslal: pá březen 15 2013, 8:16    Předmět: Citovat

Tak dump mam - pri porovnani s ML2520_V1.01.00.84.fls (bez hlavicky) je zmeneny len 1 byte na offsete 0x341bb. Vo flash je 0x2c a v subore 0x6c. Este ho skusim raz precitat, ci je to tam naozaj alebo ci to bola chyba pri prenose.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: pá březen 15 2013, 8:21    Předmět: Citovat

Zrychli si toho wigglera, 1kHz je strašně málo.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Výpočetní technika Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
Strana 2 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.27 sekund