This is an automated email from Gerrit.

chrysn (chr...@fsfe.org) just uploaded a new patch set to Gerrit, which you can 
find at http://openocd.zylin.com/3736

-- gerrit

commit 78f11277660c5ad66c29a70c6cbbaae5e0e8f2c7
Author: chrysn <chr...@fsfe.org>
Date:   Tue Sep 13 23:00:54 2016 +0200

    [do not merge] Support efr32 instead of efm32
    
    This breaks EFM32/EZR32 support due to changed msc base address, but
    demonstrates how little difference there is between the series.
    
    Change-Id: Id2c38995fcd04156c35dc6bf639829cc099fb02b
    Signed-off-by: chrysn <chr...@fsfe.org>

diff --git a/src/flash/nor/efm32.c b/src/flash/nor/efm32.c
index 0b33829..8d64002 100644
--- a/src/flash/nor/efm32.c
+++ b/src/flash/nor/efm32.c
@@ -48,6 +48,7 @@
 #define EFM_FAMILY_ID_HAPPY_GECKO      77
 #define EZR_FAMILY_ID_WONDER_GECKO             120
 #define EZR_FAMILY_ID_LEOPARD_GECKO            121
+#define EFR_FAMILY_ID_MIGHTY_GECKO      16
 
 #define EFM32_FLASH_ERASE_TMO           100
 #define EFM32_FLASH_WDATAREADY_TMO      100
@@ -70,7 +71,7 @@
 #define EFM32_MSC_DI_PART_FAMILY        (EFM32_MSC_DEV_INFO+0x1fe)
 #define EFM32_MSC_DI_PROD_REV           (EFM32_MSC_DEV_INFO+0x1ff)
 
-#define EFM32_MSC_REGBASE               0x400c0000
+#define EFM32_MSC_REGBASE               0x400e0000
 #define EFM32_MSC_WRITECTRL             (EFM32_MSC_REGBASE+0x008)
 #define EFM32_MSC_WRITECTRL_WREN_MASK   0x1
 #define EFM32_MSC_WRITECMD              (EFM32_MSC_REGBASE+0x00c)
@@ -86,7 +87,7 @@
 #define EFM32_MSC_STATUS_WDATAREADY_MASK 0x8
 #define EFM32_MSC_STATUS_WORDTIMEOUT_MASK 0x10
 #define EFM32_MSC_STATUS_ERASEABORTED_MASK 0x20
-#define EFM32_MSC_LOCK                  (EFM32_MSC_REGBASE+0x03c)
+#define EFM32_MSC_LOCK                  (EFM32_MSC_REGBASE+0x040)
 #define EFM32_MSC_LOCK_LOCKKEY          0x1b71
 
 struct efm32x_flash_bank {
@@ -218,6 +219,11 @@ static int efm32x_read_info(struct flash_bank *bank,
                        LOG_ERROR("Invalid page size %u", 
efm32_info->page_size);
                        return ERROR_FAIL;
                }
+       } else if (EFR_FAMILY_ID_MIGHTY_GECKO == efm32_info->part_family) {
+               efm32_info->page_size = 2048;
+               /* always 2048 according to efr32 reference manual ("EFR32xG1 
Wireless
+                * Gecko Reference Manual") rev 0.6 p28. alternatively, we
+                * could inspect MEMINFO bits FLASH_PAGE_SIZE. */
        } else {
                LOG_ERROR("Unknown MCU family %d", efm32_info->part_family);
                return ERROR_FAIL;

-- 

------------------------------------------------------------------------------
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to