Found by grepping for pointer casts.
Change-Id: Ib94957a0c53ec7abcbd5787d8c70e20c9eedc4b7
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/1770
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
static uint32_t lpc2900_read_security_status(struct flash_bank *bank);
static uint32_t lpc2900_run_bist128(struct flash_bank *bank,
uint32_t addr_from, uint32_t addr_to,
static uint32_t lpc2900_read_security_status(struct flash_bank *bank);
static uint32_t lpc2900_run_bist128(struct flash_bank *bank,
uint32_t addr_from, uint32_t addr_to,
- uint32_t (*signature)[4]);
+ uint32_t signature[4]);
static uint32_t lpc2900_address2sector(struct flash_bank *bank, uint32_t offset);
static uint32_t lpc2900_calc_tr(uint32_t clock_var, uint32_t time_var);
static uint32_t lpc2900_address2sector(struct flash_bank *bank, uint32_t offset);
static uint32_t lpc2900_calc_tr(uint32_t clock_var, uint32_t time_var);
static uint32_t lpc2900_run_bist128(struct flash_bank *bank,
uint32_t addr_from,
uint32_t addr_to,
static uint32_t lpc2900_run_bist128(struct flash_bank *bank,
uint32_t addr_from,
uint32_t addr_to,
- uint32_t (*signature)[4])
{
struct target *target = bank->target;
{
struct target *target = bank->target;
return ERROR_FLASH_OPERATION_FAILED;
/* Return the signature */
return ERROR_FLASH_OPERATION_FAILED;
/* Return the signature */
- target_read_memory(target, FMSW0, 4, 4, (uint8_t *)signature);
+ uint8_t sig_buf[4 * 4];
+ target_read_memory(target, FMSW0, 4, 4, sig_buf);
+ target_buffer_get_u32_array(target, sig_buf, 4, signature);
*/
static int lpc2900_write_index_page(struct flash_bank *bank,
int pagenum,
*/
static int lpc2900_write_index_page(struct flash_bank *bank,
int pagenum,
- uint8_t (*page)[FLASH_PAGE_SIZE])
+ uint8_t page[FLASH_PAGE_SIZE])
{
/* Only pages 4...7 are user writable */
if ((pagenum < 4) || (pagenum > 7)) {
{
/* Only pages 4...7 are user writable */
if ((pagenum < 4) || (pagenum > 7)) {
/* Write whole page to flash data latches */
if (target_write_memory(target,
bank->base + pagenum * FLASH_PAGE_SIZE,
/* Write whole page to flash data latches */
if (target_write_memory(target,
bank->base + pagenum * FLASH_PAGE_SIZE,
- 4, FLASH_PAGE_SIZE / 4, (uint8_t *)page) != ERROR_OK) {
+ 4, FLASH_PAGE_SIZE / 4, page) != ERROR_OK) {
LOG_ERROR("Index sector write failed @ page %d", pagenum);
target_write_u32(target, FCTR, FCTR_FS_CS | FCTR_FS_WEB);
LOG_ERROR("Index sector write failed @ page %d", pagenum);
target_write_u32(target, FCTR, FCTR_FS_CS | FCTR_FS_WEB);
}
/* Run BIST over whole flash range */
}
/* Run BIST over whole flash range */
- status = lpc2900_run_bist128(bank, bank->base, bank->base + (bank->size - 1), &signature);
+ status = lpc2900_run_bist128(bank, bank->base, bank->base + (bank->size - 1), signature);
if (status != ERROR_OK)
return status;
if (status != ERROR_OK)
return status;
}
/* Storage for customer info. Read in two parts */
}
/* Storage for customer info. Read in two parts */
- uint32_t customer[ISS_CUSTOMER_NWORDS1 + ISS_CUSTOMER_NWORDS2];
+ uint8_t customer[4 * (ISS_CUSTOMER_NWORDS1 + ISS_CUSTOMER_NWORDS2)];
/* Enable access to index sector */
target_write_u32(target, FCTR, FCTR_FS_CS | FCTR_FS_WEB | FCTR_FS_ISS);
/* Enable access to index sector */
target_write_u32(target, FCTR, FCTR_FS_CS | FCTR_FS_WEB | FCTR_FS_ISS);
/* Read two parts */
target_read_memory(target, bank->base+ISS_CUSTOMER_START1, 4,
ISS_CUSTOMER_NWORDS1,
/* Read two parts */
target_read_memory(target, bank->base+ISS_CUSTOMER_START1, 4,
ISS_CUSTOMER_NWORDS1,
- (uint8_t *)&customer[0]);
target_read_memory(target, bank->base+ISS_CUSTOMER_START2, 4,
ISS_CUSTOMER_NWORDS2,
target_read_memory(target, bank->base+ISS_CUSTOMER_START2, 4,
ISS_CUSTOMER_NWORDS2,
- (uint8_t *)&customer[ISS_CUSTOMER_NWORDS1]);
+ &customer[4 * ISS_CUSTOMER_NWORDS1]);
/* Deactivate access to index sector */
target_write_u32(target, FCTR, FCTR_FS_CS | FCTR_FS_WEB);
/* Deactivate access to index sector */
target_write_u32(target, FCTR, FCTR_FS_CS | FCTR_FS_WEB);
- ret = fileio_write(&fileio, sizeof(customer),
- (const uint8_t *)customer, &nwritten);
+ ret = fileio_write(&fileio, sizeof(customer), customer, &nwritten);
if (ret != ERROR_OK) {
LOG_ERROR("Write operation to file %s failed", filename);
fileio_close(&fileio);
if (ret != ERROR_OK) {
LOG_ERROR("Write operation to file %s failed", filename);
fileio_close(&fileio);
image_close(&image);
return retval;
}
image_close(&image);
return retval;
}
- retval = lpc2900_write_index_page(bank, 4, &page);
+ retval = lpc2900_write_index_page(bank, 4, page);
if (retval != ERROR_OK) {
image_close(&image);
return retval;
if (retval != ERROR_OK) {
image_close(&image);
return retval;
image_close(&image);
return retval;
}
image_close(&image);
return retval;
}
- retval = lpc2900_write_index_page(bank, 5, &page);
+ retval = lpc2900_write_index_page(bank, 5, page);
if (retval != ERROR_OK) {
image_close(&image);
return retval;
if (retval != ERROR_OK) {
image_close(&image);
return retval;
memset(&page[0x00 + 16*(sector - 8)], 0, 16);
}
memset(&page[0x00 + 16*(sector - 8)], 0, 16);
}
- retval = lpc2900_write_index_page(bank, 6, &page);
+ retval = lpc2900_write_index_page(bank, 6, page);
if (retval != ERROR_OK) {
LOG_ERROR("failed to update index sector page 6");
return retval;
if (retval != ERROR_OK) {
LOG_ERROR("failed to update index sector page 6");
return retval;
memset(&page[0x00 + 16*(sector - 5)], 0, 16);
}
memset(&page[0x00 + 16*(sector - 5)], 0, 16);
}
- retval = lpc2900_write_index_page(bank, 7, &page);
+ retval = lpc2900_write_index_page(bank, 7, page);
if (retval != ERROR_OK) {
LOG_ERROR("failed to update index sector page 7");
return retval;
if (retval != ERROR_OK) {
LOG_ERROR("failed to update index sector page 7");
return retval;
page[0x30 + 3] = 0x7F;
/* Write to page 5 */
page[0x30 + 3] = 0x7F;
/* Write to page 5 */
- retval = lpc2900_write_index_page(bank, 5, &page);
+ retval = lpc2900_write_index_page(bank, 5, page);
if (retval != ERROR_OK) {
LOG_ERROR("failed to update index sector page 5");
return retval;
if (retval != ERROR_OK) {
LOG_ERROR("failed to update index sector page 5");
return retval;
* a target algorithm. If not, fall back to host programming. */
/* We need some room for target code. */
* a target algorithm. If not, fall back to host programming. */
/* We need some room for target code. */
- uint32_t target_code_size = sizeof(write_target_code);
+ const uint32_t target_code_size = sizeof(write_target_code);
/* Try working area allocation. Start with a large buffer, and try with
* reduced size if that fails. */
/* Try working area allocation. Start with a large buffer, and try with
* reduced size if that fails. */
struct arm_algorithm arm_algo;
/* We can use target mode. Download the algorithm. */
struct arm_algorithm arm_algo;
/* We can use target mode. Download the algorithm. */
- retval = target_write_buffer(target,
- (warea->address)+buffer_size,
- target_code_size,
- (uint8_t *)write_target_code);
+ uint8_t code[sizeof(write_target_code)];
+ target_buffer_set_u32_array(target, code, ARRAY_SIZE(write_target_code),
+ write_target_code);
+ retval = target_write_buffer(target, (warea->address) + buffer_size, sizeof(code), code);
if (retval != ERROR_OK) {
LOG_ERROR("Unable to write block write code to target");
target_free_all_working_areas(target);
if (retval != ERROR_OK) {
LOG_ERROR("Unable to write block write code to target");
target_free_all_working_areas(target);
for (sector = 0; sector < bank->num_sectors; sector++) {
uint32_t signature[4];
status = lpc2900_run_bist128(bank, bank->sectors[sector].offset,
for (sector = 0; sector < bank->num_sectors; sector++) {
uint32_t signature[4];
status = lpc2900_run_bist128(bank, bank->sectors[sector].offset,
- bank->sectors[sector].offset + (bank->sectors[sector].size - 1), &signature);
+ bank->sectors[sector].offset + (bank->sectors[sector].size - 1), signature);
if (status != ERROR_OK)
return status;
if (status != ERROR_OK)
return status;
Linking to existing account procedure
If you already have an account and want to add another login method
you
MUST first sign in with your existing account and
then change URL to read
https://review.openocd.org/login/?link
to get to this page again but this time it'll work for linking. Thank you.
SSH host keys fingerprints
1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=.. |
|+o.. . |
|*.o . . |
|+B . . . |
|Bo. = o S |
|Oo.+ + = |
|oB=.* = . o |
| =+=.+ + E |
|. .=o . o |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)