Revert "Update all programmer init functions to register bus programmers into common list"
This reverts commit 63b92f99a9d43dd637bcce564cd372be3c81c5d8.
BUG=chromium:635405
Change-Id: I94ae18b547d2aedd74fc7103a38dcbfd2f57be66
Reviewed-on: https://chromium-review.googlesource.com/367504
Commit-Ready: David Hendricks <dhendrix@chromium.org>
Tested-by: David Hendricks <dhendrix@chromium.org>
Reviewed-by: David Hendricks <dhendrix@chromium.org>
diff --git a/programmer.c b/programmer.c
index 71ef5f5..a1b8ccc 100644
--- a/programmer.c
+++ b/programmer.c
@@ -21,6 +21,19 @@
#include "flash.h"
#include "programmer.h"
+static const struct par_programmer par_programmer_none = {
+ .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,
+};
+
+const struct par_programmer *par_programmer = &par_programmer_none;
+
/* No-op shutdown() for programmers which don't need special handling */
int noop_shutdown(void)
{
@@ -39,7 +52,13 @@
{
}
-/* No-op chip_writeb() for parallel style drivers not supporting writes */
+/* No-op chip_writeb() for drivers not supporting addr/data pair accesses */
+uint8_t noop_chip_readb(const struct flashctx *flash, const chipaddr addr)
+{
+ return 0xff;
+}
+
+/* No-op chip_writeb() for drivers not supporting addr/data pair accesses */
void noop_chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr)
{
}
@@ -92,57 +111,15 @@
return;
}
-int register_par_programmer(const struct par_programmer *pgm,
- const enum chipbustype buses)
+void register_par_programmer(const struct par_programmer *pgm, const enum chipbustype buses)
{
- struct registered_programmer rpgm;
- if (!pgm->chip_writeb || !pgm->chip_writew || !pgm->chip_writel ||
- !pgm->chip_writen || !pgm->chip_readb || !pgm->chip_readw ||
- !pgm->chip_readl || !pgm->chip_readn) {
- msg_perr("%s called with incomplete programmer definition. "
- "Please report a bug at flashrom@flashrom.org\n",
- __func__);
- return ERROR_FLASHROM_BUG;
- }
-
- rpgm.buses_supported = buses;
- rpgm.par = *pgm;
- return register_programmer(&rpgm);
-}
-
-/* The limit of 4 is totally arbitrary. */
-#define PROGRAMMERS_MAX 4
-struct registered_programmer registered_programmers[PROGRAMMERS_MAX];
-int registered_programmer_count = 0;
-
-/* This function copies the struct registered_programmer parameter. */
-int register_programmer(struct registered_programmer *pgm)
-{
- if (registered_programmer_count >= PROGRAMMERS_MAX) {
- msg_perr("Tried to register more than %i programmer "
- "interfaces.\n", PROGRAMMERS_MAX);
- return ERROR_FLASHROM_LIMIT;
- }
- registered_programmers[registered_programmer_count] = *pgm;
- registered_programmer_count++;
-
- return 0;
-}
-
-enum chipbustype get_buses_supported(void)
-{
- int i;
- enum chipbustype ret = BUS_NONE;
-
- for (i = 0; i < registered_programmer_count; i++)
- ret |= registered_programmers[i].buses_supported;
-
- return ret;
+ par_programmer = pgm;
+ buses_supported |= buses;
}
struct programmer_alias aliases[] = {
- { "ec", ALIAS_EC, PROGRAMMER_INTERNAL },
- { "host", ALIAS_HOST, PROGRAMMER_INTERNAL },
+ { "ec", ALIAS_EC },
+ { "host", ALIAS_HOST },
{ NULL },
};
struct programmer_alias *alias;