X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=decoders%2Fjtag_ejtag%2Fpd.py;h=191526b2e5b7b05de08dfddbe7da6f8ebef68229;hb=624710c9a5808f8b3583160a20c0e7edc8bb62d9;hp=e327e89ac937f6383b0be63b0f20c5ea3937d496;hpb=44c2ae6e17e24aa419f47151ceb1619e76105030;p=libsigrokdecode.git diff --git a/decoders/jtag_ejtag/pd.py b/decoders/jtag_ejtag/pd.py index e327e89..191526b 100644 --- a/decoders/jtag_ejtag/pd.py +++ b/decoders/jtag_ejtag/pd.py @@ -18,7 +18,7 @@ ## import sigrokdecode as srd -from common.srdhelper import bin2int +from common.srdhelper import bin2int, SrdIntEnum class Instruction(object): IDCODE = 0x01 @@ -53,7 +53,7 @@ class ControlReg(object): PRACC = (1 << 18) PRNW = (1 << 19) -class Ann(object): +class Ann(SrdIntEnum): INSTRUCTION = 0 REGISTER = 1 CONTROL_FIELD_IN = 10 @@ -191,12 +191,13 @@ regs_items = { class Decoder(srd.Decoder): api_version = 3 id = 'jtag_ejtag' - name = 'JTAG / EJTAG (MIPS)' + name = 'JTAG / EJTAG' longname = 'Joint Test Action Group / EJTAG (MIPS)' desc = 'MIPS EJTAG protocol.' license = 'gplv2+' inputs = ['jtag'] - outputs = ['jtag_ejtag'] + outputs = [] + tags = ['Debug/trace'] annotations = ( ('instruction', 'Instruction'), ) + regs_items['ann'] + ( @@ -206,10 +207,10 @@ class Decoder(srd.Decoder): ) annotation_rows = ( ('instructions', 'Instructions', (0,)), - ('regs', 'Registers', regs_items['rows_range']), ('control_fields_in', 'Control fields in', (10,)), ('control_fields_out', 'Control fields out', (11,)), - ('pracc', 'PrAcc', (12,)), + ('regs', 'Registers', regs_items['rows_range']), + ('pracc-vals', 'PrAcc', (12,)), ) def __init__(self): @@ -223,7 +224,7 @@ class Decoder(srd.Decoder): self.put(self.ss, self.es, self.out_ann, data) def put_at(self, ss: int, es: int, data): - self.put(ss, es, self.out_ann, data); + self.put(ss, es, self.out_ann, data) def start(self): self.out_ann = self.register(srd.OUTPUT_ANN) @@ -357,16 +358,16 @@ class Decoder(srd.Decoder): def handle_ir_tdi(self, val): code = bin2int(val[0]) - hex = '0x{:02X}'.format(code) + hexval = '0x{:02X}'.format(code) if code in ejtag_insn: # Format instruction name. insn = ejtag_insn[code] s_short = insn[0] - s_long = insn[0] + ': ' + insn[1] + ' (' + hex + ')' + s_long = insn[0] + ': ' + insn[1] + ' (' + hexval + ')' # Display it and select data register. self.put_current([Ann.INSTRUCTION, [s_long, s_short]]) else: - self.put_current([Ann.INSTRUCTION, [hex, 'IR TDI ({})'.format(hex)]]) + self.put_current([Ann.INSTRUCTION, [hexval, 'IR TDI ({})'.format(hexval)]]) self.select_reg(code) def handle_new_state(self, new_state):