This is an automated email from Gerrit. Roman Dmitrienko (m...@iamroman.org) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/1116
-- gerrit commit d3d670ad8b4193697ebc0807c88fa8ecba79f927 Author: Roman D <m...@iamroman.org> Date: Fri Jan 18 10:53:43 2013 +0400 flash: EFM32 GG/LG page size detection fix Fixed flash page size detection according to EFM32 GG/LG errata. MEM_INFO_PAGE_SIZE register containts invalid value in devices with revision number lower than 18 and should not be used. Change-Id: Idb2832246efcbbec2fd98a5c458f72a36df386fb Signed-off-by: Roman D <m...@iamroman.org> diff --git a/src/flash/nor/efm32.c b/src/flash/nor/efm32.c index 5756649..37cb79b 100644 --- a/src/flash/nor/efm32.c +++ b/src/flash/nor/efm32.c @@ -169,14 +169,22 @@ static int efm32x_read_info(struct flash_bank *bank, efm32_info->page_size = 512; else if (EFM_FAMILY_ID_GIANT_GECKO == efm32_info->part_family || EFM_FAMILY_ID_LEOPARD_GECKO == efm32_info->part_family) { - uint8_t pg_size = 0; - - ret = target_read_u8(bank->target, EFM32_MSC_DI_PAGE_SIZE, - &pg_size); - if (ERROR_OK != ret) - return ret; - - efm32_info->page_size = (1 << ((pg_size+10) & 0xff)); + if (efm32_info->prod_rev >= 18) { + uint8_t pg_size = 0; + ret = target_read_u8(bank->target, EFM32_MSC_DI_PAGE_SIZE, + &pg_size); + if (ERROR_OK != ret) + return ret; + + efm32_info->page_size = (1 << ((pg_size+10) & 0xff)); + } else { + /* EFM32 GG/LG errata: MEM_INFO_PAGE_SIZE is invalid + for MCUs with PROD_REV < 18 */ + if (efm32_info->flash_sz_kib < 512) + efm32_info->page_size = 2048; + else + efm32_info->page_size = 4096; + } if ((2048 != efm32_info->page_size) && (4096 != efm32_info->page_size)) { -- ------------------------------------------------------------------------------ Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122812 _______________________________________________ OpenOCD-devel mailing list OpenOCD-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openocd-devel