Attention is currently required from: Thomas Heijligen.
Edward O'Callaghan has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/71577 )
Change subject: internal.c: Move sio register to own object ......................................................................
internal.c: Move sio register to own object
While super i/o is related to the internal programmer it isn't actually _the_ internal programmer. Move register logic to its own object consistent with other programmer types.
Change-Id: I9a4c3e12bce5d22492c8d1b8f4a3f49d736dcf31 Signed-off-by: Edward O'Callaghan quasisec@google.com --- M Makefile M internal.c M meson.build A superio.c 4 files changed, 59 insertions(+), 29 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/77/71577/1
diff --git a/Makefile b/Makefile index 425b58c..cf3150b 100644 --- a/Makefile +++ b/Makefile @@ -583,7 +583,7 @@ ifeq ($(CONFIG_INTERNAL) $(CONFIG_INTERNAL_X86), yes yes) FEATURE_FLAGS += -D'CONFIG_INTERNAL=1' PROGRAMMER_OBJS += processor_enable.o chipset_enable.o board_enable.o cbtable.o \ - internal.o it87spi.o sb600spi.o amd_imc.o wbsio_spi.o mcp6x_spi.o \ + internal.o it87spi.o sb600spi.o superio.o amd_imc.o wbsio_spi.o mcp6x_spi.o \ ichspi.o dmi.o known_boards.o endif else diff --git a/internal.c b/internal.c index 9b80f37..38a8405 100644 --- a/internal.c +++ b/internal.c @@ -35,34 +35,6 @@
enum chipbustype internal_buses_supported = BUS_NONE;
-#if defined(__i386__) || defined(__x86_64__) -void probe_superio(void) -{ - probe_superio_winbond(); - /* ITE probe causes SMSC LPC47N217 to power off the serial UART. - * Always probe for SMSC first, and if a SMSC Super I/O is detected - * at a given I/O port, do _not_ probe that port with the ITE probe. - * This means SMSC probing must be done before ITE probing. - */ - //probe_superio_smsc(); - probe_superio_ite(); -} - -int superio_count = 0; -#define SUPERIO_MAX_COUNT 3 - -struct superio superios[SUPERIO_MAX_COUNT]; - -int register_superio(struct superio s) -{ - if (superio_count == SUPERIO_MAX_COUNT) - return 1; - superios[superio_count++] = s; - return 0; -} - -#endif - static void internal_chip_writeb(const struct flashctx *flash, uint8_t val, chipaddr addr) { diff --git a/meson.build b/meson.build index 27a284e..1cafdcb 100644 --- a/meson.build +++ b/meson.build @@ -247,6 +247,7 @@ 'internal.c', 'it87spi.c', 'sb600spi.c', + 'superio.c', 'amd_imc.c', 'wbsio_spi.c', 'mcp6x_spi.c', diff --git a/superio.c b/superio.c new file mode 100644 index 0000000..3121578 --- /dev/null +++ b/superio.c @@ -0,0 +1,42 @@ +/* + * This file is part of the flashrom project. + * + * Copyright (C) 2009 Carl-Daniel Hailfinger + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "programmer.h" + +int superio_count = 0; +#define SUPERIO_MAX_COUNT 3 + +struct superio superios[SUPERIO_MAX_COUNT]; + +int register_superio(struct superio s) +{ + if (superio_count == SUPERIO_MAX_COUNT) + return 1; + superios[superio_count++] = s; + return 0; +} + +void probe_superio(void) +{ + probe_superio_winbond(); + /* ITE probe causes SMSC LPC47N217 to power off the serial UART. + * Always probe for SMSC first, and if a SMSC Super I/O is detected + * at a given I/O port, do _not_ probe that port with the ITE probe. + * This means SMSC probing must be done before ITE probing. + */ + //probe_superio_smsc(); + probe_superio_ite(); +}