1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-26 22:52:34 +02:00

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>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/71577
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Edward O'Callaghan 2023-01-01 14:33:51 +11:00 committed by Edward O'Callaghan
parent ec6eaff2f8
commit 195948a467
4 changed files with 44 additions and 29 deletions

View File

@ -584,7 +584,7 @@ ifeq ($(ARCH), x86)
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
ACTIVE_PROGRAMMERS += internal
endif

View File

@ -34,34 +34,6 @@ bool force_boardmismatch = false;
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)
{

View File

@ -247,6 +247,7 @@ programmer = {
'internal.c',
'it87spi.c',
'sb600spi.c',
'superio.c',
'amd_imc.c',
'wbsio_spi.c',
'mcp6x_spi.c',

42
superio.c Normal file
View File

@ -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();
}