summaryrefslogtreecommitdiffstats
path: root/reverse-engineering
diff options
context:
space:
mode:
authorMichael Buesch <mb@bu3sch.de>2010-03-14 11:44:10 +0100
committerMichael Buesch <mb@bu3sch.de>2010-03-14 11:44:10 +0100
commitdb9211f22d77deb83eedbf0a0e7279f0822fc4b3 (patch)
tree47e5f8b347486edd86881d02eaea7e97a1006561 /reverse-engineering
parent32a2164bd89a831f2ec1904f49f00c77c78212d1 (diff)
downloadtoprammer-db9211f22d77deb83eedbf0a0e7279f0822fc4b3.tar.xz
toprammer-db9211f22d77deb83eedbf0a0e7279f0822fc4b3.zip
Document more unknown instructions
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Diffstat (limited to 'reverse-engineering')
-rw-r--r--reverse-engineering/HWPROTOCOL14
-rwxr-xr-xreverse-engineering/dump-parser.py11
2 files changed, 22 insertions, 3 deletions
diff --git a/reverse-engineering/HWPROTOCOL b/reverse-engineering/HWPROTOCOL
index 69c162e..6e01228 100644
--- a/reverse-engineering/HWPROTOCOL
+++ b/reverse-engineering/HWPROTOCOL
@@ -6,7 +6,7 @@ TOP2049 USB protocol (incomplete)
00 >= NOP. No operation.
-01 >= Read a byte from the FPGA into the status register.
+01 >= Read a byte from the FPGA at address 0x10 into the status register.
07 >= Read the status register.
The register is read by sending 07h via bulk out
@@ -54,10 +54,18 @@ TOP2049 USB protocol (incomplete)
0E220000... >= Program the FPGA. 60bytes of data is appended.
-10xx >= Write a byte (xx) to the FPGA.
+10xx >= Write a byte (xx) to the FPGA at address 0x10.
19 >= Unknown
+1B >= Flush (and/or commit) command
+
34 >= Unknown
-1B >= Flush (and/or commit) command
+38xx >= Unknown
+
+39 >= Unknown
+
+4Axx >= Unknown
+
+4Bxx >= Unknown
diff --git a/reverse-engineering/dump-parser.py b/reverse-engineering/dump-parser.py
index 0484825..b2f9e3d 100755
--- a/reverse-engineering/dump-parser.py
+++ b/reverse-engineering/dump-parser.py
@@ -129,6 +129,17 @@ def parseBulkOut(data):
dumpInstr(data[i:i+1], "Flush request")
elif data[i] == 0x34:
dumpInstr(data[i:i+1], "Unknown 0x34")
+ elif data[i] == 0x38:
+ dumpInstr(data[i:i+2], "Unknown 0x38")
+ i += 1
+ elif data[i] == 0x39:
+ dumpInstr(data[i:i+1], "Unknown 0x39")
+ elif data[i] == 0x4A:
+ dumpInstr(data[i:i+2], "Unknown 0x4A")
+ i += 1
+ elif data[i] == 0x4B:
+ dumpInstr(data[i:i+2], "Unknown 0x4B")
+ i += 1
else:
print "UNKNOWN INSTRUCTION 0x%02X. Aborting..." % data[i]
for j in range(i, len(data)):
bues.ch cgit interface