XScale: add stub {read,write}_phys routines
authorDavid Brownell <dbrownell@users.sourceforge.net>
Thu, 26 Nov 2009 20:00:56 +0000 (12:00 -0800)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Thu, 26 Nov 2009 20:00:56 +0000 (12:00 -0800)
Just make these fail, instead of letting them write over
potentially random memory.  Users should be able to work
around the lack of real implementations by disbling the
MMU by hand ... until someone provides a Real Fix.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
src/target/xscale.c

index 07fcc4c0af42a3ef387ccd1a1bcf1cbb874a7167..1a18ab85aac8de544d348f28dbb779417b7e6cbe 100644 (file)
@@ -1881,6 +1881,15 @@ static int xscale_read_memory(struct target *target, uint32_t address,
        return ERROR_OK;
 }
 
+static int xscale_read_phys_memory(struct target *target, uint32_t address,
+               uint32_t size, uint32_t count, uint8_t *buffer)
+{
+       /** \todo: provide a non-stub implementtion of this routine. */
+       LOG_ERROR("%s: %s is not implemented.  Disable MMU?",
+                       target_name(target), __func__);
+       return ERROR_FAIL;
+}
+
 static int xscale_write_memory(struct target *target, uint32_t address,
                uint32_t size, uint32_t count, uint8_t *buffer)
 {
@@ -1959,6 +1968,15 @@ static int xscale_write_memory(struct target *target, uint32_t address,
        return ERROR_OK;
 }
 
+static int xscale_write_phys_memory(struct target *target, uint32_t address,
+               uint32_t size, uint32_t count, uint8_t *buffer)
+{
+       /** \todo: provide a non-stub implementtion of this routine. */
+       LOG_ERROR("%s: %s is not implemented.  Disable MMU?",
+                       target_name(target), __func__);
+       return ERROR_FAIL;
+}
+
 static int xscale_bulk_write_memory(struct target *target, uint32_t address,
                uint32_t count, uint8_t *buffer)
 {
@@ -3684,7 +3702,9 @@ struct target_type xscale_target =
        .get_gdb_reg_list = armv4_5_get_gdb_reg_list,
 
        .read_memory = xscale_read_memory,
+       .read_phys_memory = xscale_read_phys_memory,
        .write_memory = xscale_write_memory,
+       .write_phys_memory = xscale_write_phys_memory,
        .bulk_write_memory = xscale_bulk_write_memory,
 
        .checksum_memory = arm_checksum_memory,