summaryrefslogtreecommitdiffstats
path: root/flashrom.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2010-01-19 11:15:48 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2010-01-19 11:15:48 +0000
commitd38fac8c261e4d7e3857453dfb612b9094f63e95 (patch)
treef0c9704289953cb4c119ec42dfdac2150c322111 /flashrom.c
parent415afcffc17492762d766939953ec2245b8582b0 (diff)
downloadast2050-flashrom-d38fac8c261e4d7e3857453dfb612b9094f63e95.zip
ast2050-flashrom-d38fac8c261e4d7e3857453dfb612b9094f63e95.tar.gz
Dediprog SF100 support
Reverse engineered from USB logs. I never touched that programmer nor did I ever see the associated software. Disabled by default until it is complete. The driver needs to be hooked up to the SPI core before it will do anything besides init and diagnostics. I successfully reverse engineered all commands, but some are still somewhat magic. Logs from "flashrom -p dediprog -V" are appreciated. Probe and read should work, erase/write is expected to explode. The programmer will set voltage to 0 on exit. Thanks a lot to Stefan Reinauer and Patrick Georgi for providing USB logs and for testing the result. Corresponding to flashrom svn r870. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stefan Reinauer <stepan@coresystems.de>
Diffstat (limited to 'flashrom.c')
-rw-r--r--flashrom.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/flashrom.c b/flashrom.c
index bba7a3a..c3e32a1 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -44,7 +44,7 @@ enum programmer programmer = PROGRAMMER_DUMMY;
* if more than one of them is selected. If only one is selected, it is clear
* that the user wants that one to become the default.
*/
-#if NIC3COM_SUPPORT+GFXNVIDIA_SUPPORT+DRKAISER_SUPPORT+SATASII_SUPPORT+FT2232_SPI_SUPPORT+SERPROG_SUPPORT+BUSPIRATE_SPI_SUPPORT > 1
+#if NIC3COM_SUPPORT+GFXNVIDIA_SUPPORT+DRKAISER_SUPPORT+SATASII_SUPPORT+FT2232_SPI_SUPPORT+SERPROG_SUPPORT+BUSPIRATE_SPI_SUPPORT+DEDIPROG_SUPPORT > 1
#error Please enable either CONFIG_DUMMY or CONFIG_INTERNAL or disable support for all external programmers except one.
#endif
enum programmer programmer =
@@ -69,6 +69,9 @@ enum programmer programmer =
#if BUSPIRATE_SPI_SUPPORT == 1
PROGRAMMER_BUSPIRATESPI
#endif
+#if DEDIPROG_SUPPORT == 1
+ PROGRAMMER_DEDIPROG
+#endif
;
#endif
@@ -283,6 +286,25 @@ const struct programmer_entry programmer_table[] = {
},
#endif
+#if DEDIPROG_SUPPORT == 1
+ {
+ .name = "dediprog",
+ .init = dediprog_init,
+ .shutdown = dediprog_shutdown,
+ .map_flash_region = fallback_map,
+ .unmap_flash_region = fallback_unmap,
+ .chip_readb = noop_chip_readb,
+ .chip_readw = fallback_chip_readw,
+ .chip_readl = fallback_chip_readl,
+ .chip_readn = fallback_chip_readn,
+ .chip_writeb = noop_chip_writeb,
+ .chip_writew = fallback_chip_writew,
+ .chip_writel = fallback_chip_writel,
+ .chip_writen = fallback_chip_writen,
+ .delay = internal_delay,
+ },
+#endif
+
{}, /* This entry corresponds to PROGRAMMER_INVALID. */
};
OpenPOWER on IntegriCloud