X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2FGoodFET.py;h=99756ba832aeaae69cdbd26357b61b1b53378bc1;hp=3a192fcf43d3aea2f8ef41c7c9d389819c54df2c;hb=f1d07ce6be7b2ec7cc637d491abd32371bd4dfb1;hpb=c28cce5afcc1e1747f51e5afe15e338dae030376;ds=inline diff --git a/client/GoodFET.py b/client/GoodFET.py index 3a192fc..99756ba 100755 --- a/client/GoodFET.py +++ b/client/GoodFET.py @@ -179,6 +179,11 @@ class GoodFET: 0xC22013: "MX25L4005", 0x204011: "M45PE10" }; + JEDECsizes={0x14: 0x100000, + 0x13: 0x080000, + 0x12: 0x040000, + 0x11: 0x020000} + JEDECsize=0; def SPIjedec(self): """Grab an SPI Flash ROM's JEDEC bytes.""" data=[0x9f, 0, 0, 0]; @@ -187,6 +192,7 @@ class GoodFET: self.JEDECmanufacturer=ord(data[1]); self.JEDECtype=ord(data[2]); self.JEDECcapacity=ord(data[3]); + self.JEDECsize=self.JEDECsizes.get(self.JEDECcapacity); self.JEDECdevice=(ord(data[1])<<16)+(ord(data[2])<<8)+ord(data[3]); return data; def SPIpeek(self,adr): @@ -199,14 +205,13 @@ class GoodFET: self.SPItrans(data); return ord(self.data[4]); def SPIpeekblock(self,adr): - """Grab a byte from an SPI Flash ROM.""" + """Grab a block from an SPI Flash ROM. Block size is unknown""" data=[(adr&0xFF0000)>>16, (adr&0xFF00)>>8, adr&0xFF]; self.writecmd(0x01,0x02,3,data); return self.data; - def SPIpokebyte(self,adr,val): self.SPIpokebytes(adr,[val]); def SPIpokebytes(self,adr,data):