This patch, from 1636 to 1637 breaks the cortx targets. I am not sure why but I really think removing the inhandler functionallity is NOT ready for production use yet. Better testining is needed before changes like this.
Regards Magnus Øyvind Harboe wrote: > Committed. > > ### Eclipse Workspace Patch 1.0 > #P openocd > Index: src/target/arm_adi_v5.c > =================================================================== > --- src/target/arm_adi_v5.c (revision 1628) > +++ src/target/arm_adi_v5.c (working copy) > @@ -77,22 +77,22 @@ > fields[0].num_bits = 3; > buf_set_u32(&out_addr_buf, 0, 3, ((reg_addr >> 1) & 0x6) | (RnW & 0x1)); > fields[0].out_value = &out_addr_buf; > - > + > fields[0].in_value = ack; > - > - > + > + > fields[0].in_handler = NULL; > - > + > > fields[1].tap = jtag_info->tap; > fields[1].num_bits = 32; > fields[1].out_value = outvalue; > - > + > fields[1].in_value = invalue; > fields[1].in_handler = NULL; > - > - > - > + > + > + > > jtag_add_dr_scan(2, fields, TAP_INVALID); > > @@ -113,33 +113,29 @@ > fields[0].num_bits = 3; > buf_set_u32(&out_addr_buf, 0, 3, ((reg_addr >> 1) & 0x6) | (RnW & 0x1)); > fields[0].out_value = &out_addr_buf; > - > fields[0].in_value = ack; > - > - > fields[0].in_handler = NULL; > - > + > > fields[1].tap = jtag_info->tap; > fields[1].num_bits = 32; > buf_set_u32(out_value_buf, 0, 32, outvalue); > fields[1].out_value = out_value_buf; > - > fields[1].in_value = NULL; > + fields[1].in_handler = NULL; > + > if (invalue) > { > - fields[1].in_handler = arm_jtag_buf_to_u32; /* deprecated! > invoke > this from user code! */ > - fields[1].in_handler_priv = invalue; > - } > - else > + u8 tmp[4]; > + fields[1].in_value = tmp; > + jtag_add_dr_scan_now(2, fields, TAP_INVALID); > + > + *invalue=flip_u32(le_to_h_u32(tmp), 32); > + } else > { > - fields[1].in_handler = NULL; > - > - } > - > - > > - jtag_add_dr_scan(2, fields, TAP_INVALID); > + jtag_add_dr_scan(2, fields, TAP_INVALID); > + } > > return ERROR_OK; > } > @@ -296,7 +292,7 @@ > { > return scan_inout_check_u32(swjdp, SWJDP_IR_DPACC, reg_addr, > DPAP_READ, 0, value); > } > - > + > int dap_ap_select(swjdp_common_t *swjdp,u8 apsel) > { > u32 select; > @@ -1012,7 +1008,7 @@ > > u32 dbgbase,apid; > int romtable_present = 0; > - u8 mem_ap; > + u8 mem_ap; > u32 apselold; > > apselold = swjdp->apsel; > @@ -1028,23 +1024,23 @@ > switch (apid&0x0F) > { > case 0: > - command_print(cmd_ctx, "\tType is jtag-ap"); > > + command_print(cmd_ctx, "\tType is jtag-ap"); > break; > case 1: > - command_print(cmd_ctx, "\tType is mem-ap AHB"); > > + command_print(cmd_ctx, "\tType is mem-ap AHB"); > break; > case 2: > - command_print(cmd_ctx, "\tType is mem-ap APB"); > > + command_print(cmd_ctx, "\tType is mem-ap APB"); > break; > default: > - command_print(cmd_ctx, "\tUnknown AP-type"); > + command_print(cmd_ctx, "\tUnknown AP-type"); > break; > } > command_print(cmd_ctx, "ap debugbase 0x%8.8x", dbgbase); > } > else > { > - command_print(cmd_ctx, "No AP found at this apsel 0x%x", > apsel); > + command_print(cmd_ctx, "No AP found at this apsel 0x%x", apsel); > } > > romtable_present = ((mem_ap)&&(dbgbase != 0xFFFFFFFF)); > @@ -1062,11 +1058,11 @@ > command_print(cmd_ctx, "\tROM table in legacy format" ); > } > /* Now we read ROM table ID registers, ref. ARM IHI 0029B sec > */ > - mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFF0, &cid0); > > - mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFF4, &cid1); > > - mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFF8, &cid2); > > - mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFFC, &cid3); > > - mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFCC, &memtype); > > + mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFF0, &cid0); > + mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFF4, &cid1); > + mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFF8, &cid2); > + mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFFC, &cid3); > + mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000)|0xFCC, &memtype); > swjdp_transaction_endcheck(swjdp); > command_print(cmd_ctx, "\tCID3 0x%x, CID2 0x%x, CID1 0x%x, CID0, > 0x%x",cid3,cid2,cid1,cid0); > if (memtype&0x01) > @@ -1077,10 +1073,10 @@ > { > command_print(cmd_ctx, "\tMEMTYPE system memory not > present. > Dedicated debug bus" ); > } > - > + > /* Now we read ROM table entries from dbgbase&0xFFFFF000)|0x000 > until we get 0x00000000 */ > entry_offset = 0; > - do > + do > { > mem_ap_read_atomic_u32(swjdp, > (dbgbase&0xFFFFF000)|entry_offset, &romentry); > command_print(cmd_ctx, "\tROMTABLE[0x%x] = > 0x%x",entry_offset,romentry); > @@ -1107,16 +1103,16 @@ > else > { > if (romentry) > - command_print(cmd_ctx, "\t\tComponent > not present"); > + command_print(cmd_ctx, "\t\tComponent > not present"); > else > - command_print(cmd_ctx, "\t\tEnd of ROM > table"); > + command_print(cmd_ctx, "\t\tEnd of ROM > table"); > } > entry_offset += 4; > } while (romentry>0); > } > else > { > - command_print(cmd_ctx, "\tNo ROM table present"); > + command_print(cmd_ctx, "\tNo ROM table present"); > } > dap_ap_select(swjdp, apselold); > > > > _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development