Sida 1 av 1

Tricks med EEPROM

Postat: 5 juni 2006, 03:21:18
av Dick T. Hick
Har försökt flasha om några SCSI-BIOS kretsar från Adaptec och råkat på en sak jag inte begriper. Kretsarna går inte att uppgradera. Såväl Adaptecs eget flashprogram som Uniflash misslyckas med att uppdatera BIOS:ets programvara.

Det märkliga är att när jag vill flasha tillbaka ursprungsversionen så funkar bara den avlästa (och sparade) filen, inte den som laddats ner från Adaptecs hemsida. Detta trots att filerna är identiska.

Hur har dom gjort?

Uppenbarligen har någonting trixats med, men jag kan inte begripa hur. Hur kan två identiska filer tas emot på olika sätt? Hur "vet" chipet att den ena filen är avläst och att den andra är nedladdad?

Det verkar också som att vissa adresser på EEPROM:et är "fastbrända". De går inte att programmera om. De övriga adresserna är inget problem.

Stoppar man in ett nytt EEPROM så funkar däremot allt som det ska.

Jag är nyfiken på hur Adaptec har gjort de här grejerna.

Hade själv en idé om att skydda hårdvara från piratkopiering genom att lägga in en rutin som mäter den exakta accesstiden på någon specifik adress i EPROM:et. Skulle sedan denna accesstid över- eller underskridas, blev det givetvis error.

Tanken var att en pirat inte sannolikt skulle bry sig om att matcha EPROM:ets tillverkare och serie, bara kapacitet och den deklarerade accesstiden.

Det blev dock aldrig av. Vågade inte utsätta mina kunder för potentiellt trassel som ändrade accesstider pga temperaturskillnader och eventuellt åldrande av materialen i EPROM:en.

Postat: 5 juni 2006, 03:47:46
av Icecap
Öhhh....BIOS i EEPROM? Menar du inte FLASH?

Jag har aldrig hört om/sett EEPROM med BIOS i men däremot massor med flash.

På många flash finns det en låsbar Boot-sector som INTE kan raderas/omprogrammeras när dens säkringsbit väl har blivit aktiverat.

De 2 filer är alltså INTE identiska, i annat fall ville programmet inte känna någon skillnad och det gör det ju bevisligen.

Mitt räd är att du tankar ner databladet på den aktuella FLASH-krets och kollar biten med boot-sector, då kanske du förstår.

Postat: 5 juni 2006, 12:48:18
av Dick T. Hick
Mitt fel.
Du har förstås rätt Icecap.

Jag har redan databladen, men tycks ha missat det där med säkringsbiten.
Kan man ta bort säkringsbiten på något sätt? I en programmerare eller med hjälp av någon raderingspuls med rätt spänning mm?

Annars är ju den gamla flash-ROM:en skrot.

Postat: 5 juni 2006, 14:33:24
av Icecap
Vad jag vet beror det på vilken exakt krets det är. Vissa har att man måste skriva in ett visst ord på en viss adress på ett visst sätt för att "öppna", andra kan öppnas med HV-programmering ("High Voltage", typ 12,5V eller vad specen nu säger) men jag har för mig att det finns ett sätt för alla, det är bara olika sätt.

Alltså: lusläsa datablad :!:

Postat: 15 juni 2006, 21:49:40
av Dick T. Hick
Tack för rådet att lusläsa databladen.
Jag gjorde det. Allt står ju faktiskt där.

Mitt problem nu är att jag inte riktigt vet om det finns färdiga program som kan göra detta. Provade med Uniflash, men den ville inte, eller så missuppfattade jag syntaxen.

Har något vagt minne av att det finns några kommandon i DOS som tillåter att man skriver direkt till vissa adresser i systemet. PCI kortet (Adaptec 2940UW) befinner sig på:

BUS 00
DEV 0B (11 DECIMALT)
FUN 00

Vendor ID för Adaptec = 9004

Ett av chipsen är:
SST29EE512

Ett annat är:
Atmel AT29C512

Här är en av syntaxerna jag provade under Uniflash:

uniflash -pcirom 00 11 00 -force 1F5D -e 29402572.rom

Som betyder:
Sätt målenhet till PCI ROM på plats 00 11 00 (decimalt), som är Adaptecs kort. Tvångssätt chiptypen till Atmel AT29C512 (Uniflashs kod för den är 1F5D) och programmera med filen 29402572.rom, vars namn avslöjar att det är version 2.5.72 av BIOS:et för 2940-kontrollern.

Det funkar. Uniflash programmerar som den ska.
Men verifieringen misslyckas.

Försökte också använda kommandot -unlock och -restore, för att rensa rent, men nada.

Flashromen sitter fastlödd på PCI kortet och kan inte programmeras eller låsas upp i en fristående programmerare.

Har letat efter liknande program, men inte fått fram något.

Någon som har idéer?

Postat: 16 juni 2006, 03:24:10
av chille
Anledningen att orginalfilen går att skriva tillbaka är nog att den skriver på utan någon felkoll. Sen när den ska verifiera är ju ROM-minnet identiskt med filen du försökt skriva ner, och då blir den ju glad och tror den lyckats.

Har du kollat så det inte är nån jumper eller något på kortet som skulle kunna vara typ en read only-bygel?