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>macbuild
parent
8dcb91fb83
commit
2c8602ed9f
|
@ -2210,6 +2210,45 @@ static int kinetis_probe_chip(struct kinetis_chip *k_chip)
|
|||
familyid, subfamid, cpu_mhz / 10);
|
||||
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:
|
||||
/* KV-series */
|
||||
k_chip->watchdog_type = KINETIS_WDOG_K;
|
||||
|
|
Loading…
Reference in New Issue