From e85df763b78c179543672902949e871e42e705be Mon Sep 17 00:00:00 2001 From: Richard Meadows <962920+richardeoin@users.noreply.github.com> Date: Thu, 17 Jan 2019 08:54:13 +0000 Subject: [PATCH] [efm32] add new devices PG12B, JG12B, GG11B, TG11B, GG12B Rework MSC layout check --- src/target/efm32.c | 8 +++++++- src/target/flashstub/efm32.c | 2 +- src/target/flashstub/efm32.stub | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/target/efm32.c b/src/target/efm32.c index 6bd114e..b9de8f2 100644 --- a/src/target/efm32.c +++ b/src/target/efm32.c @@ -75,7 +75,7 @@ const struct command_s efm32_cmd_list[] = { #define EFM32_MSC_ADDRB(msc) (msc+0x010) #define EFM32_MSC_WDATA(msc) (msc+0x018) #define EFM32_MSC_STATUS(msc) (msc+0x01c) -#define EFM32_MSC_LOCK(msc) (msc+(msc == 0x400e0000?0x40:0x3c)) +#define EFM32_MSC_LOCK(msc) (msc+(msc == 0x400c0000?0x3c:0x40)) #define EFM32_MSC_MASSLOCK(msc) (msc+0x054) #define EFM32_MSC_LOCK_LOCKKEY 0x1b71 @@ -278,6 +278,12 @@ efm32_device_t const efm32_devices[] = { /* Second gen micros */ {81, "EFM32PG1B", 2048, 0x400e0000, false, 2048, 10240, "Pearl Gecko"}, {83, "EFM32JG1B", 2048, 0x400e0000, false, 2048, 10240, "Jade Gecko"}, + {85, "EFM32PG12B", 2048, 0x400e0000, false, 2048, 32768,"Pearl Gecko 12"}, + {87, "EFM32JG12B", 2048, 0x400e0000, false, 2048, 32768, "Jade Gecko 12"}, + /* Second (2.5) gen micros, with re-located MSC */ + {100, "EFM32GG11B", 4096, 0x40000000, false, 4096, 32768, "Giant Gecko 11"}, + {103, "EFM32TG11B", 2048, 0x40000000, false, 2048, 18432, "Tiny Gecko 11"}, + {106, "EFM32GG12B", 2048, 0x40000000, false, 2048, 32768, "Giant Gecko 12"}, /* Second gen devices micro + radio */ {16, "EFR32MG1P", 2048, 0x400e0000, true, 2048, 10240, "Mighty Gecko"}, {17, "EFR32MG1B", 2048, 0x400e0000, true, 2048, 10240, "Mighty Gecko"}, diff --git a/src/target/flashstub/efm32.c b/src/target/flashstub/efm32.c index b38aded..2b9aa70 100644 --- a/src/target/flashstub/efm32.c +++ b/src/target/flashstub/efm32.c @@ -24,7 +24,7 @@ #define EFM32_MSC_ADDRB(msc) *((volatile uint32_t *)(msc+0x010)) #define EFM32_MSC_WDATA(msc) *((volatile uint32_t *)(msc+0x018)) #define EFM32_MSC_STATUS(msc) *((volatile uint32_t *)(msc+0x01c)) -#define EFM32_MSC_LOCK(msc) *((volatile uint32_t *)(msc+(msc == 0x400e0000?0x40:0x3c))) +#define EFM32_MSC_LOCK(msc) *((volatile uint32_t *)(msc+(msc == 0x400c0000?0x3c:0x40))) #define EFM32_MSC_MASSLOCK(msc) *((volatile uint32_t *)(msc+0x054)) #define EFM32_MSC_LOCK_LOCKKEY 0x1b71 diff --git a/src/target/flashstub/efm32.stub b/src/target/flashstub/efm32.stub index 80418f1..a8573ba 100644 --- a/src/target/flashstub/efm32.stub +++ b/src/target/flashstub/efm32.stub @@ -1 +1 @@ -0x4D10, 0x2440, 0x42AB, 0xD000, 0x3C04, 0x4D0F, 0x18E4, 0x6025, 0x2401, 0x609C, 0x2400, 0x0892, 0x0092, 0x4294, 0xD011, 0x1905, 0x611D, 0x2501, 0x60DD, 0x1C1E, 0x2508, 0x69DF, 0x361C, 0x422F, 0xD0F9, 0x590F, 0x619F, 0x60DD, 0x6835, 0x07ED, 0xD4FC, 0x3404, 0xE7EB, 0xBE00, 0x0000, 0x400E, 0x1B71, 0x0000, \ No newline at end of file +0x4D11, 0x243C, 0x42AB, 0xD000, 0x3404, 0x4D10, 0x18E4, 0x6025, 0x2401, 0x2500, 0x2608, 0x0892, 0x609C, 0x0092, 0x4295, 0xD100, 0xBE00, 0x1947, 0x611F, 0x60DC, 0x271C, 0x46BC, 0x69DF, 0x449C, 0x4237, 0xD0F9, 0x594F, 0x619F, 0x60DE, 0x4667, 0x683F, 0x4227, 0xD1FB, 0x3504, 0xE7EA, 0x46C0, 0x0000, 0x400C, 0x1B71, 0x0000, \ No newline at end of file