From: travisutk Date: Mon, 1 Feb 2010 07:02:29 +0000 (+0000) Subject: Fixes flash page sizing on CC1110, for flashing above 0x400. X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=c7f111a9f649b3f7c0ce654f5b7ecb07140e438b;hp=690044aeda48e95f052afd096a377fbb05188e43 Fixes flash page sizing on CC1110, for flashing above 0x400. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@294 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/client/GoodFETCC.py b/client/GoodFETCC.py index 093709d..69ef8b9 100644 --- a/client/GoodFETCC.py +++ b/client/GoodFETCC.py @@ -82,6 +82,15 @@ class GoodFETCC(GoodFET): 0xA500:"CC2530", #page 52 of SWRU191 0xB500:"CC2531", 0xFF00:"CCmissing"}; + CCpagesizes={0x01: 1024, #"CC1110", + 0x85: 2048, #"CC2430", + 0x89: 2048, #"CC2431", + 0x81: 1024, #"CC2510", + 0x91: 1024, #"CC2511", + 0xA5: 2048, #"CC2530", #page 52 of SWRU191 + 0xB5: 2048, #"CC2531", + 0xFF: 0 } #"CCmissing"}; + def CCidentstr(self): ident=self.CCident(); chip=self.CCversions.get(ident&0xFF00); @@ -92,6 +101,12 @@ class GoodFETCC(GoodFET): chip=ord(self.data[0]); rev=ord(self.data[1]); return (chip<<8)+rev; + def CCpagesize(self): + """Get a chipcon's ID.""" + self.writecmd(0x30,0x8B,0,None); + chip=ord(self.data[0]); + + return self.CCpagesizes.get(chip); def CCgetPC(self): """Get a chipcon's PC.""" self.writecmd(0x30,0x83,0,None); diff --git a/client/goodfet.cc b/client/goodfet.cc index 2cd9e5f..52eb1dd 100755 --- a/client/goodfet.cc +++ b/client/goodfet.cc @@ -146,7 +146,8 @@ if(sys.argv[1]=="flash"): h = IntelHex(f); page = 0x0000; - pagelen = 2048; #2kB pages in 32-bit words + pagelen = client.CCpagesize(); #2048; #2kB pages in 32-bit words + bcount = 0; print "Wiping Flash."