projects
/
goodfet
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
latest updates including GoodFETARM.py "DEPRECATED" message
[goodfet]
/
client
/
GoodFETSPI.py
diff --git
a/client/GoodFETSPI.py
b/client/GoodFETSPI.py
index
021c7e6
..
5875810
100644
(file)
--- a/
client/GoodFETSPI.py
+++ b/
client/GoodFETSPI.py
@@
-25,12
+25,28
@@
class GoodFETSPI(GoodFET):
self.writecmd(0x01,0x00,len(data),data);
return self.data;
self.writecmd(0x01,0x00,len(data),data);
return self.data;
+class GoodFETSPI25C(GoodFETSPI):
+ #opcodes
+ WREN=0x06;
+ WRDI=0x04;
+ RDSR=0x05;
+ WRSR=0x01;
+ READ=0x03;
+ WRITE=0x02;
+
+ def peek8(self,adr):
+ """Read a byte from the given address."""
+ data=self.SPItrans([self.READ,(adr>>8)&0xFF,adr&0xFF,0x00]);
+ return ord(data[3]);
+
+
class GoodFETSPIFlash(GoodFETSPI):
JEDECmanufacturers={0xFF: "MISSING",
0xEF: "Winbond",
0xC2: "MXIC",
0x20: "Numonyx/ST",
class GoodFETSPIFlash(GoodFETSPI):
JEDECmanufacturers={0xFF: "MISSING",
0xEF: "Winbond",
0xC2: "MXIC",
0x20: "Numonyx/ST",
- 0x1F: "Atmel"
+ 0x1F: "Atmel",
+ 0x01: "AMD/Spansion"
};
JEDECdevices={0xFFFFFF: "MISSING",
};
JEDECdevices={0xFFFFFF: "MISSING",
@@
-44,7
+60,8
@@
class GoodFETSPIFlash(GoodFETSPI):
0xC22015: "MX25L1605D",
0xC22014: "MX25L8005",
0xC22013: "MX25L4005",
0xC22015: "MX25L1605D",
0xC22014: "MX25L8005",
0xC22013: "MX25L4005",
- 0x204011: "M45PE10"
+ 0x204011: "M45PE10",
+ 0x1f4501: "AT24DF081",
};
JEDECsizes={0x17: 0x800000,
};
JEDECsizes={0x17: 0x800000,
@@
-69,7
+86,10
@@
class GoodFETSPIFlash(GoodFETSPI):
self.JEDECsize=self.JEDECsizes.get(self.JEDECcapacity);
if self.JEDECsize==None:
self.JEDECsize=0;
self.JEDECsize=self.JEDECsizes.get(self.JEDECcapacity);
if self.JEDECsize==None:
self.JEDECsize=0;
- self.JEDECdevice=(ord(data[1])<<16)+(ord(data[2])<<8)+ord(data[3]);
+ jedec=(ord(data[1])<<16)+(ord(data[2])<<8)+ord(data[3]);
+ if jedec==0x1F4501:
+ self.JEDECsize=1024**2;
+ self.JEDECdevice=jedec;
return data;
def SPIpeek(self,adr):
"""Grab a byte from an SPI Flash ROM."""
return data;
def SPIpeek(self,adr):
"""Grab a byte from an SPI Flash ROM."""
@@
-93,16
+113,12
@@
class GoodFETSPIFlash(GoodFETSPI):
self.SPIpokebytes(adr,[val]);
def SPIpokebytes(self,adr,data):
#Used to be 24 bits, BE, not 32 bits, LE.
self.SPIpokebytes(adr,[val]);
def SPIpokebytes(self,adr,data):
#Used to be 24 bits, BE, not 32 bits, LE.
-# adranddata=[(adr&0xFF0000)>>16,
-# (adr&0xFF00)>>8,
-# adr&0xFF
-# ]+data;
adranddata=[adr&0xFF,
(adr&0xFF00)>>8,
(adr&0xFF0000)>>16,
0, #MSB
]+data;
adranddata=[adr&0xFF,
(adr&0xFF00)>>8,
(adr&0xFF0000)>>16,
0, #MSB
]+data;
-
+ #print "%06x: poking %i bytes" % (adr,len(data));
self.writecmd(0x01,0x03,
len(adranddata),adranddata);
self.writecmd(0x01,0x03,
len(adranddata),adranddata);