This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Main OpenOCD repository".
The branch, master has been updated
via fb50efc6e712f413d109c3d77683d0358a557ed4 (commit)
via a9abfa7d06dbcfded97b7fb41f50d3581c24fbae (commit)
from ca00483a95bd574ff824d66212c10a870d6620ee (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit fb50efc6e712f413d109c3d77683d0358a557ed4
Merge: a9abfa7 ca00483
Author: David Brownell <dbr...@us...>
Date: Fri Nov 6 15:01:46 2009 -0800
Merge branch 'master' of ssh://dbr...@op.../gitroot/openocd/openocd
commit a9abfa7d06dbcfded97b7fb41f50d3581c24fbae
Author: David Brownell <dbr...@us...>
Date: Fri Nov 6 14:57:21 2009 -0800
target: don't swap MMU/no-MMU work areas
Resolve serious bug inserted by the "target: require working
area for physical/virtual addresses to be specified" patch.
It forced use of (invalid) virtual addresses when the MMU
was disabled, and vice versa.
Observed to break at least Cortex-M3, ARM926, ARM7TDMI whenever
work areas are used, such as during bulk writes to flash, DDR2,
SRAM, and so on.
Also, fix overlong lines and whitespace goofs.
Signed-off-by: David Brownell <dbr...@us...>
diff --git a/src/target/target.c b/src/target/target.c
index b5c473b..5eec09c 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -1115,32 +1115,33 @@ int target_alloc_working_area(struct target_s *target, uint32_t size, working_ar
{
int retval;
int enabled;
+
retval = target->type->mmu(target, &enabled);
if (retval != ERROR_OK)
{
return retval;
}
- if (enabled)
- {
- if (target->working_area_phys_spec)
- {
- LOG_DEBUG("MMU disabled, using physical address for working memory 0x%08x", (unsigned)target->working_area_phys);
+ if (!enabled) {
+ if (target->working_area_phys_spec) {
+ LOG_DEBUG("MMU disabled, using physical "
+ "address for working memory 0x%08x",
+ (unsigned)target->working_area_phys);
target->working_area = target->working_area_phys;
- } else
- {
- LOG_ERROR("No working memory available. Specify -work-area-phys to target.");
+ } else {
+ LOG_ERROR("No working memory available. "
+ "Specify -work-area-phys to target.");
return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
}
- } else
- {
- if (target->working_area_virt_spec)
- {
- LOG_DEBUG("MMU enabled, using virtual address for working memory 0x%08x", (unsigned)target->working_area_virt);
+ } else {
+ if (target->working_area_virt_spec) {
+ LOG_DEBUG("MMU enabled, using virtual "
+ "address for working memory 0x%08x",
+ (unsigned)target->working_area_virt);
target->working_area = target->working_area_virt;
- } else
- {
- LOG_ERROR("No working memory available. Specify -work-area-virt to target.");
+ } else {
+ LOG_ERROR("No working memory available. "
+ "Specify -work-area-virt to target.");
return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
}
}
-----------------------------------------------------------------------
Summary of changes:
src/target/target.c | 33 +++++++++++++++++----------------
1 files changed, 17 insertions(+), 16 deletions(-)
hooks/post-receive
--
Main OpenOCD repository
|