#endif
-#include "image.h"
-#include "flash.h"
+#include "imp.h"
#include <helper/binarybuffer.h>
-#include <target/armv4_5.h>
#include <target/algorithm.h>
+#include <target/arm.h>
+#include <target/image.h>
/* 1024 bytes */
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 = "<bank>",
- .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 = "<bank> <filename>",
- .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 = "<bank> <password>",
- .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 = "<bank> <filename> [<type>]",
- .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 = "<bank> <first> <last>",
- .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 = "<bank> <level>",
- .help = "activate JTAG security",
+ .usage = "bank_id",
+ .help = "Disable the JTAG port. "
+ "It will be effective after a power cycle.",
},
COMMAND_REGISTRATION_DONE
};
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 )
{
if( warea )
{
struct reg_param reg_params[5];
- struct armv4_5_algorithm armv4_5_info;
+ struct arm_algorithm armv4_5_info;
/* We can use target mode. Download the algorithm. */
retval = target_write_buffer( target,
buf_set_u32(reg_params[4].value, 0, 32, FPTR_EN_T | prog_time);
/* Execute algorithm, assume breakpoint for last instruction */
- armv4_5_info.common_magic = ARMV4_5_COMMON_MAGIC;
- armv4_5_info.core_mode = ARMV4_5_MODE_SVC;
- armv4_5_info.core_state = ARMV4_5_STATE_ARM;
+ armv4_5_info.common_magic = ARM_COMMON_MAGIC;
+ armv4_5_info.core_mode = ARM_MODE_SVC;
+ armv4_5_info.core_state = ARM_STATE_ARM;
retval = target_run_algorithm(target, 0, NULL, 5, reg_params,
(warea->address) + buffer_size,
.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,