XScale: better {read,write}_phys()
We can actually do the right thing if the MMU is off; save the error message for the phys-but-MMU-enabled path, which is what isn't yet supported. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>__archive__
parent
85a4136d0b
commit
12b8c7b89b
|
@ -1905,7 +1905,13 @@ static int xscale_read_memory(struct target *target, uint32_t address,
|
||||||
static int xscale_read_phys_memory(struct target *target, uint32_t address,
|
static int xscale_read_phys_memory(struct target *target, uint32_t address,
|
||||||
uint32_t size, uint32_t count, uint8_t *buffer)
|
uint32_t size, uint32_t count, uint8_t *buffer)
|
||||||
{
|
{
|
||||||
/** \todo: provide a non-stub implementtion of this routine. */
|
struct xscale_common *xscale = target_to_xscale(target);
|
||||||
|
|
||||||
|
/* with MMU inactive, there are only physical addresses */
|
||||||
|
if (!xscale->armv4_5_mmu.mmu_enabled)
|
||||||
|
return xscale_read_memory(target, address, size, count, buffer);
|
||||||
|
|
||||||
|
/** \todo: provide a non-stub implementation of this routine. */
|
||||||
LOG_ERROR("%s: %s is not implemented. Disable MMU?",
|
LOG_ERROR("%s: %s is not implemented. Disable MMU?",
|
||||||
target_name(target), __func__);
|
target_name(target), __func__);
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
|
@ -1992,7 +1998,13 @@ static int xscale_write_memory(struct target *target, uint32_t address,
|
||||||
static int xscale_write_phys_memory(struct target *target, uint32_t address,
|
static int xscale_write_phys_memory(struct target *target, uint32_t address,
|
||||||
uint32_t size, uint32_t count, uint8_t *buffer)
|
uint32_t size, uint32_t count, uint8_t *buffer)
|
||||||
{
|
{
|
||||||
/** \todo: provide a non-stub implementtion of this routine. */
|
struct xscale_common *xscale = target_to_xscale(target);
|
||||||
|
|
||||||
|
/* with MMU inactive, there are only physical addresses */
|
||||||
|
if (!xscale->armv4_5_mmu.mmu_enabled)
|
||||||
|
return xscale_read_memory(target, address, size, count, buffer);
|
||||||
|
|
||||||
|
/** \todo: provide a non-stub implementation of this routine. */
|
||||||
LOG_ERROR("%s: %s is not implemented. Disable MMU?",
|
LOG_ERROR("%s: %s is not implemented. Disable MMU?",
|
||||||
target_name(target), __func__);
|
target_name(target), __func__);
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
|
|
Loading…
Reference in New Issue