BIOS dump utility gezocht.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • CaptJackSparrow
  • Registratie: Februari 2009
  • Niet online

CaptJackSparrow

x07 - License to Tweak.

Topicstarter
Ik ben op zoek naar een utility die de BIOS van een PCI SATA-RAID controllerkaart kan uitlezen en dumpen naar een bestandje dat dan ook weer geschikt is om terug te flashen als ik dat wil.

Het is van een Sitecom CN-033 kaartje. Ze hebben daar bij Sitecom wat andere opvattingen over adequate bedrijfsvoering dan ik want ze leveren dit kaartje momenteel nog vrolijk met firmware uit 2003!!! Versie 4.3.43. Het is een controller gebaseerd op de Silicon Image 3512 chip en bij Silicon Image op de site is de laatste firmware uit 2007. Versie 4.3.84. Vier jaar jongere firmware dus. In al die jaren is er daar bij Sitecom blijkbaar nooit iemand op het idee gekomen om er eens nieuwere firmware in te stoppen. :Z
De 'originele' Sitecom firmware kun je bij hun op de site ook niet downloaden. En hun 'support' afdeling... |:(

Het punt is dat ik twee van die kaartjes heb. Die met de oude firmware hangt bij het booten als ik er een 1 TB schijf (WD10EADS) aan hang bij de BIOS melding van dat kaartje. Met 640 GB schijven (WD640AALS) gaat het nog wel goed. Met het andere kaartje waarin ik de 4.3.84 heb geflasht boot het systeem gewoon op met de 1TB schijf en kan er zo te zien vooralsnog prima mee overweg. Ik weet alleen niet 100% zeker of Sitecom iets aan het hardware ontwerp heeft geprutst wat een aanpassing van de firmware t.o.v. de generieke versie bij Silicon Image nodig maakt. Bij het booten meldt het kaartje met de oude firmware zich wel met de naam Sitecom dus dat hebben ze er in elk geval aan veranderd. Als ik die 'originele' firmware kan back-uppen heb ik ten minste de mogelijkheid om de functionaliteit van het kaartje met nieuwere firmware te vergelijken met de functionaliteit met de originele firmware als ik ooit vreemde dingen ervaar met die nieuwere firmware. Dan kan ik checken of het iets met de generieke Silicon Image firmware te maken heeft. Als ik het tweede kaartje ook met nieuwere firmware flash heb ik die mogelijkheid zonder back-up niet meer.

Het blijkt lastiger te zijn dan ik had verwacht om een utility te vinden die dat klusje kan klaren.

Wie o wie?

Bij voorbaat dank.

8)

CJS

Acties:
  • 0 Henk 'm!

  • Nielson
  • Registratie: Juni 2001
  • Laatst online: 09:24
Het flashtootlje zelf heeft dus geen backup mogelijkheid?

Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
*Als* je die pc in DOS kunt booten, en *als* je weet wat het real-mode bios adres is, kun je dit tooltje gebruiken. (De bin file is stiekum een zipfile, en hij bevat een 16 bits dos programmaatje).

Acties:
  • 0 Henk 'm!

  • CaptJackSparrow
  • Registratie: Februari 2009
  • Niet online

CaptJackSparrow

x07 - License to Tweak.

Topicstarter
Het flashen kun je heel gebruikersvriendelijk doen op een eigenschappen-tabje in apparaatbeheer. Alleen als er een drive aanhangt. Anders is het tabje er niet. Helaas zit daar dus geen dump-optie en de flash utilities bij Silicon Image hebben die ook niet voor zover ik weet. Tenzij die optie ongedocumenteerd zou zijn.

Die adresruimte waar het controller BIOS zit is dus ook het probleem. Ik weet niet waar (en of) het bios naar RAM wordt gekopieerd tijdens het opstarten en in welke fase. Doet het computer BIOS dat al? Doet Windows het? Doet DOS het? En waar dus. Dan kun je een kopie uit RAM uitlezen. Of anders of en hoe het geheugen op de controllerkaart te benaderen is. Het feit dat het bovengenoemde flash-tabje er alleen is als er een drive aangesloten is doet vermoeden dat dit wel of niet aangesloten zijn mogelijk effect heeft op het benaderbaar zijn van dat flash geheugen. Dat flash-tabje verschijnt ook als ik een externe eSATA schijf aanzet als Windows (XP Pro SP2) al draait.

De BIOS files van Silicon Image zijn 128 KB groot (da's 20000 hexadecimaal). Die grootte word ook genoemd in het flash-tabje. De chip wordt daar ook genoemd (SST 39VF010). Op die chip heb ik ook gezocht of er een generiek stukje software te vinden was dat met die chip overweg kan. Leverde ook niets op.

Uit apparaatbeheer of Everest Home haal ik niet meer dan het volgende:

IRQ 05 Shared
Memory E8003000-E80031FF Exclusive
Port 9C00-9C07 Exclusive
Port A000-A003 Exclusive
Port A400-A407 Exclusive
Port A800-A803 Exclusive
Port AC00-AC0F Exclusive

Een paar bytes voor I/O-poorten dus en een klein stukje geheugen dat misschien voor blokjes data gebruikt wordt of zo.

Het is een lastige....

8)

CJS

Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
De windows resources hebben weinig tot niets met de bios van die kaart van doen. De bios wordt alleen gebruikt om de schijf in real mode te kunnen benaderen, zodra windows laadt neemt de driver het over, en wordt de bios niet meer gebruikt. Het is voor windows dan ook niet interessant wat het adres is.

Je kunt een dump maken van het hele bios gebied, dat is 'biosdump c000 262144 dumpfile' (werkt alleen vanuit 'echte' dos!), en vervolgens met een hexeditor kijken waar zich data bevindt. (alle 'niet-data' is 00 of ff).
(Dit moet trouwens wel met een 'kale' dos, zonder emm386 enzo, anders konden zich hier wel eens delen van dos bevinden, wat het zoeken vele moeilijker maakt.)
De meest waarschijnlijke startplaatsen bevinden zich op een veelvoud van 16kB. De laatste 32kB is systeem bios, en waarschijnlijk de een na laatste ook.

Acties:
  • 0 Henk 'm!

  • CaptJackSparrow
  • Registratie: Februari 2009
  • Niet online

CaptJackSparrow

x07 - License to Tweak.

Topicstarter
Het heeft even een aantal dagen geduurd voor ik hier weer aan toe kwam maar we zijn weer een stapje verder. Bedankt in elk geval voor die utility. Het heeft het volgende opgeleverd.

Als eerste maakte ik een dump van het bereik zoals je suggereerde zonder dat er een drive aan de PCI kaart zat. De op het moederbord geïntegreerde SATA RAID-controller (ook SiI 3512) had ik in de BIOS van het MoBo voor de goede orde disabled.

In die dump was met een Hex editortje (ik gebruikte XVI32 en HxD) niets te vinden op zoekstrings Silicon of RAID. In de firmware file van de Silicon Image site levert dat natuurlijk wel het nodige op.

Toen hetzelfde gedaan met een drive er op aangesloten. Dat leverde wel wat op. Vanaf 0x19000 vond ik nagenoeg hetzelfde begin als in de echte firmware. Hier de eerste 64 bytes van de twee. De versienummers met datum zijn terug te vinden (4.3.84 uit de echte firmware en 4.3.43 uit de dump)

UªTéôWSILICON IMAGE.....:...SIMG..(./..¤4.3.84.01-19-2007.PCIR•.

Uª$éTeSILICON IMAGE.....8...SIMG..&.-.4.3.43.11-20-2003.PCIR•..5

Al snel daarna vind ik in de dump merk en type-aanduiding van de aangesloten drive terug. In de echte firmware is dat een 'leeg' stukje. Ik neem aan dat er in de firmware ruimte gereserveerd is voor dergelijke data en dat het hele stuk geheugen van 128K uit de controller BIOS naar RAM wordt gekopieerd waarna er dan in RAM in die gereserveerde stukken data in geschreven wordt. Het is dus geen 'schone' firmware die ik zo krijg. Ook is de Sitecom naam waarmee de kaart zich bij het booten meldt niet terug te vinden in de hele dump.

Als ik de dump voor 0x19000 verwijder en dan alles vanaf 0x20000 ook dan hou ik de exacte 131.072 bytes over die de firmware moet zijn maar om die nou in het apparaat te flashen gaat me net iets te ver gezien de bevindingen.

Ik weet niet hoe zo'n flash utility dat controllergeheugen benadert en of dat met dit BIOSDUMP programmaatje ook gaat.

Hoe nu verder is de vraag.

8)

CJS

Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Je zou kunnen proberen om van dat kaartje met versie 4.3.84 een backup te maken, en die dan terug te flashen via de normale weg. Als dat werkt weet je dat de firmware geen last heeft van de 'ingevulde' gebieden, en als het niet werkt kun je het origineel er weer opzetten.

Het biosdump programma kan niet meer dan een blok geheugen naar file schrijven. Terug is onmogelijk, omdat je kennis moet hebben van het achterliggende flashgeheugen om daar iets heen te schrijven. Oftewel, je hebt voor ieder stuk hardware een aangepast flashprogramma nodig.

Acties:
  • 0 Henk 'm!

  • CaptJackSparrow
  • Registratie: Februari 2009
  • Niet online

CaptJackSparrow

x07 - License to Tweak.

Topicstarter
De utility hoeft ook niet naar dat flashgeheugen te schrijven. Daar heb ik per slot al de mogelijkheid toe. Ik weet dat daar specifieke ondersteuning van de chip voor nodig is. Ik had al gezocht of ik een soort algemeen flash programma kon vinden dat de onderhavige chip ondersteunt en ook kan uitlezen. Het gaat me er om dat de utility het controllergeheugen moet weten te 'vinden' om het direct uit dat geheugen uit te lezen. Geen idee of dat een 'gewoon' adresbereik is dat niet door ander geheugen bestreken wordt en dat de utility kan uitlezen. Alleen... waar zit het dan is de vraag. Hoe kopieert de BIOS of (D)OS dat geheugen naar RAM? Die weten het ook uit te lezen blijkbaar. Dat stukje informatie mis ik.

Ik had me eigenlijk als criterium voor succes gesteld dat ik het kaartje met de nieuw geflashte firmware zou moeten kunnen uitlezen en dat dan een compare van die dump met het originele firmwarebestand dat er in geflasht was moet aangeven dat ze identiek zijn. Dan zou ik er van uit gaan dat een dump van de oude firmware ook correct zou zijn. Ik wil liever niet een flash doen waarvan het resultaat volstrekt onvoorspelbaar is. Aangezien het doel nou juist is om er voor te zorgen dat in geval van vreemde verschijnselen met de nieuwe firmware vergelijk met de oude mogelijk blijft zou ik ook nooit met een dergelijke niet identieke firmware weten of daarmee de oude functionaliteit weer hersteld wordt. Vandaar mijn succescriterium.

8)

CJS

Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Hoe kopieert de BIOS of (D)OS dat geheugen naar RAM?
Dat doen zij niet. De (systeem-)bios zoekt bij opstarten in het gebied c000 - f800 naar andere biossen, die vervolgens worden aangeroepen, zodat zij kunnen initialiseren.

De originele manier voor een insteekkaart om de bios aan het systeem te hangen was een (eep)rom direct aan de juiste adreslijnen van de bus te hangen. (Met koper, weet je wel, deze bios bleef actief zolang de pc aanstond)

Jouw kaart is wat intelligenter, aangezien er alleen een bios is als er een schijf aan de kaart zit, (anders is het niet nodig, real-mode bios is tegenwoordig alleen nog nodig voor het eerste stukje van de bootprocedure) maar het pricipe is hetzelfde.

Acties:
  • 0 Henk 'm!

  • CaptJackSparrow
  • Registratie: Februari 2009
  • Niet online

CaptJackSparrow

x07 - License to Tweak.

Topicstarter
Voordat deze thread begon had ik al een utility geprobeerd dat interessant leek. Het had echter geen duidelijke functie die deed wat ik wou. Toen ik hier na een week nog niet tot het gewenste resultaat was gekomen besloot ik de maker van de utility te mailen omdat ik toch dacht dat het potentieel had. Hij schreef terug dat het zou moeten kunnen maar dan moest je wel weten hoe. Het was geen voor de hand liggende methode. Je moest echt wat beter in de materie zitten om het te weten. Helaas liep ik steeds tegen bugs aan die te maken hadden met het schrijven van geheugen naar file die ik terug rapporteerde en daarbij gelijk nog wat suggesties voor verbeteringen deed. Drie bugfixes/updates later deed het programmaatje eindelijk wat het werd verondersteld te doen en kon ik het proces volledig en correct doorlopen.

SUCCES!!! *O* *O* *O*

De dump van de reeds geflashte kaart voldeed aan mijn criterium voor succes en was identiek aan de originele firmware file. Toen kon ik ook de oude firmware dumpen. Die heb ik toen in de reeds geflashte kaart geschreven en getest. Eerst met een data schijf tot later met booten van een RAID-1 set. Alles werkte en ik ga er dan ook van uit dat ik nu een goede back-up heb van de originele firmware. Ik heb dan ook vanmorgen de oude firmware in de tweede kaart overschreven met de nieuwe firmware in de wetenschap dat ik altijd de oude weer kan terugzetten als dat wenselijk mocht zijn.

Wat je niet allemaal moet doen om te compenseren voor inadequaat handelen van de hardwareproducent die noch firmwareupdates noch de originele firmware beschikbaar stelt.

Op naar het volgende probleem.... Afbeeldingslocatie: http://planetsmilies.net/msn-smiley-6680.gif

8)

Acties:
  • 0 Henk 'm!

  • 0xDEADBEEF
  • Registratie: December 2003
  • Niet online
CaptJackSparrow schreef op zaterdag 14 maart 2009 @ 11:12:
Voordat deze thread begon had ik al een utility geprobeerd dat interessant leek.
Enne, ter archivering :) : hoe heet die utility ? UniFlash/Uniflash-RE ?

Er zijn immers zat mensen die, net als jij, een Sitecom CN-033/andere hardware met een outdated BIOS hebben.

[ Voor 17% gewijzigd door 0xDEADBEEF op 14-03-2009 11:49 . Reden: uitleg toegevoegd ]

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion." - Steven Weinberg


Acties:
  • 0 Henk 'm!

  • CaptJackSparrow
  • Registratie: Februari 2009
  • Niet online

CaptJackSparrow

x07 - License to Tweak.

Topicstarter
Het heet RW (Read & Write) of RW Everything en staat hier.
De laatste versie 1.1 die daar momenteel staat geeft echter een foutmelding bij het schrijven van binaire geheugendumps. Versies 1.1.1 en 1.1.2 schreven wel maar niet correct. De versie 1.1.3 die ik toegemaild heb gekregen doet dat wel.

Men zal dus even moeten wachten tot de maker versie 1.2 uitbrengt denk ik. Daarin zullen alle bugfixes en verbeteringen van 1.1.3 en waarschijnlijk nog meer verwerkt zitten.

Ik heb hem de suggestie gedaan om het proces wat meer tot een soort 'One-Click Operation' te maken. Voor mensen met apparaten waarvoor noch een firmware update noch de originele firmware beschikbaar is kun je dan eventueel, als je tenminste wel over een flash mogelijkheid beschikt, zelf de originele firmware dumpen en daar zelf aan gaan tweaken.

8)

Acties:
  • 0 Henk 'm!

  • scrappy.doo
  • Registratie: September 2004
  • Laatst online: 12:15
Interessant. Ik heb zelf ook een CN-033 en heb problemen zodra ik mijn 1TB harde schijf erop aan sluit. Zou je het een en ander kunnen aanreiken zodat ik mijn CN-033 zelf kan updaten?

[update]
Heb zelf nog wat verder gezocht en een wat eenvoudiger oplossing gevonden. De CN-033 valt prima te updaten via de site van Silicon Image zelf.
Hier: http://www.siliconimage.c...esults.aspx?pid=29&cat=15
staat een update utility voor windows en de juiste bios files. (SiI3512 sata raid: r4384.bin)

[ Voor 47% gewijzigd door scrappy.doo op 12-05-2009 21:10 ]


Acties:
  • 0 Henk 'm!

  • CaptJackSparrow
  • Registratie: Februari 2009
  • Niet online

CaptJackSparrow

x07 - License to Tweak.

Topicstarter
Als je de BIOS wilt updaten naar 4.3.84 kun je die hier downloaden. In apparaatbeheer zit bij de eigenschappen een Flash BIOS tabje waar je de update kunt doen. Er moet wel een schijf op de controller aangesloten zijn anders is dat tabje er niet.

Edit: Ik zie dat je ondertussen je posting aangepast hebt. Flashen vanuit het tabje dat ik beschreef gaat makkelijker.

8)

[ Voor 15% gewijzigd door CaptJackSparrow op 12-05-2009 21:19 ]

Pagina: 1