Magnus Lundin <lundin@mlu.mine.nu>, Oyvind Harboe <oyvind.harboe@zylin.com>, David...
[fw/openocd] / src / target / arm_adi_v5.h
index ad2ba5f230e5120d4fa14845c04465f288341acf..3ff883af755bc8b508a5b49e633833d1e81614a7 100644 (file)
 #define DP_SELECT              0x8
 #define DP_RDBUFF              0xC
 
-#define CORUNDETECT            (1<<0)
-#define SSTICKYORUN            (1<<1)
-#define SSTICKYERR             (1<<5)
-#define CDBGRSTREQ             (1<<26)
-#define CDBGRSTACK             (1<<27)
-#define CDBGPWRUPREQ   (1<<28)
-#define CDBGPWRUPACK   (1<<29)
-#define CSYSPWRUPREQ   (1<<30)
-#define CSYSPWRUPACK   (1<<31)
+#define CORUNDETECT            (1 << 0)
+#define SSTICKYORUN            (1 << 1)
+#define SSTICKYERR             (1 << 5)
+#define CDBGRSTREQ             (1 << 26)
+#define CDBGRSTACK             (1 << 27)
+#define CDBGPWRUPREQ   (1 << 28)
+#define CDBGPWRUPACK   (1 << 29)
+#define CSYSPWRUPREQ   (1 << 30)
+#define CSYSPWRUPACK   (1 << 31)
 
 #define        AP_REG_CSW              0x00
 #define AP_REG_TAR             0x04
 #define CSW_16BIT              1
 #define CSW_32BIT              2
 
-#define CSW_ADDRINC_MASK       (3<<4)
+#define CSW_ADDRINC_MASK       (3 << 4)
 #define CSW_ADDRINC_OFF                0
-#define CSW_ADDRINC_SINGLE     (1<<4)
-#define CSW_ADDRINC_PACKED     (2<<4)
-#define CSW_HPROT                      (1<<25)
-#define CSW_MASTER_DEBUG       (1<<29)
-#define CSW_DBGSWENABLE                (1<<31)
+#define CSW_ADDRINC_SINGLE     (1 << 4)
+#define CSW_ADDRINC_PACKED     (2 << 4)
+#define CSW_HPROT                      (1 << 25)
+#define CSW_MASTER_DEBUG       (1 << 29)
+#define CSW_DBGSWENABLE                (1 << 31)
 
 /* transaction mode */
 #define TRANS_MODE_NONE                        0
@@ -86,72 +86,76 @@ typedef struct swjdp_common_s
 {
        arm_jtag_t *jtag_info;
        /* Control config */
-       u32 dp_ctrl_stat;
+       uint32_t dp_ctrl_stat;
        /* Support for several AP's in one DAP */
-       u32 apsel;
+       uint32_t apsel;
        /* Register select cache */
-       u32 dp_select_value;
-       u32 ap_csw_value;
-       u32 ap_tar_value;
+       uint32_t dp_select_value;
+       uint32_t ap_csw_value;
+       uint32_t ap_tar_value;
        /* information about current pending SWjDP-AHBAP transaction */
        uint8_t  trans_mode;
        uint8_t  trans_rw;
        uint8_t  ack;
        /* extra tck clocks for memory bus access */
-       u32     memaccess_tck;
+       uint32_t        memaccess_tck;
        /* Size of TAR autoincrement block, ARM ADI Specification requires at least 10 bits */
-       u32 tar_autoincr_block;
+       uint32_t tar_autoincr_block;
 
 } swjdp_common_t;
 
-/* Accessor function for currently selected DAP-AP number */ 
+/* Accessor function for currently selected DAP-AP number */
 static inline uint8_t dap_ap_get_select(swjdp_common_t *swjdp)
 {
-       return (uint8_t)( swjdp ->apsel >> 24);
+       return (uint8_t)(swjdp ->apsel >> 24);
 }
 
 /* Internal functions used in the module, partial transactions, use with caution */
-extern int dap_dp_write_reg(swjdp_common_t *swjdp, u32 value, uint8_t reg_addr);
-/* extern int swjdp_write_apacc(swjdp_common_t *swjdp, u32 value, uint8_t reg_addr); */
-extern int dap_dp_read_reg(swjdp_common_t *swjdp, u32 *value, uint8_t reg_addr);
-/* extern int swjdp_read_apacc(swjdp_common_t *swjdp, u32 *value, uint8_t reg_addr); */
-extern int dap_setup_accessport(swjdp_common_t *swjdp, u32 csw, u32 tar);
+extern int dap_dp_write_reg(swjdp_common_t *swjdp, uint32_t value, uint8_t reg_addr);
+/* extern int swjdp_write_apacc(swjdp_common_t *swjdp, uint32_t value, uint8_t reg_addr); */
+extern int dap_dp_read_reg(swjdp_common_t *swjdp, uint32_t *value, uint8_t reg_addr);
+/* extern int swjdp_read_apacc(swjdp_common_t *swjdp, uint32_t *value, uint8_t reg_addr); */
+extern int dap_setup_accessport(swjdp_common_t *swjdp, uint32_t csw, uint32_t tar);
 extern int dap_ap_select(swjdp_common_t *swjdp,uint8_t apsel);
 
-extern int dap_ap_write_reg(swjdp_common_t *swjdp, u32 reg_addr, uint8_t* out_value_buf);
-extern int dap_ap_write_reg_u32(swjdp_common_t *swjdp, u32 reg_addr, u32 value);
-extern int dap_ap_read_reg(swjdp_common_t *swjdp, u32 reg_addr, uint8_t *in_value_buf);
-extern int dap_ap_read_reg_u32(swjdp_common_t *swjdp, u32 reg_addr, u32 *value);
+extern int dap_ap_write_reg(swjdp_common_t *swjdp, uint32_t reg_addr, uint8_t* out_value_buf);
+extern int dap_ap_write_reg_u32(swjdp_common_t *swjdp, uint32_t reg_addr, uint32_t value);
+extern int dap_ap_read_reg(swjdp_common_t *swjdp, uint32_t reg_addr, uint8_t *in_value_buf);
+extern int dap_ap_read_reg_u32(swjdp_common_t *swjdp, uint32_t reg_addr, uint32_t *value);
 
 /* External interface, partial operations must be completed with swjdp_transaction_endcheck() */
 extern int swjdp_transaction_endcheck(swjdp_common_t *swjdp);
 
-/* MEM-AP memory mapped bus single u32 register transfers, without endcheck */
-extern int mem_ap_read_u32(swjdp_common_t *swjdp, u32 address, u32 *value);
-extern int mem_ap_write_u32(swjdp_common_t *swjdp, u32 address, u32 value);
+/* MEM-AP memory mapped bus single uint32_t register transfers, without endcheck */
+extern int mem_ap_read_u32(swjdp_common_t *swjdp, uint32_t address, uint32_t *value);
+extern int mem_ap_write_u32(swjdp_common_t *swjdp, uint32_t address, uint32_t value);
 
 /* MEM-AP memory mapped bus transfers, single registers, complete transactions */
-extern int mem_ap_read_atomic_u32(swjdp_common_t *swjdp, u32 address, u32 *value);
-extern int mem_ap_write_atomic_u32(swjdp_common_t *swjdp, u32 address, u32 value);
+extern int mem_ap_read_atomic_u32(swjdp_common_t *swjdp, uint32_t address, uint32_t *value);
+extern int mem_ap_write_atomic_u32(swjdp_common_t *swjdp, uint32_t address, uint32_t value);
 
 /* MEM-AP memory mapped bus block transfers */
-extern int mem_ap_read_buf_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count, u32 address);
-extern int mem_ap_read_buf_u16(swjdp_common_t *swjdp, uint8_t *buffer, int count, u32 address);
-extern int mem_ap_read_buf_u32(swjdp_common_t *swjdp, uint8_t *buffer, int count, u32 address);
-extern int mem_ap_write_buf_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count, u32 address);
-extern int mem_ap_write_buf_u16(swjdp_common_t *swjdp, uint8_t *buffer, int count, u32 address);
-extern int mem_ap_write_buf_u32(swjdp_common_t *swjdp, uint8_t *buffer, int count, u32 address);
+extern int mem_ap_read_buf_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint32_t address);
+extern int mem_ap_read_buf_u16(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint32_t address);
+extern int mem_ap_read_buf_u32(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint32_t address);
+extern int mem_ap_write_buf_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint32_t address);
+extern int mem_ap_write_buf_u16(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint32_t address);
+extern int mem_ap_write_buf_u32(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint32_t address);
 
 /* Initialisation of the debug system, power domains and registers */
 extern int ahbap_debugport_init(swjdp_common_t *swjdp);
 
-extern int dap_info_command(struct command_context_s *cmd_ctx, swjdp_common_t *swjdp, int apsel);
+
 /* Commands for user dap access */
-/* Currently implemented in armv7m, needs armv7m target structure to find jtag and swjdp structures */
-extern int handle_dap_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-extern int handle_dap_apsel_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-extern int handle_dap_apid_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-extern int handle_dap_baseaddr_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-extern int handle_dap_memaccess_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+int dap_info_command(struct command_context_s *cmd_ctx,
+               swjdp_common_t *swjdp, int apsel);
+int dap_baseaddr_command(struct command_context_s *cmd_ctx,
+               swjdp_common_t *swjdp, char **args, int argc);
+int dap_memaccess_command(struct command_context_s *cmd_ctx,
+               swjdp_common_t *swjdp, char **args, int argc);
+int dap_apsel_command(struct command_context_s *cmd_ctx,
+               swjdp_common_t *swjdp, char **args, int argc);
+int dap_apid_command(struct command_context_s *cmd_ctx,
+               swjdp_common_t *swjdp, char **args, int argc);
 
 #endif