DJohnny
Als je ampje piept en kraakt, is DJohnny die hem maakt... Kom alleen niet om garantie, want dan is DJohnny met vakantie!
Hallo allemaal,
Heb weer eens een software gerelateerde vraag waarbij ik wat hulp kan gebruiken. Ik heb van een bekende een ElectroVoice audio processor op de werkbank staan. Tijdens een firmware update via zijn PC (via de USB poort) is er iets fout gegaan en het apparaat start nu niet meer op. Doet helemaal niets meer. Het apparaat is voorzien van een Atmel AT91SAM7S64 microcontroller. Deze stuurt voor diagnose ook een paar status LED's aan, maar ook deze doen helemaal niets meer. De firmware zal dus corrupt zijn geraakt. Het apparaat is ook niet meer benaderbaar via de USB aansluiting.
Nu heeft het mainboard waar deze processor op zit een micro JTAG aansluiting. Dit is een 2x 10 polige pinheader. Volgens het schema van het apparaat komt de pinout overeen met die van een aantal standaard USB programmers met ook zo'n 2x 10 polige pinheader. ZO'n programmer koop je al voor 15 a 20 euro, dus dat is de investering nog wel waard.
De vraag is alleen waar ik een firmware file ga krijgen. De software om hem te updaten lijkt deze niet te bevatten, misschien word deze online ergens vandaan getrokken.
Nu heb ik zelf zo'nzelfde werkende unit staan. Nu had ik het idee om uit mijn unit een kopie te maken van de firmware, en deze in de defecte proberen te schieten.
Kan iemand mij vertellen hoe ik dit kan aanpakken en wat ik hier voor nodig heb? En of dit überhaupt mogelijk is? Alvast mijn dank!
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
DJohnny
Als je ampje piept en kraakt, is DJohnny die hem maakt... Kom alleen niet om garantie, want dan is DJohnny met vakantie!
Hoi Arco,
Ik heb dit voorgelegd bij EV. Heb echter helaas de ervaring dat dit soort vragen simpelweg niet opgepakt word bij de importeur.
Je zegt firmware update. Dan heb je dus de firmware ? Kun je die dan niet met een Atmel (JTAG) programmer er zo inblazen zonder bootloader ?
Volgens mij staat er in V&A een te koop
[Bericht gewijzigd door bprosman op (13%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Firmware update programma's communiceren met de bootloader. Geen bootloader, geen firmware... 
Zelfs al zou je de losse firmwarefile hebben, dan werkt die vaak niet alleen, omdat de downloadadressen niet kloppen. (o.a. de resetvector)
[Bericht gewijzigd door Arco op (42%)]
elmowww
PA0EJE - www.eje-electronics.nl - e.jongerius[aapje]eje-electronics.nl - EJE Electronics - Elektronica/firmware ontwikkeling
Kleine kans...
Die processoren zijn uitgerust met lees- en/of schrijfbeveiliging als ze er een béétje overna gedacht hebben. Dat is zo simpel als het zetten van een bitje en jij kan er geen meer uitlezen.
De code hoort bij het ontwerp en wil een fabrikant (begrijpelijkerwijs) beschermen. Als deze eenmaal op straat ligt is de beveiliging weg.
Ik geef je heel weinig kans om hem zelf uit te lezen (hoewel het soms nog wel lukt ook).
Betere optie lijkt mij om hem ter reparatie op te sturen.
Firmware update programma's communiceren met de bootloader. Geen bootloader, geen firmware...
Zelfs al zou je de losse firmwarefile hebben, dan werkt die vaak niet alleen, omdat de downloadadressen niet kloppen. (o.a. de resetvector)
Niet helemaal mee eens, een Arduino kun je ook met een gewone ICSP programmer programmer en de bootloader bypassen.
En uitlezen hoeft niet, je kunt de processor altijd wissen en overschrijven zelfs al staan de security fuses aan.
Overigens zijn er van die Segger ook Chinese clones.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Dat kan, maar dan moet de firmware daar wel voor gemaakt zijn... (of het werkt is dus een gok)
Wat ik hier en daar lees is dat die chip een interne bootloader heeft (of dat klopt weet ik niet)
Als er problemen zijn zou je de TST pin 10 sec hoog moeten maken en daarna weer laag.
DJohnny
Als je ampje piept en kraakt, is DJohnny die hem maakt... Kom alleen niet om garantie, want dan is DJohnny met vakantie!
Zoals ik al dacht lijkt het grootste probleem het verkrijgen van de firmware. Heb zojuist mijn werkende processor via de USB aangesloten, de software waarmee de unit word bediend/geupdated gestart en het firmware update proces gestart met verbroken internet connectie. Het updaten werkt dan ook prima, het lijkt er dus op dat de firmware ergens aan boord van dit programma zit. Ik heb alle mappen van dit programma al doorgespit, maar kom niets tegen wat op een firmware file lijkt. Alleen een bestand met file extensie .RSC met een grootte van 1,58MB. Dit lijkt me te groot voor een firmware file?
Overigens, normaal gesproken als bij deze processors de firmware in de soep loopt start hij niet op, maar krijgt men een melding "bootloader 1.2.0" in het display te lezen. Die melding krijg ik nu ook niet
Edit: Gisterenavond nog even verder gegaan met dit avontuur. Voor ik met de software aan de slag ga wilde ik er graag zeker van zijn dat de hardware OK was, geen losse contacten enzo. Stuitte er per toeval op dat pin 18 (VDDIO) van het AT91SAM IC geen 3.3V meer kreeg door een gare doormetalisering. Dit gerepareerd, maar nog steeds start de processor niet op, geen status LED's etc.
Windows lijkt de processor nu wel te detecteren via de USB, maar geeft aan dat de USB poort niet goed werk (geel uitroeptekentje in apparaatbeheer). Ik heb met de scope gecheckt of het kristal werkt, maar deze doet dat niet. De scoop geeft aan dat hij op +/- 1MHz loopt, maar betwijfel of deze meting klopt. Kristal zou 18.432 MHz moeten zijn.
Pinnen TST, erase en JTAGSEL zijn allemaal laag. Pin NRST is hoog (3,3V).
Kan het zijn dat het IC simpelweg defect is?
[Bericht gewijzigd door DJohnny op (35%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
DJohnny
Als je ampje piept en kraakt, is DJohnny die hem maakt... Kom alleen niet om garantie, want dan is DJohnny met vakantie!
@Arco: Vergeten te vermelden, dit had ik inderdaad ook nog geprobeerd maar maakt geen enkel verschil.
Edit: Erase pin doet ook niets. Enige leven wat er nu in zit is dat de USB poort gedetecteerd word, zij het onjuiste wijze.
Bekende van mij heeft een J-Link EDU, welke ik mag lenen. Misschien dat ik daar iets mee kan.
[Bericht gewijzigd door DJohnny op (18%)]
het correct initialiseren van de usb peripheral (of hij HID, CDC of whatever moet doen) is doorgaans functionaliteit van de applicatie firmware. En ik verwacht hier van de bootloader.
Op zich zou je verwachten dat de bootloader nooit corrupt raakt, omdat bij ene mislukte firmware update dan inderdaad je product in de vuilbak kan.
Toch kan er in sommige gevallen voor gekozen worden om applicatie met bootloader te combineren.
Uitlezen van een bestaande unit zal niet werken.
Een beetje bedrijf zorgt wel dat de firmware die ze openbaren voor updates enkel draait op hun geproduceerde hardware.
Ik heb wel eens een applicatie gemaakt waarvan ik de hardware leverde. Diegene kreeg mijn hardware met een custom bootloader. (niet meer dan een standaard bootloader waar is een secret waarde op een gedefinieerd adres heb gezet.
Je kan de applicatie gewoon op dat adres laten kijken of die waarde er staan. Zo ja, runnen maar zo niet, pech gehad)
Als de firmware dan in een print zonder bootloader programmeerd, dan zal hij op dat adres 0xFF lezen en dat matched niet.
Vandaag de dag gata het nog een stap verder met encrypted firmware updated en secure boot etc, maar dat zal daar dnek ik nog niet in zitten wellicht. Ik zou het toch bij de fabrikant overleggen
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Normaal gesproken zou een bootloader nooit beschadigd mogen worden, maar het kan in sommige gevallen toch gebeuren.
Sommige apparaten hebben ook de mogelijkheid hun eigen bootloader te updaten. Als bij dat updaten een 'hik' voorkomt kan het einde oefening zijn.
Hoeben
Golden Member
https://www.hoeben.com https://www.overstockdevices.com https://www.asensor.eu https://www.circuitsonline.net/forum/user/4355#aanbod Voor alle verkoop: een tegenbod is altijd welkom!
Een beetje ontwikkelaar maakt een aparte bootloader waar je vanaf blijft en laadt alleen de applicatie. Dan kun je hem niet bricken. Mag ik dit hobbyistenbrol noemen?
Zelfs bootloaders kun je veilig maken door twee bootloaders te laden met een jump vanaf adres 0. Als de tweede veilig geladen is verander je pas de jump, 2 of 4 bytes, dat risico is erg klein. Wel moet je flash gebruiken waarmee dit kan.
DJohnny
Als je ampje piept en kraakt, is DJohnny die hem maakt... Kom alleen niet om garantie, want dan is DJohnny met vakantie!
Iedereen bedankt voor zijn of haar reactie!
Wat ik mezelf afvraag:
kan een corrupte bootloader ervoor zorgen dat de USB interface niet correct word herkend door Windows? De exacte melding welke windows bij apparaatbeheer geeft is "Code 43, verzoek voor apparaatdescriptor is mislukt"
En: Ik begrijp uit posts op Google dat deze chips worden geleverd met een standaard bootloader waarbij de USB beschikbaar word gesteld? Voor het geval dat de fabrikant een eigen bootloader heeft gebruikt, zou het mogelijk zijn om de originele Mircrochip bootloader in te flashen via de J-tag, even aangenomen dat deze nog werkt?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
De USB interface zit op de controller zelf. Dus als die niet 'loopt', werkt de USB ook niet.
De kans een andere bootloader werkt met dat update programma is zo goed als nul: bijna alle bootloaders zijn verschillend.
DJohnny
Als je ampje piept en kraakt, is DJohnny die hem maakt... Kom alleen niet om garantie, want dan is DJohnny met vakantie!
@Shiptronic:
Ik moet even wachten tot de J-Link in mijn bezig is.
@Arco:
De reden dat ik de originele bootloader zou willen flashen is om te kijken of in elk geval de chip nog werkt en/of de USB aansluiting tot leven komt. Dat die doormetalisering het op heeft gegeven is op zijn minst verdacht te noemen. Dan kan ik vanuit daar weer verder borduren.
[Bericht gewijzigd door DJohnny op (13%)]
Een USB interface op een controller is niet meer dan de minimaal benodigde interface hardware. Die funktioneert alleen als die door de firmware wordt aangestuurd.
Dus inderdaad als de bootloader weg is dan doet USB niks meer.
Jtag daarentegen is (meestal) volledig in hardware ingebouwd en funktioneert dus onafhankelijk van de firmware.
[Bericht gewijzigd door deKees op (20%)]
DJohnny
Als je ampje piept en kraakt, is DJohnny die hem maakt... Kom alleen niet om garantie, want dan is DJohnny met vakantie!
@DeKees
De USB doet nog wel wat, hij word gedetecteerd, alleen niet goed. Kan dit ook door de bootloader komen?
Ja, dat kan. Daar zit een weerstandje in (Meestal intern in de controller) die aangeeft of het Low speed is of High-speed. Dan ziet windows wel dat er een USB is aangesloten, maar krijgt geen antwoord op de configuratie requests.
Maar ook die weerstand wordt meestal door de firmware aan en uitgezet. Dan hangt het er vanaf in hoeverre de firmware nog wel functioneert.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Er moet een PID en VID verzonden worden en de 'capabilities'.
Als dat softwarematig gebeurt, dan weet Windows bij uitblijven daarvan niet wat er aan de poort hangt...
DJohnny
Als je ampje piept en kraakt, is DJohnny die hem maakt... Kom alleen niet om garantie, want dan is DJohnny met vakantie!
Beste mensen,
Mijn dank voor de hulp. Heb gisteren de J-link in ontvangst mogen nemen, en zojuist even mee aan het stoeien gegaan. En met enige trots kan ik zeggen dat het is gelukt, de processor werkt weer! Joepie!
Heb met de J-link unit uit mijn eigen processor een gedeelte kunnen kopieren. Achteraf gezien bleek dit de bootloader van de fabrikant. Toen deze in de defecte processor geschoten werd, herkende windows en de update software van de fabrikant de processor meteen, en werd de firmware compleet ingeschoten.
Vooralsnog lijkt alles te werken. Deze processoren kunnen beetje nukkig zijn, dus krijgt ie eerst nog een flinke duurtest alvorens hij de baan weer op mag! Iedereen mijn dank voor zijn of haar bijdrage in deze!
Jochem
If you want to succeed, double your failure rate.
Turbokeu
Golden Member
I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"