arm_adi_v5: mem_ap_write error propagation
[fw/openocd] / src / target / arm_adi_v5.h
index abdbd2480bad41db401c1f484fe95fcf6357b5c9..92469eb48926697cedf854cdd9013eb3232a6ad1 100644 (file)
 
 #include "arm_jtag.h"
 
-/* JTAG instructions/registers for JTAG-DP and SWJ-DP */
-#define JTAG_DP_ABORT          0x8
+/* FIXME remove these JTAG-specific decls when mem_ap_read_buf_u32()
+ * is no longer JTAG-specific
+ */
 #define JTAG_DP_DPACC          0xA
 #define JTAG_DP_APACC          0xB
-#define JTAG_DP_IDCODE         0xE
-
-/* three-bit ACK values for DPACC and APACC reads */
-#define JTAG_ACK_OK_FAULT      0x2
-#define JTAG_ACK_WAIT          0x1
 
 /* three-bit ACK values for SWD access (sent LSB first) */
 #define SWD_ACK_OK             0x4
@@ -236,6 +232,7 @@ struct dap_ops {
 static inline int dap_queue_idcode_read(struct adiv5_dap *dap,
                uint8_t *ack, uint32_t *data)
 {
+       assert(dap->ops != NULL);
        return dap->ops->queue_idcode_read(dap, ack, data);
 }
 
@@ -254,6 +251,7 @@ static inline int dap_queue_idcode_read(struct adiv5_dap *dap,
 static inline int dap_queue_dp_read(struct adiv5_dap *dap,
                unsigned reg, uint32_t *data)
 {
+       assert(dap->ops != NULL);
        return dap->ops->queue_dp_read(dap, reg, data);
 }
 
@@ -271,6 +269,7 @@ static inline int dap_queue_dp_read(struct adiv5_dap *dap,
 static inline int dap_queue_dp_write(struct adiv5_dap *dap,
                unsigned reg, uint32_t data)
 {
+       assert(dap->ops != NULL);
        return dap->ops->queue_dp_write(dap, reg, data);
 }
 
@@ -287,6 +286,7 @@ static inline int dap_queue_dp_write(struct adiv5_dap *dap,
 static inline int dap_queue_ap_read(struct adiv5_dap *dap,
                unsigned reg, uint32_t *data)
 {
+       assert(dap->ops != NULL);
        return dap->ops->queue_ap_read(dap, reg, data);
 }
 
@@ -302,6 +302,7 @@ static inline int dap_queue_ap_read(struct adiv5_dap *dap,
 static inline int dap_queue_ap_write(struct adiv5_dap *dap,
                unsigned reg, uint32_t data)
 {
+       assert(dap->ops != NULL);
        return dap->ops->queue_ap_write(dap, reg, data);
 }
 
@@ -318,6 +319,7 @@ static inline int dap_queue_ap_write(struct adiv5_dap *dap,
  */
 static inline int dap_queue_ap_abort(struct adiv5_dap *dap, uint8_t *ack)
 {
+       assert(dap->ops != NULL);
        return dap->ops->queue_ap_abort(dap, ack);
 }
 
@@ -333,6 +335,7 @@ static inline int dap_queue_ap_abort(struct adiv5_dap *dap, uint8_t *ack)
  */
 static inline int dap_run(struct adiv5_dap *dap)
 {
+       assert(dap->ops != NULL);
        return dap->ops->run(dap);
 }
 
@@ -378,17 +381,6 @@ int mem_ap_write_buf_u32(struct adiv5_dap *swjdp,
 int ahbap_debugport_init(struct adiv5_dap *swjdp);
 
 
-/* Commands for user dap access */
-int dap_info_command(struct command_context *cmd_ctx,
-               struct adiv5_dap *swjdp, int apsel);
-
-#define DAP_COMMAND_HANDLER(name) \
-               COMMAND_HELPER(name, struct adiv5_dap *swjdp)
-DAP_COMMAND_HANDLER(dap_baseaddr_command);
-DAP_COMMAND_HANDLER(dap_memaccess_command);
-DAP_COMMAND_HANDLER(dap_apsel_command);
-DAP_COMMAND_HANDLER(dap_apid_command);
-
 struct target;
 
 /* Put debug link into SWD mode */
@@ -397,4 +389,6 @@ int dap_to_swd(struct target *target);
 /* Put debug link into JTAG mode */
 int dap_to_jtag(struct target *target);
 
+extern const struct command_registration dap_command_handlers[];
+
 #endif