AVR flash: handle AT90CAN128 chips
I have successfully programmed the AT90CAN128, based on the mega128 with some small modifications. [ dbrownell@users.sourceforge.net: patch cleanup ] Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
This commit is contained in:
parent
75067c4042
commit
7abe9f38b2
|
@ -52,8 +52,11 @@
|
||||||
|
|
||||||
struct avrf_type avft_chips_info[] =
|
struct avrf_type avft_chips_info[] =
|
||||||
{
|
{
|
||||||
// name, chip_id, flash_page_size, flash_page_num, eeprom_page_size, eeprom_page_num
|
/* name, chip_id, flash_page_size, flash_page_num,
|
||||||
|
* eeprom_page_size, eeprom_page_num
|
||||||
|
*/
|
||||||
{"atmega128", 0x9702, 256, 512, 8, 512},
|
{"atmega128", 0x9702, 256, 512, 8, 512},
|
||||||
|
{"at90can128", 0x9781, 256, 512, 8, 512},
|
||||||
};
|
};
|
||||||
|
|
||||||
int avr_jtag_sendinstr(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out);
|
int avr_jtag_sendinstr(struct jtag_tap *tap, uint8_t *ir_in, uint8_t ir_out);
|
||||||
|
@ -200,8 +203,27 @@ FLASH_BANK_COMMAND_HANDLER(avrf_flash_bank_command)
|
||||||
|
|
||||||
static int avrf_erase(struct flash_bank *bank, int first, int last)
|
static int avrf_erase(struct flash_bank *bank, int first, int last)
|
||||||
{
|
{
|
||||||
LOG_INFO("%s", __FUNCTION__);
|
struct target *target = bank->target;
|
||||||
return ERROR_OK;
|
struct avr_common *avr = target->arch_info;
|
||||||
|
int status;
|
||||||
|
|
||||||
|
LOG_DEBUG("%s", __FUNCTION__);
|
||||||
|
|
||||||
|
if (target->state != TARGET_HALTED)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Target not halted");
|
||||||
|
return ERROR_TARGET_NOT_HALTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
status = avr_jtagprg_enterprogmode(avr);
|
||||||
|
if (status != ERROR_OK)
|
||||||
|
return status;
|
||||||
|
|
||||||
|
status = avr_jtagprg_chiperase(avr);
|
||||||
|
if (status != ERROR_OK)
|
||||||
|
return status;
|
||||||
|
|
||||||
|
return avr_jtagprg_leaveprogmode(avr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int avrf_protect(struct flash_bank *bank, int set, int first, int last)
|
static int avrf_protect(struct flash_bank *bank, int set, int first, int last)
|
||||||
|
|
Loading…
Reference in New Issue