/**
* Private data for \c lpc2900 flash driver.
*/
-typedef struct lpc2900_flash_bank_s
+struct lpc2900_flash_bank
{
/**
* Holds the value read from CHIPID register.
*/
uint32_t max_ram_block;
-} lpc2900_flash_bank_t;
+};
static uint32_t lpc2900_wait_status(flash_bank_t *bank, uint32_t mask, int timeout);
int timeout )
{
uint32_t int_status;
- target_t *target = bank->target;
+ struct target *target = bank->target;
do
static void lpc2900_setup( struct flash_bank_s *bank )
{
uint32_t fcra;
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
/* Power up the flash block */
*/
static uint32_t lpc2900_is_ready( struct flash_bank_s *bank )
{
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
if( lpc2900_info->chipid != EXPECTED_CHIPID )
{
return status;
}
- target_t *target = bank->target;
+ struct target *target = bank->target;
/* Enable ISS access */
target_write_u32(target, FCTR, FCTR_FS_CS | FCTR_FS_WEB | FCTR_FS_ISS);
uint32_t addr_to,
uint32_t (*signature)[4] )
{
- target_t *target = bank->target;
+ struct target *target = bank->target;
/* Clear END_OF_MISR interrupt status */
target_write_u32( target, INT_CLR_STATUS, INTSRC_END_OF_MISR );
}
/* Get target, and check if it's halted */
- target_t *target = bank->target;
+ struct target *target = bank->target;
if( target->state != TARGET_HALTED )
{
LOG_ERROR( "Target not halted" );
}
/* Private info */
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
/* Enable flash block and set the correct CRA clock of 66 kHz */
lpc2900_setup( bank );
if (ERROR_OK != retval)
return retval;
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
lpc2900_info->risky = 0;
/* Get target, and check if it's halted */
- target_t *target = bank->target;
+ struct target *target = bank->target;
if( target->state != TARGET_HALTED )
{
LOG_ERROR( "Target not halted" );
if (ERROR_OK != retval)
return retval;
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
#define ISS_PASSWORD "I_know_what_I_am_doing"
if (ERROR_OK != retval)
return retval;
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
/* Check if command execution is allowed. */
if( !lpc2900_info->risky )
lpc2900_info->risky = 0;
/* Get target, and check if it's halted */
- target_t *target = bank->target;
+ struct target *target = bank->target;
if (target->state != TARGET_HALTED)
{
LOG_ERROR("Target not halted");
}
/* The image will always start at offset 0 */
- image_t image;
+ struct image image;
image.base_address_set = 1;
image.base_address = 0;
image.start_address_set = 0;
if (ERROR_OK != retval)
return retval;
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
/* Check if command execution is allowed. */
if( !lpc2900_info->risky )
if (ERROR_OK != retval)
return retval;
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
/* Check if command execution is allowed. */
if( !lpc2900_info->risky )
/// Evaluate flash bank command.
FLASH_BANK_COMMAND_HANDLER(lpc2900_flash_bank_command)
{
- lpc2900_flash_bank_t *lpc2900_info;
+ struct lpc2900_flash_bank *lpc2900_info;
if (argc < 6)
{
return ERROR_FLASH_BANK_INVALID;
}
- lpc2900_info = malloc(sizeof(lpc2900_flash_bank_t));
+ lpc2900_info = malloc(sizeof(struct lpc2900_flash_bank));
bank->driver_priv = lpc2900_info;
/* Get flash clock.
uint32_t status;
int sector;
int last_unsecured_sector;
- target_t *target = bank->target;
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct target *target = bank->target;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
status = lpc2900_is_ready(bank);
uint8_t page[FLASH_PAGE_SIZE];
uint32_t status;
uint32_t num_bytes;
- target_t *target = bank->target;
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
+ struct target *target = bank->target;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
int sector;
int retval;
/* Try working area allocation. Start with a large buffer, and try with
reduced size if that fails. */
- working_area_t *warea;
+ struct working_area *warea;
uint32_t buffer_size = lpc2900_info->max_ram_block - 1 * KiB;
while( (retval = target_alloc_working_area(target,
buffer_size + target_code_size,
if( warea )
{
- reg_param_t reg_params[5];
- armv4_5_algorithm_t armv4_5_info;
+ struct reg_param reg_params[5];
+ struct armv4_5_algorithm armv4_5_info;
/* We can use target mode. Download the algorithm. */
retval = target_write_buffer( target,
*/
static int lpc2900_probe(struct flash_bank_s *bank)
{
- lpc2900_flash_bank_t *lpc2900_info = bank->driver_priv;
- target_t *target = bank->target;
+ struct lpc2900_flash_bank *lpc2900_info = bank->driver_priv;
+ struct target *target = bank->target;
int i = 0;
uint32_t offset;