projects
/
b43-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fwcutter: Use ARRAY_SIZE
[b43-tools.git]
/
debug
/
b43-fwdump
diff --git
a/debug/b43-fwdump
b/debug/b43-fwdump
index 4308d60704fb0828c02ba28d6628e6df4601db7c..24f1f0d23d8e99cbb60b24eb7180e0eec93ee100 100755
(executable)
--- a/
debug/b43-fwdump
+++ b/
debug/b43-fwdump
@@
-32,11
+32,13
@@
def usage():
print "Usage: b43-fwdump [OPTIONS]"
print ""
print "-h|--help Print this help text"
print "Usage: b43-fwdump [OPTIONS]"
print ""
print "-h|--help Print this help text"
- print "-p|--phy PHY The PHY to use. For example phy0"
+ print "-p|--phy WIPHY The WIPHY to use. For example phy0."
+ print " Can be omitted, if there is only one device in the system."
print "-b|--binary BIN The firmware binary. This is required for"
print " an instruction dump."
print "-d|--dasmopt OPT Additional options to the disassembler."
print "-s|--shm Also dump SHM."
print "-b|--binary BIN The firmware binary. This is required for"
print " an instruction dump."
print "-d|--dasmopt OPT Additional options to the disassembler."
print "-s|--shm Also dump SHM."
+ print "-S|--shmbin Do a binary SHM dump, only."
return
def parseArgs():
return
def parseArgs():
@@
-44,16
+46,18
@@
def parseArgs():
global binary
global dasmopt
global dumpShm
global binary
global dasmopt
global dumpShm
+ global dumpShmBin
phy = None # Autodetect
binary = None # No instruction dump
dasmopt = ""
dumpShm = False
phy = None # Autodetect
binary = None # No instruction dump
dasmopt = ""
dumpShm = False
+ dumpShmBin = False
try:
(opts, args) = getopt.getopt(sys.argv[1:],
try:
(opts, args) = getopt.getopt(sys.argv[1:],
- "hp:b:d:s",
- [ "help", "phy=", "binary=", "dasmopt=", "shm" ])
+ "hp:b:d:s
S
",
+ [ "help", "phy=", "binary=", "dasmopt=", "shm"
, "shmbin"
])
except getopt.GetoptError:
usage()
sys.exit(1)
except getopt.GetoptError:
usage()
sys.exit(1)
@@
-70,6
+74,8
@@
def parseArgs():
dasmopt = v
if o in ("-s", "--shm"):
dumpShm = True
dasmopt = v
if o in ("-s", "--shm"):
dumpShm = True
+ if o in ("-S", "--shmbin"):
+ dumpShmBin = True
return
return
@@
-85,16
+91,6
@@
def dump_regs(prefix, regs):
stdout.write("\n")
return
stdout.write("\n")
return
-def disassembleText(text):
- input = NamedTemporaryFile()
- output = NamedTemporaryFile()
-
- input.write(text)
- input.flush()
- os.system("b43-dasm %s %s %s --paddr" % (input.name, dasmopt, output.name))
-
- return output.read()
-
def makeShortDump(dasm, pc):
dasm = dasm.splitlines()
i = 0
def makeShortDump(dasm, pc):
dasm = dasm.splitlines()
i = 0
@@
-130,12
+126,17
@@
def main():
gpr = b43.getGprs()
lr = b43.getLinkRegs()
off = b43.getOffsetRegs()
gpr = b43.getGprs()
lr = b43.getLinkRegs()
off = b43.getOffsetRegs()
- if dumpShm:
+ if dumpShm
or dumpShmBin
:
shm = b43.shmSharedRead()
dbg = b43.getPsmDebug()
psmcond = b43.getPsmConditions()
b43.ucodeStart()
shm = b43.shmSharedRead()
dbg = b43.getPsmDebug()
psmcond = b43.getPsmConditions()
b43.ucodeStart()
+ if dumpShmBin:
+ # Only do a binary SHM dump
+ stdout.write(shm)
+ sys.exit(0)
+
print "--- B43 microcode state dump ---"
print "PC: %03X PSM-COND: %04X" % (dbg.getPc(), psmcond)
print "Link registers:"
print "--- B43 microcode state dump ---"
print "PC: %03X PSM-COND: %04X" % (dbg.getPc(), psmcond)
print "Link registers:"
@@
-152,7
+153,7
@@
def main():
except IOError, e:
print "Could not read binary file %s: %s" % (binary, e.strerror)
sys.exit(1)
except IOError, e:
print "Could not read binary file %s: %s" % (binary, e.strerror)
sys.exit(1)
- dasm =
disassembleText(bintext
)
+ dasm =
Disassembler(bintext, dasmopt + "--paddr").getAsm(
)
print makeShortDump(dasm, dbg.getPc())
else:
print "<No binary supplied. See --binary option>"
print makeShortDump(dasm, dbg.getPc())
else:
print "<No binary supplied. See --binary option>"