X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fflash%2Fnor%2Flpc2900.c;h=e17823ec2dee513eb63c29de21022960d7b84fa9;hb=5d09972931e55c4d2bba7471df9c725f5bebc18c;hp=ce74bbbac4eef15c010eb12ea27221eb65985394;hpb=c2cc677056f8b383ff8f88ed8a16f1aa4b530ae2;p=openocd.git diff --git a/src/flash/nor/lpc2900.c b/src/flash/nor/lpc2900.c index ce74bbbac4..e17823ec2d 100644 --- a/src/flash/nor/lpc2900.c +++ b/src/flash/nor/lpc2900.c @@ -26,7 +26,7 @@ #include "imp.h" #include #include -#include +#include #include @@ -306,39 +306,39 @@ static uint32_t lpc2900_read_security_status( struct flash_bank *bank ) * a protected sector! */ int sector; - int index; + int index_t; for( sector = 0; sector < bank->num_sectors; sector++ ) { /* Convert logical sector number to physical sector number */ if( sector <= 4 ) { - index = sector + 11; + index_t = sector + 11; } else if( sector <= 7 ) { - index = sector + 27; + index_t = sector + 27; } else { - index = sector - 8; + index_t = sector - 8; } bank->sectors[sector].is_protected = -1; if ( - (iss_secured_field[index][0] == 0x00000000) && - (iss_secured_field[index][1] == 0x00000000) && - (iss_secured_field[index][2] == 0x00000000) && - (iss_secured_field[index][3] == 0x00000000) ) + (iss_secured_field[index_t][0] == 0x00000000) && + (iss_secured_field[index_t][1] == 0x00000000) && + (iss_secured_field[index_t][2] == 0x00000000) && + (iss_secured_field[index_t][3] == 0x00000000) ) { bank->sectors[sector].is_protected = 1; } if ( - (iss_secured_field[index][0] == 0xFFFFFFFF) && - (iss_secured_field[index][1] == 0xFFFFFFFF) && - (iss_secured_field[index][2] == 0xFFFFFFFF) && - (iss_secured_field[index][3] == 0xFFFFFFFF) ) + (iss_secured_field[index_t][0] == 0xFFFFFFFF) && + (iss_secured_field[index_t][1] == 0xFFFFFFFF) && + (iss_secured_field[index_t][2] == 0xFFFFFFFF) && + (iss_secured_field[index_t][3] == 0xFFFFFFFF) ) { bank->sectors[sector].is_protected = 0; } @@ -507,7 +507,7 @@ static int lpc2900_write_index_page( struct flash_bank *bank, * @param clock System clock in Hz * @param time Program/erase time in µs */ -static uint32_t lpc2900_calc_tr( uint32_t clock, uint32_t time ) +static uint32_t lpc2900_calc_tr( uint32_t clock_var, uint32_t time_var ) { /* ((time[µs]/1e6) * f[Hz]) + 511 * FPTR.TR = ------------------------------- @@ -516,7 +516,7 @@ static uint32_t lpc2900_calc_tr( uint32_t clock, uint32_t time ) * The result is the */ - uint32_t tr_val = (uint32_t)((((time / 1e6) * clock) + 511.0) / 512.0); + uint32_t tr_val = (uint32_t)((((time_var / 1e6) * clock_var) + 511.0) / 512.0); return tr_val; } @@ -951,45 +951,49 @@ COMMAND_HANDLER(lpc2900_handle_secure_jtag_command) static const struct command_registration lpc2900_exec_command_handlers[] = { { .name = "signature", - .handler = &lpc2900_handle_signature_command, + .handler = lpc2900_handle_signature_command, .mode = COMMAND_EXEC, - .usage = "", - .help = "print device signature of flash bank", + .usage = "bank_id", + .help = "Calculate and display signature of flash bank.", }, { .name = "read_custom", - .handler = &lpc2900_handle_read_custom_command, + .handler = lpc2900_handle_read_custom_command, .mode = COMMAND_EXEC, - .usage = " ", - .help = "read customer information from index sector to file", + .usage = "bank_id filename", + .help = "Copies 912 bytes of customer information " + "from index sector into file.", }, { .name = "password", - .handler = &lpc2900_handle_password_command, + .handler = lpc2900_handle_password_command, .mode = COMMAND_EXEC, - .usage = " ", - .help = "enter password to enable 'dangerous' options", + .usage = "bank_id password", + .help = "Enter fixed password to enable 'dangerous' options.", }, { .name = "write_custom", - .handler = &lpc2900_handle_write_custom_command, + .handler = lpc2900_handle_write_custom_command, .mode = COMMAND_EXEC, - .usage = " []", - .help = "write customer info from file to index sector", + .usage = "bank_id filename ('bin'|'ihex'|'elf'|'s19')", + .help = "Copies 912 bytes of customer info from file " + "to index sector.", }, { .name = "secure_sector", - .handler = &lpc2900_handle_secure_sector_command, + .handler = lpc2900_handle_secure_sector_command, .mode = COMMAND_EXEC, - .usage = " ", - .help = "activate sector security for a range of sectors", + .usage = "bank_id first_sector last_sector", + .help = "Activate sector security for a range of sectors. " + "It will be effective after a power cycle.", }, { .name = "secure_jtag", - .handler = &lpc2900_handle_secure_jtag_command, + .handler = lpc2900_handle_secure_jtag_command, .mode = COMMAND_EXEC, - .usage = " ", - .help = "activate JTAG security", + .usage = "bank_id", + .help = "Disable the JTAG port. " + "It will be effective after a power cycle.", }, COMMAND_REGISTRATION_DONE }; @@ -1284,7 +1288,7 @@ static int lpc2900_write(struct flash_bank *bank, uint8_t *buffer, reduced size if that fails. */ struct working_area *warea; uint32_t buffer_size = lpc2900_info->max_ram_block - 1 * KiB; - while( (retval = target_alloc_working_area(target, + while( (retval = target_alloc_working_area_try(target, buffer_size + target_code_size, &warea)) != ERROR_OK ) { @@ -1361,7 +1365,7 @@ static int lpc2900_write(struct flash_bank *bank, uint8_t *buffer, this_buffer = buffer; /* Make sure we stop at the next secured sector */ - int sector = start_sector + 1; + sector = start_sector + 1; while( sector < bank->num_sectors ) { /* Secured? */ @@ -1826,6 +1830,7 @@ struct flash_driver lpc2900_flash = .erase = lpc2900_erase, .protect = lpc2900_protect, .write = lpc2900_write, + .read = default_flash_read, .probe = lpc2900_probe, .auto_probe = lpc2900_probe, .erase_check = lpc2900_erase_check,