]> git.sur5r.net Git - openocd/blobdiff - src/target/embeddedice.h
retire daemon_startup
[openocd] / src / target / embeddedice.h
index 466854f9d47a508fc23caef224120eb68ca962ba..971f5fb7c27ef6a87ee74687bec27aae528d7308 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005, 2006 by Dominic Rath                                    *
+ *   Copyright (C) 2005, 2006 by Dominic Rath                              *
  *   Dominic.Rath@gmx.de                                                   *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -91,6 +91,7 @@ typedef struct embeddedice_reg_s
 } embeddedice_reg_t;
 
 extern reg_cache_t* embeddedice_build_reg_cache(target_t *target, arm7_9_common_t *arm7_9);
+extern int embeddedice_setup(target_t *target);
 extern int embeddedice_read_reg(reg_t *reg);
 extern int embeddedice_write_reg(reg_t *reg, u32 value);
 extern int embeddedice_read_reg_w_check(reg_t *reg, u8* check_value, u8* check_mask);
@@ -98,5 +99,27 @@ extern int embeddedice_store_reg(reg_t *reg);
 extern int embeddedice_set_reg(reg_t *reg, u32 value);
 extern int embeddedice_set_reg_w_exec(reg_t *reg, u8 *buf);
 extern int embeddedice_receive(arm_jtag_t *jtag_info, u32 *data, u32 size);
+extern int embeddedice_send(arm_jtag_t *jtag_info, u32 *data, u32 size);
+extern int embeddedice_handshake(arm_jtag_t *jtag_info, int hsbit, u32 timeout);
+
+/* If many embeddedice_write_reg() follow eachother, then the >1 invocations can be this faster version of 
+ * embeddedice_write_reg
+ */
+static const int embeddedice_num_bits[]={32,5,1};
+static __inline__ void embeddedice_write_reg_inner(int chain_pos, int reg_addr, u32 value)
+{
+       u32 values[3];
+       
+       values[0]=value;
+       values[1]=reg_addr;
+       values[2]=1;
+       
+       jtag_add_dr_out(chain_pos, 
+                       3,
+                       embeddedice_num_bits,
+                       values,
+                       -1);
+}
+
 
 #endif /* EMBEDDED_ICE_H */