From: Øyvind H. <go...@us...> - 2010-03-16 10:37:56
|
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 f85ad1e52a499bc98ae9d559157e8adbe8a5ad1f (commit) from a540033a71eb0b10bb8de85963781ec1b9c06cf1 (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 f85ad1e52a499bc98ae9d559157e8adbe8a5ad1f Author: Bradey Honsinger <br...@gm...> Date: Mon Mar 15 08:43:41 2010 +0100 image loading: fix problem with offsets > 0x80000000 Fixes bug that prevented users from specifying a base address of 0x80000000 or higher in image commands (flash write_image, etm image, xscale trace_image). image.base_address is an offset from the start address contained in the image file (if there is one), or from 0 (for binary files). As a signed 32-bit int, it couldn't be greater than 0x7fffffff, which is a problem when trying to write a binary file to flash above that address. Changing it to a 64-bit long long keeps it as a signed offset, but allows it to cover the entire 32-bit address space. Signed-off-by: Ãyvind Harboe <oyv...@zy...> diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c index a40230b..38cb655 100644 --- a/src/flash/nor/tcl.c +++ b/src/flash/nor/tcl.c @@ -434,7 +434,7 @@ COMMAND_HANDLER(handle_flash_write_image_command) if (CMD_ARGC >= 2) { image.base_address_set = 1; - COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], image.base_address); + COMMAND_PARSE_NUMBER(llong, CMD_ARGV[1], image.base_address); } else { diff --git a/src/target/etm.c b/src/target/etm.c index 10ab72a..67dac06 100644 --- a/src/target/etm.c +++ b/src/target/etm.c @@ -1761,7 +1761,7 @@ COMMAND_HANDLER(handle_etm_image_command) if (CMD_ARGC >= 2) { etm_ctx->image->base_address_set = 1; - COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], etm_ctx->image->base_address); + COMMAND_PARSE_NUMBER(llong, CMD_ARGV[1], etm_ctx->image->base_address); } else { diff --git a/src/target/image.h b/src/target/image.h index e963b3c..b096031 100644 --- a/src/target/image.h +++ b/src/target/image.h @@ -62,7 +62,7 @@ struct image int num_sections; /* number of sections contained in the image */ struct imageection *sections; /* array of sections */ int base_address_set; /* whether the image has a base address set (for relocation purposes) */ - int base_address; /* base address, if one is set */ + long long base_address; /* base address, if one is set */ int start_address_set; /* whether the image has a start address (entry point) associated */ uint32_t start_address; /* start address, if one is set */ }; diff --git a/src/target/xscale.c b/src/target/xscale.c index 50c9595..dd4a7ee 100644 --- a/src/target/xscale.c +++ b/src/target/xscale.c @@ -3419,7 +3419,7 @@ COMMAND_HANDLER(xscale_handle_trace_image_command) if (CMD_ARGC >= 2) { xscale->trace.image->base_address_set = 1; - COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], xscale->trace.image->base_address); + COMMAND_PARSE_NUMBER(llong, CMD_ARGV[1], xscale->trace.image->base_address); } else { ----------------------------------------------------------------------- Summary of changes: src/flash/nor/tcl.c | 2 +- src/target/etm.c | 2 +- src/target/image.h | 2 +- src/target/xscale.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) hooks/post-receive -- Main OpenOCD repository |