X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fflash%2Fnor%2Favrf.c;h=b88f6f61c3995365543e661fd0f3b645c29c9fb6;hp=3261f8ba11e233b248300f6fe9b5a006a3a1e968;hb=9542cb7c3d9f4b66d2df3d8412a73d008077ab86;hpb=08d4411b59dd8bd0e7d8009003b71d23acbf6eee diff --git a/src/flash/nor/avrf.c b/src/flash/nor/avrf.c index 3261f8ba11..b88f6f61c3 100644 --- a/src/flash/nor/avrf.c +++ b/src/flash/nor/avrf.c @@ -13,9 +13,7 @@ * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * + * along with this program. If not, see . * ***************************************************************************/ #ifdef HAVE_CONFIG_H @@ -63,12 +61,19 @@ struct avrf_flash_bank { int probed; }; -static struct avrf_type avft_chips_info[] = { +static const struct avrf_type avft_chips_info[] = { /* name, chip_id, flash_page_size, flash_page_num, * eeprom_page_size, eeprom_page_num */ {"atmega128", 0x9702, 256, 512, 8, 512}, + {"atmega128rfa1", 0xa701, 128, 512, 8, 512}, {"at90can128", 0x9781, 256, 512, 8, 512}, + {"at90usb128", 0x9782, 256, 512, 8, 512}, + {"atmega164p", 0x940a, 128, 128, 4, 128}, + {"atmega324p", 0x9508, 128, 256, 4, 256}, + {"atmega324pa", 0x9511, 128, 256, 4, 256}, + {"atmega644p", 0x960a, 256, 256, 8, 256}, + {"atmega1284p", 0x9705, 256, 512, 8, 512}, }; /* avr program functions */ @@ -137,7 +142,7 @@ static int avr_jtagprg_chiperase(struct avr_common *avr) } static int avr_jtagprg_writeflashpage(struct avr_common *avr, - uint8_t *page_buf, + const uint8_t *page_buf, uint32_t buf_size, uint32_t addr, uint32_t page_size) @@ -228,13 +233,7 @@ static int avrf_erase(struct flash_bank *bank, int first, int last) return avr_jtagprg_leaveprogmode(avr); } -static int avrf_protect(struct flash_bank *bank, int set, int first, int last) -{ - LOG_INFO("%s", __func__); - return ERROR_OK; -} - -static int avrf_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int avrf_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct target *target = bank->target; struct avr_common *avr = target->arch_info; @@ -288,7 +287,7 @@ static int avrf_probe(struct flash_bank *bank) struct target *target = bank->target; struct avrf_flash_bank *avrf_info = bank->driver_priv; struct avr_common *avr = target->arch_info; - struct avrf_type *avr_info = NULL; + const struct avrf_type *avr_info = NULL; int i; uint32_t device_id; @@ -333,7 +332,7 @@ static int avrf_probe(struct flash_bank *bank) bank->sectors[i].offset = i * avr_info->flash_page_size; bank->sectors[i].size = avr_info->flash_page_size; bank->sectors[i].is_erased = -1; - bank->sectors[i].is_protected = 1; + bank->sectors[i].is_protected = -1; } avrf_info->probed = 1; @@ -355,17 +354,11 @@ static int avrf_auto_probe(struct flash_bank *bank) return avrf_probe(bank); } -static int avrf_protect_check(struct flash_bank *bank) -{ - LOG_INFO("%s", __func__); - return ERROR_OK; -} - static int avrf_info(struct flash_bank *bank, char *buf, int buf_size) { struct target *target = bank->target; struct avr_common *avr = target->arch_info; - struct avrf_type *avr_info = NULL; + const struct avrf_type *avr_info = NULL; int i; uint32_t device_id; @@ -474,12 +467,11 @@ struct flash_driver avr_flash = { .commands = avrf_command_handlers, .flash_bank_command = avrf_flash_bank_command, .erase = avrf_erase, - .protect = avrf_protect, .write = avrf_write, .read = default_flash_read, .probe = avrf_probe, .auto_probe = avrf_auto_probe, .erase_check = default_flash_blank_check, - .protect_check = avrf_protect_check, .info = avrf_info, + .free_driver_priv = default_flash_free_driver_priv, };