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

Reply via email to