FreeCalypso > hg > freecalypso-tools
diff loadtools/flashid.c @ 523:9a478d33b3ca
fc-loadtool: added Samsung K5L33xx_A flash support for GTM900
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 09 Jun 2019 21:51:27 +0000 |
parents | 0212edcec4d2 |
children | 3886a8a40809 |
line wrap: on
line diff
--- a/loadtools/flashid.c Thu Jun 06 06:56:32 2019 +0000 +++ b/loadtools/flashid.c Sun Jun 09 21:51:27 2019 +0000 @@ -17,6 +17,7 @@ extern struct flash_device flashdev_PL129J; extern struct flash_device flashdev_PL129N; extern struct flash_device flashdev_K5A32xx_T; +extern struct flash_device flashdev_K5L33xx_A; extern int flash_global_config; extern struct flash_bank_info flash_bank_info[2]; @@ -114,6 +115,24 @@ return(-1); } +static +samsung_extended_id(bi) + struct flash_bank_info *bi; +{ + uint16_t ext1, ext2; + + printf("Samsung extended ID device, reading extended ID\n"); + if (do_r16(bi->base_addr + 0x1C, &ext1) < 0) + return(-1); + if (do_r16(bi->base_addr + 0x1E, &ext2) < 0) + return(-1); + printf("Extended ID: %04X %04X\n", ext1, ext2); + if (ext1 == 0x2503 && ext2 == 0x2501) + return try_device(bi, &flashdev_K5L33xx_A); + fprintf(stderr, "Error: unknown device ID\n"); + return(-1); +} + static struct idmap { uint16_t manuf_id; uint16_t dev_id; @@ -135,6 +154,7 @@ {0x0089, 0x88CD, try_device, &flashdev_28F640C3B}, /* Samsung flash */ {0x00EC, 0x22A0, try_device, &flashdev_K5A32xx_T}, + {0x00EC, 0x257E, samsung_extended_id, 0}, /* table search terminator */ {0, 0, 0, 0} };