warnings: fix alignment warnings
[fw/openocd] / src / target / xscale.c
index 77f0f1b8927756906e446f1ad47fb5ff57105ada..e0ce400b46101a5b480467693deccf0757a64db4 100644 (file)
@@ -244,7 +244,7 @@ static int xscale_read_dcsr(struct target *target)
 static void xscale_getbuf(jtag_callback_data_t arg)
 {
        uint8_t *in = (uint8_t *)arg;
-       *((uint32_t *)in) = buf_get_u32(in, 0, 32);
+       *((uint32_t *)arg) = buf_get_u32(in, 0, 32);
 }
 
 static int xscale_receive(struct target *target, uint32_t *buffer, int num_words)
@@ -2401,6 +2401,13 @@ static int xscale_add_watchpoint(struct target *target,
           return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
        }
        
+       if (watchpoint->length > watchpoint->address)
+       {
+          LOG_ERROR("xscale does not support watchpoints with length "
+                                "greater than address");
+          return ERROR_COMMAND_ARGUMENT_INVALID;
+       }
+          
        xscale->dbr_available = 0;
        return ERROR_OK;
 }