flash Kinetis: Add support for newer KW series
Add support for flashing newer members of the NXP Kinetis KW family Supported devices: - KW20Z - KW30Z - KW40Z - KW21Z - KW31Z - KW41Z The earlier KW2xD and KW01Z devices are already supported by the code for the older K-series. Verified working on the FRDM-KW41Z development board. Tested flashing both via GDB `load` and directly via OpenOCD flash write commands. Change-Id: I73eae477127a8b54a33005b3b526b5439450a808 Signed-off-by: Joakim Nohlgård <joakim.nohlgard@eistec.se> Reviewed-on: http://openocd.zylin.com/4104 Tested-by: jenkins Reviewed-by: Johann Fischer <johann_fischer@posteo.de> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
parent
8dcb91fb83
commit
2c8602ed9f
|
@ -2210,6 +2210,45 @@ static int kinetis_probe_chip(struct kinetis_chip *k_chip)
|
||||||
familyid, subfamid, cpu_mhz / 10);
|
familyid, subfamid, cpu_mhz / 10);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case KINETIS_SDID_SERIESID_KW:
|
||||||
|
/* Newer KW-series (all KW series except KW2xD, KW01Z) */
|
||||||
|
cpu_mhz = 48;
|
||||||
|
switch (k_chip->sim_sdid & (KINETIS_SDID_FAMILYID_MASK | KINETIS_SDID_SUBFAMID_MASK)) {
|
||||||
|
case KINETIS_SDID_FAMILYID_K4X | KINETIS_SDID_SUBFAMID_KX0:
|
||||||
|
/* KW40Z */
|
||||||
|
case KINETIS_SDID_FAMILYID_K3X | KINETIS_SDID_SUBFAMID_KX0:
|
||||||
|
/* KW30Z */
|
||||||
|
case KINETIS_SDID_FAMILYID_K2X | KINETIS_SDID_SUBFAMID_KX0:
|
||||||
|
/* KW20Z */
|
||||||
|
/* FTFA, 1kB sectors */
|
||||||
|
k_chip->pflash_sector_size = 1<<10;
|
||||||
|
k_chip->nvm_sector_size = 1<<10;
|
||||||
|
/* autodetect 1 or 2 blocks */
|
||||||
|
k_chip->flash_support = FS_PROGRAM_LONGWORD;
|
||||||
|
k_chip->cache_type = KINETIS_CACHE_L;
|
||||||
|
k_chip->watchdog_type = KINETIS_WDOG_COP;
|
||||||
|
break;
|
||||||
|
case KINETIS_SDID_FAMILYID_K4X | KINETIS_SDID_SUBFAMID_KX1:
|
||||||
|
/* KW41Z */
|
||||||
|
case KINETIS_SDID_FAMILYID_K3X | KINETIS_SDID_SUBFAMID_KX1:
|
||||||
|
/* KW31Z */
|
||||||
|
case KINETIS_SDID_FAMILYID_K2X | KINETIS_SDID_SUBFAMID_KX1:
|
||||||
|
/* KW21Z */
|
||||||
|
/* FTFA, 2kB sectors */
|
||||||
|
k_chip->pflash_sector_size = 2<<10;
|
||||||
|
k_chip->nvm_sector_size = 2<<10;
|
||||||
|
/* autodetect 1 or 2 blocks */
|
||||||
|
k_chip->flash_support = FS_PROGRAM_LONGWORD;
|
||||||
|
k_chip->cache_type = KINETIS_CACHE_L;
|
||||||
|
k_chip->watchdog_type = KINETIS_WDOG_COP;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
LOG_ERROR("Unsupported KW FAMILYID SUBFAMID");
|
||||||
|
}
|
||||||
|
snprintf(name, sizeof(name), "MKW%u%uZ%%s%u",
|
||||||
|
familyid, subfamid, cpu_mhz / 10);
|
||||||
|
break;
|
||||||
|
|
||||||
case KINETIS_SDID_SERIESID_KV:
|
case KINETIS_SDID_SERIESID_KV:
|
||||||
/* KV-series */
|
/* KV-series */
|
||||||
k_chip->watchdog_type = KINETIS_WDOG_K;
|
k_chip->watchdog_type = KINETIS_WDOG_K;
|
||||||
|
|
Loading…
Reference in New Issue