|
OpenOCD
|

Go to the source code of this file.
Data Structures | |
| struct | efm32_dev_info_addr |
| struct | efm32_family_data |
| struct | efm32_flash_chip |
| struct | efm32_info |
| struct | efm32_msc_offset |
Enumerations | |
| enum | efm32_bank_index { EFM32_BANK_INDEX_MAIN , EFM32_BANK_INDEX_USER_DATA , EFM32_BANK_INDEX_LOCK_BITS , EFM32_N_BANKS } |
Functions | |
| COMMAND_HANDLER (efm32_handle_debuglock_command) | |
| static int | efm32_auto_probe (struct flash_bank *bank) |
| static int | efm32_erase (struct flash_bank *bank, unsigned int first, unsigned int last) |
| static int | efm32_erase_page (struct flash_bank *bank, uint32_t addr) |
| static void | efm32_free_driver_priv (struct flash_bank *bank) |
| Remove flash structure corresponding to this bank, if and only if it's not used by any others. More... | |
| static int | efm32_get_bank_index (target_addr_t base) |
| static int | efm32_get_info (struct flash_bank *bank, struct command_invocation *cmd) |
| static int | efm32_get_page_lock (struct flash_bank *bank, size_t page) |
| static char * | efm32_get_str_identifier (struct efm32_info *efm32_mcu_info, char *buf, size_t len) |
| static int | efm32_msc_clock_enable (struct flash_bank *bank) |
| static int | efm32_msc_lock (struct flash_bank *bank, int lock) |
| static int | efm32_priv_write (struct flash_bank *bank, const uint8_t *buffer, uint32_t addr, uint32_t count) |
| static int | efm32_probe (struct flash_bank *bank) |
| static int | efm32_protect (struct flash_bank *bank, int set, unsigned int first, unsigned int last) |
| static int | efm32_protect_check (struct flash_bank *bank) |
| static int | efm32_read_info (struct flash_bank *bank) |
| static int | efm32_read_lock_data (struct flash_bank *bank) |
| static int | efm32_read_reg_u32 (struct flash_bank *bank, target_addr_t offset, uint32_t *value) |
| static int | efm32_set_page_lock (struct flash_bank *bank, size_t page, int set) |
| static int | efm32_set_reg_bits (struct flash_bank *bank, uint32_t reg, uint32_t bitmask, int set) |
| static int | efm32_set_wren (struct flash_bank *bank, int write_enable) |
| static int | efm32_wait_status (struct flash_bank *bank, int timeout_ms, uint32_t wait_mask, bool wait_for_set) |
| static int | efm32_write (struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) |
| static int | efm32_write_block (struct flash_bank *bank, const uint8_t *buf, uint32_t address, uint32_t count) |
| static int | efm32_write_lock_data (struct flash_bank *bank) |
| static int | efm32_write_only_lockbits (struct flash_bank *bank) |
| static int | efm32_write_reg_u32 (struct flash_bank *bank, target_addr_t offset, uint32_t value) |
| static int | efm32_write_word (struct flash_bank *bank, uint32_t addr, uint32_t val) |
| FLASH_BANK_COMMAND_HANDLER (efm32_flash_bank_command) | |
Variables | |
| static const struct command_registration | efm32_command_handlers [] |
| static const struct efm32_dev_info_addr | efm32_dev_info_addr [] |
| static const struct command_registration | efm32_exec_command_handlers [] |
| static const struct efm32_family_data | efm32_families [] |
| const struct flash_driver | efm32_flash |
| static const uint8_t | efm32_flash_write_code_s0_s1 [] |
| static const uint8_t | efm32_flash_write_code_s2 [] |
| static const struct efm32_msc_offset | efm32_msc_offset [] |
| #define EFM32_DI_PART_FAMILY (EFM32_MSC_INFO_BASE + 0x81fe) |
| #define EFM32_MSC_LOCK_BITS (EFM32_MSC_INFO_BASE + 0x4000) |
| #define EFM32_MSC_LOCK_BITS_EXTRA (EFM32_MSC_INFO_BASE + 0x4200) |
| #define EFM32_MSC_USER_DATA (EFM32_MSC_INFO_BASE + 0x0000) |
| enum efm32_bank_index |
| COMMAND_HANDLER | ( | efm32_handle_debuglock_command | ) |
Definition at line 1306 of file efm32.c.
References bank, CALL_COMMAND_HANDLER, CMD, CMD_ARGC, command_print(), efm32_msc_clock_enable(), efm32_write_lock_data(), ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, ERROR_TARGET_NOT_HALTED, LOG_ERROR, target::state, and TARGET_HALTED.
|
static |
Definition at line 1247 of file efm32.c.
References bank, efm32_get_bank_index(), efm32_probe(), and ERROR_OK.
|
static |
Definition at line 636 of file efm32.c.
References bank, efm32_erase_page(), efm32_msc_clock_enable(), efm32_msc_lock(), EFM32_MSC_LOCK_BITS, efm32_set_wren(), efm32_write_only_lockbits(), ERROR_OK, ERROR_TARGET_NOT_HALTED, LOG_ERROR, target::state, and TARGET_HALTED.
|
static |
Definition at line 583 of file efm32.c.
References addr, bank, EFM32_FLASH_OPERATION_TIMEOUT, EFM32_MSC_STATUS_BUSY_MASK, EFM32_MSC_STATUS_INVADDR_MASK, EFM32_MSC_STATUS_LOCKED_MASK, EFM32_MSC_WRITECMD_ERASEPAGE_MASK, EFM32_MSC_WRITECMD_LADDRIM_MASK, efm32_read_reg_u32(), efm32_set_reg_bits(), efm32_wait_status(), efm32_write_reg_u32(), ERROR_FAIL, ERROR_OK, LOG_DEBUG, LOG_ERROR, efm32_info::msc_offset, efm32_msc_offset::off_addrb, efm32_msc_offset::off_status, efm32_msc_offset::off_writecmd, and status.
Referenced by efm32_erase(), and efm32_write_lock_data().
|
static |
|
static |
Definition at line 183 of file efm32.c.
Referenced by efm32_auto_probe(), efm32_probe(), and FLASH_BANK_COMMAND_HANDLER().
|
static |
Definition at line 1287 of file efm32.c.
References bank, cmd, command_print_sameline(), efm32_get_str_identifier(), efm32_read_info(), ERROR_OK, and LOG_ERROR.
|
static |
Definition at line 808 of file efm32.c.
References bank, BIT, EFM32_FLASH_BASE_V1, EFM32_FLASH_BASE_V2, EFM32_MSC_LOCK_BITS, EFM32_MSC_USER_DATA, and mask.
Referenced by efm32_protect_check().
|
static |
Definition at line 1144 of file efm32.c.
References EFM32_DI_PARTINFO_FAMILY_MASK, EFM32_DI_PARTINFO_NUM_MASK, EFM32_DI_PARTINFO_TYPE_MASK, efm32_info::family_data, FIELD_GET, efm32_family_data::name, efm32_info::part_info, and efm32_info::part_rev.
Referenced by efm32_get_info(), and efm32_probe().
|
static |
Definition at line 472 of file efm32.c.
References bank, BIT, EFM32_CMU_REG_CLKEN1_SET, EFM32_DI_PARTINFO_FAMILY_MASK, ERROR_OK, efm32_info::family_data, FIELD_GET, LOG_ERROR, LOG_WARNING, efm32_info::part_info, efm32_family_data::series, and target_write_u32().
Referenced by COMMAND_HANDLER(), efm32_erase(), efm32_priv_write(), and efm32_probe().
|
static |
Definition at line 542 of file efm32.c.
References bank, EFM32_MSC_LOCK_LOCKKEY, efm32_write_reg_u32(), efm32_info::msc_offset, and efm32_msc_offset::off_lock.
Referenced by efm32_erase(), and efm32_priv_write().
|
static |
Definition at line 1058 of file efm32.c.
References addr, bank, buffer, count, efm32_msc_clock_enable(), efm32_msc_lock(), efm32_set_wren(), efm32_write_block(), efm32_write_word(), ERROR_FAIL, ERROR_FLASH_DST_BREAKS_ALIGNMENT, ERROR_OK, ERROR_TARGET_NOT_HALTED, ERROR_TARGET_RESOURCE_NOT_AVAILABLE, LOG_ERROR, LOG_INFO, LOG_WARNING, NULL, target::state, and TARGET_HALTED.
Referenced by efm32_write(), efm32_write_lock_data(), and efm32_write_only_lockbits().
|
static |
Definition at line 1179 of file efm32.c.
References alloc_block_array(), bank, EFM32_DI_PARTINFO_FAMILY_MASK, EFM32_FLASH_BASE_V1, EFM32_FLASH_BASE_V2, efm32_get_bank_index(), efm32_get_str_identifier(), efm32_msc_clock_enable(), efm32_read_info(), efm32_read_reg_u32(), ERROR_FAIL, ERROR_OK, efm32_info::family_data, FIELD_GET, efm32_info::flash_sz_kib, LOCKWORDS_SZ, LOG_ERROR, LOG_INFO, efm32_info::msc_offset, NULL, efm32_msc_offset::off_userdatasize, page_size, efm32_info::page_size, efm32_info::page_size_ud, efm32_info::part_info, and efm32_family_data::series.
Referenced by efm32_auto_probe().
|
static |
Definition at line 853 of file efm32.c.
References bank, efm32_read_lock_data(), efm32_set_page_lock(), efm32_write_lock_data(), ERROR_FLASH_OPER_UNSUPPORTED, ERROR_OK, ERROR_TARGET_NOT_HALTED, efm32_info::family_data, LOG_ERROR, efm32_family_data::series, target::state, and TARGET_HALTED.
|
static |
Definition at line 1259 of file efm32.c.
References bank, efm32_get_page_lock(), efm32_read_lock_data(), ERROR_FLASH_OPER_UNSUPPORTED, ERROR_OK, ERROR_TARGET_NOT_HALTED, efm32_info::family_data, LOG_ERROR, efm32_family_data::series, target::state, and TARGET_HALTED.
|
static |
Definition at line 316 of file efm32.c.
References ARRAY_SIZE, bank, BIT, efm32_info::di_addr, EFM32_DI_PART_FAMILY, EFM32_DI_PARTINFO_PAGE_SZ_MASK, EFM32_DI_PARTINFO_PAGE_SZ_UD_MASK, efm32_families, ERROR_FAIL, ERROR_OK, efm32_info::family_data, FIELD_GET, efm32_dev_info_addr::flash_sz, efm32_info::flash_sz_kib, LOG_ERROR, efm32_info::msc_offset, efm32_dev_info_addr::page_size, efm32_family_data::page_size, efm32_info::page_size, efm32_info::page_size_ud, efm32_family_data::part_id, efm32_dev_info_addr::part_info, efm32_info::part_info, efm32_dev_info_addr::part_num, efm32_info::part_num, efm32_dev_info_addr::part_rev, efm32_info::part_rev, efm32_dev_info_addr::ram_sz, efm32_info::ram_sz_kib, efm32_family_data::series, target_read_u16(), target_read_u32(), and target_read_u8().
Referenced by efm32_get_info(), and efm32_probe().
|
static |
Definition at line 680 of file efm32.c.
References bank, EFM32_MSC_LOCK_BITS, ERROR_OK, LOG_ERROR, NULL, and target_read_u32().
Referenced by efm32_protect(), and efm32_protect_check().
|
static |
Definition at line 296 of file efm32.c.
References bank, efm32_info::family_data, efm32_family_data::msc_regbase, offset, and target_read_u32().
Referenced by efm32_erase_page(), efm32_probe(), efm32_set_reg_bits(), efm32_wait_status(), and efm32_write_word().
|
static |
Definition at line 833 of file efm32.c.
References bank, BIT, EFM32_FLASH_BASE_V1, EFM32_FLASH_BASE_V2, ERROR_FAIL, ERROR_OK, LOG_ERROR, and mask.
Referenced by efm32_protect().
|
static |
Definition at line 515 of file efm32.c.
References bank, efm32_read_reg_u32(), efm32_write_reg_u32(), and ERROR_OK.
Referenced by efm32_erase_page(), efm32_set_wren(), and efm32_write_word().
|
static |
Definition at line 533 of file efm32.c.
References bank, EFM32_MSC_WRITECTRL_WREN_MASK, efm32_set_reg_bits(), efm32_info::msc_offset, and efm32_msc_offset::off_writectrl.
Referenced by efm32_erase(), and efm32_priv_write().
|
static |
Definition at line 551 of file efm32.c.
References alive_sleep(), bank, efm32_read_reg_u32(), ERROR_FAIL, ERROR_OK, LOG_DEBUG, LOG_ERROR, efm32_info::msc_offset, efm32_msc_offset::off_status, status, and timeval_ms().
Referenced by efm32_erase_page(), and efm32_write_word().
|
static |
Definition at line 1134 of file efm32.c.
References bank, buffer, count, EFM32_MSC_LOCK_BITS, efm32_priv_write(), ERROR_FAIL, LOCKWORDS_SZ, LOG_ERROR, and offset.
|
static |
Definition at line 891 of file efm32.c.
References address, working_area::address, ARM_MODE_THREAD, ARMV7M_COMMON_MAGIC, bank, buf_get_u32(), buf_set_u32(), buffer_size, armv7m_algorithm::common_magic, count, destroy_reg_param(), EFM32_MSC_STATUS_INVADDR_MASK, EFM32_MSC_STATUS_LOCKED_MASK, ERROR_FLASH_OPERATION_FAILED, ERROR_TARGET_RESOURCE_NOT_AVAILABLE, efm32_info::family_data, efm32_msc_offset::flash_write_code, efm32_msc_offset::flash_write_code_len, init_reg_param(), LOG_ERROR, LOG_WARNING, MIN, efm32_info::msc_offset, efm32_family_data::msc_regbase, NULL, PARAM_IN_OUT, PARAM_OUT, source, target_alloc_working_area(), target_free_working_area(), target_get_working_area_avail(), target_run_flash_async_algorithm(), target_write_buffer(), and reg_param::value.
Referenced by efm32_priv_write().
|
static |
Definition at line 764 of file efm32.c.
References bank, efm32_erase_page(), EFM32_MSC_LOCK_BITS, EFM32_MSC_LOCK_BITS_EXTRA, efm32_priv_write(), efm32_write_only_lockbits(), ERROR_OK, LOCKWORDS_SZ, LOG_ERROR, NULL, efm32_info::page_size, and target_read_buffer().
Referenced by COMMAND_HANDLER(), and efm32_protect().
|
static |
Definition at line 756 of file efm32.c.
References bank, EFM32_MSC_LOCK_BITS, efm32_priv_write(), and LOCKWORDS_SZ.
Referenced by efm32_erase(), and efm32_write_lock_data().
|
static |
Definition at line 306 of file efm32.c.
References bank, efm32_info::family_data, efm32_family_data::msc_regbase, offset, and target_write_u32().
Referenced by efm32_erase_page(), efm32_msc_lock(), efm32_set_reg_bits(), and efm32_write_word().
|
static |
Definition at line 975 of file efm32.c.
References addr, bank, EFM32_FLASH_OPERATION_TIMEOUT, EFM32_MSC_STATUS_BUSY_MASK, EFM32_MSC_STATUS_INVADDR_MASK, EFM32_MSC_STATUS_LOCKED_MASK, EFM32_MSC_STATUS_WDATAREADY_MASK, EFM32_MSC_WRITECMD_LADDRIM_MASK, EFM32_MSC_WRITECMD_WRITEONCE_MASK, efm32_read_reg_u32(), efm32_set_reg_bits(), efm32_wait_status(), efm32_write_reg_u32(), ERROR_FAIL, ERROR_OK, keep_alive(), LOG_DEBUG, LOG_ERROR, efm32_info::msc_offset, efm32_msc_offset::off_addrb, efm32_msc_offset::off_status, efm32_msc_offset::off_wdata, efm32_msc_offset::off_writecmd, and status.
Referenced by efm32_priv_write().
| FLASH_BANK_COMMAND_HANDLER | ( | efm32_flash_bank_command | ) |
Definition at line 413 of file efm32.c.
References bank, CMD_ARGC, efm32_flash, efm32_get_bank_index(), ERROR_COMMAND_SYNTAX_ERROR, ERROR_FAIL, ERROR_OK, flash_bank_list(), LOCKWORDS_SZ, LOG_ERROR, flash_bank::next, and NULL.
|
static |
|
static |
|
static |
|
static |
Definition at line 183 of file efm32.c.
Referenced by efm32_read_info().
| const struct flash_driver efm32_flash |
Definition at line 183 of file efm32.c.
Referenced by FLASH_BANK_COMMAND_HANDLER().
|
static |
|
static |
|
static |