Dit is wat ik nu heb:
Een KD20.zip file met daarin o.a. de volgende images:
stage1.wrapped-nand
u-boot.wrapped
u-boot.wrapped-nand
Ik neem aan dat dit de standaard fabrieks images zijn.
Deze 3 images zijn niet ¨leesbaar¨ of herkenbaar met hex tools, binwalk etc omdat het bitmaps zijn bestaande uit alleen de bytes 0xAA en 0x55. Ik veronderstel dat dit specifieke format aangeduid wordt met de wrapped, maar ik kan daar nergens iets over vinden en ook niet iedereen doet dat.
De images u-boot.wrapped en u-boot.wrapped-nand zijn beide even groot: 1322208 byte, maar qua inhoud verschillend.
Wat ik gedaan heb omdat ik dacht dat dit gewoon zou kunnen om daarna Debian te kunnen booten van USB of SATA is:
Een oxnas (Pogoplug) stage1 geflashed naar 0x00000. ( overigens bestond deze image ook uit een bitmap met alleen 0xaa en 0x55 bytes)
En een oxnas u-boot geflashed naar 0x40000. Deze U-boot image bestaat uit ¨leesbare¨ binaire code. Binwalk maakt weliswaar niet veel van, maar met een hexeditor kun je gewoon de versie u-boot en diverse strings lezen.
Deze combo werkt niet, maar waarom is me niet geheel duidelijk. De u-boot gebruikt een pogoplug configatie, er wordt maar 128MB RAM gemeld. Maar misschien zijn het ook alleen maar verkeerde environment variabelen. Of zoiets stoms dat ie een Netconsole opstart en domweg niet meer naar de seriële console schrijft.
Omdat ik nu niets kan aanpassen als dat laatste het geval is, wil ik terug naar factory instellingen.
Via de methode ¨paai¨ lukt het me om een shell te krijgen waarin ik ook een disk kan mounten en in staat ben NAND te dumpen en images naar NAND te schrijven.
(dit laatste neem ik aan, maar het nandwrite commando is standaard in die shell beschikbaar)
De vraag van Thralas:
Waarom zou je die terugzetten als je nu al een stage1 loader zegt te hebben? Welke versie heb je nu (er zit een builddate string in)?
De stage1 loader die nu in de NAND zit is niet bedoeld voor deze configuratie, maar wellicht doet stage1 helemaal niets met configuratie en is die dus prima bruikbaar.
Dat weet ik domweg niet.
Hij draagt wel het stokje netjes over naar de bootloader die op 0x40000 van de NAND geladen is.
Dit is de banner van de stage1 die nu in NAND zit op 0x00000:
code:
1
2
3
4
5
6
7
8
9
| U-Boot SPL 2013.10-tld-4 (Sep 07 2014 - 14:10:12)
Boot device: NAND
Attempting to set PLLA to 850 MHz ...
plla_ctrl0 : 0000020a
plla_ctrl1 : 0033000:0
plla_ctrl2 : 0065008b
plla_ctrl3 : 000000f1
PLLA Set |
Een andere stage1, die van een bootable satadisk geeft overigens dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Stage-1 Bootloader 2015-01.21-21:48:56
Attempting to set PLLA to 800MHz ...
plla_ctrl0 : 0x0000030A
plla_ctrl1 : 0x00400000
plla_ctrl2 : 0x007F0068
plla_ctrl3 : 0x00000193
PLLA Set
Setup memory, testing
Reading disk 00
Sector : 0x0000009A
Hdr len: 0x00025978
Hdr CRC: 0x1CCE0DF0
OK
Detecting SATA busses:
Bus 0: No devices found
Failed to read valid environment from disk, using built-in default |
Daarna start ie een bijbehorende u-boot (ook vanaf de sata disk) op met een shuttle banner enz.
Via deze route kan ik via ftp etc een shell krijgen maar ook een debian versie booten als ik wil.
Overigens was dit de output van de oorspronkelijke stage1 (wellicht die stage1.wrapped) die ik dus overschreven heb.
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Stage-1 Bootloader 2012-06.13-13:06:32
Attempting to set PLLA to 750MHz ...
plla_ctrl0 : 0x0000000A
plla_ctrl1 : 0x000F0000
plla_ctrl2 : 0x001D01A0
plla_ctrl3 : 0x00000017
PLLA Set
Setup memory, testing, Image 0
Hdr len: 0x00028594
Hdr CRC: 0x0BA1B9D0
OK |
Ik kan niet beoordelen of het nodig is om ook stage1 te vervangen, maar wat ze als output laten zien is anders en ik weet simpelweg niet wat er relevant is, dus ik ga liever terug naar een bekende werkende situatie.
Je geeft ook aan:
Ja, die moet je bij elkaar houden en nee, voor zover ik kan vaststellen boot de NAND stage1 (wrapped) enkel wrapped u-boot images.
Dit lijkt niet te kloppen, want de wrapped stage1 die er nu in NAND zit geeft het stokje prima over naar de niet wrapped u-boot die op 0x40000 in NAND staat.....
Maar het lijkt me handiger om gewoon setjes bij elkaar te houden totdat e.e.a. weer goed werkt
Die pogoplug environment is nogal anders dan die van de kd20. Maar ik kan hem toch niet aanpassen, dus moet iets anders.
Wat wil ik dan nog meer weten?
Ik veronderstel dat ik de stage1.wrapped uit het KD20.zip archief gewoon met nandwrite terug kan zetten naar 0x0.
Maar dan de u-boot, welke? de wrapped of de wrapped-nand versie, want ze zijn niet hetzelfde...
En waar moet ie neergezet worden: gewoon ook op 0x40000? Of kan het ook zijn dat ie op een ander adres moet worden weggeschreven?
Omdat het me tot dusver goed gelukt is om met elke stap meer te verknoeien dan te repareren ben ik super wantrouwig geworden om ook nog maar iets te doen voor dat ik min of meer snap wat de uitwerking daarvan is