This is an automated email from Gerrit. "Doug Brunner <[email protected]>" just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/6665
-- gerrit commit 0673aab8796d30cfbd73431af9152a37db8f1fd0 Author: Doug Brunner <[email protected]> Date: Mon Oct 25 10:15:07 2021 -0700 flash/nor/efr32: fixed lockbits and user data Changed flash driver so that nonzero base addresses and sizes for flash blocks defined in tcl are respected. Added user data and lockbits pages to the tcl configuration. This addresses ticket #185. Signed-off-by: Doug Brunner <[email protected]> Change-Id: Ifb22e6149939d893f386706e99b928691ec1d41b diff --git a/src/flash/nor/efm32.c b/src/flash/nor/efm32.c index ab0186d7d..f7154aeff 100644 --- a/src/flash/nor/efm32.c +++ b/src/flash/nor/efm32.c @@ -944,7 +944,6 @@ static int efm32x_probe(struct flash_bank *bank) struct efm32x_flash_bank *efm32x_info = bank->driver_priv; struct efm32_info efm32_mcu_info; int ret; - uint32_t base_address = 0x00000000; efm32x_info->probed = false; memset(efm32x_info->lb_page, 0xff, LOCKBITS_PAGE_SZ); @@ -963,12 +962,20 @@ static int efm32x_probe(struct flash_bank *bank) int num_pages = efm32_mcu_info.flash_sz_kib * 1024 / efm32_mcu_info.page_size; + if (bank->size > 0) { + if (bank->size % efm32_mcu_info.page_size != 0) { + LOG_ERROR("Flash banks must be a multiple of %d bytes", + efm32_mcu_info.page_size); + return ERROR_FAIL; + } + num_pages = bank->size / efm32_mcu_info.page_size; + } + assert(num_pages > 0); free(bank->sectors); bank->sectors = NULL; - bank->base = base_address; bank->size = (num_pages * efm32_mcu_info.page_size); bank->num_sectors = num_pages; diff --git a/tcl/target/efm32.cfg b/tcl/target/efm32.cfg index c789efc72..e43bde120 100644 --- a/tcl/target/efm32.cfg +++ b/tcl/target/efm32.cfg @@ -43,6 +43,8 @@ $_TARGETNAME configure -work-area-phys 0x10000000 -work-area-size $_WORKAREASIZE set _FLASHNAME $_CHIPNAME.flash flash bank $_FLASHNAME efm32 0 0 0 0 $_TARGETNAME +flash bank userdata.flash efm32 0x0FE00000 2048 0 0 $_TARGETNAME +flash bank lockbits.flash efm32 0x0FE04000 2048 0 0 $_TARGETNAME if {![using_hla]} { # if srst is not fitted use SYSRESETREQ to --
