summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/amd/mandolin/Kconfig18
-rw-r--r--src/mainboard/amd/mandolin/bootblock.c9
2 files changed, 25 insertions, 2 deletions
diff --git a/src/mainboard/amd/mandolin/Kconfig b/src/mainboard/amd/mandolin/Kconfig
index dde7ac8bedb2..b779630d5678 100644
--- a/src/mainboard/amd/mandolin/Kconfig
+++ b/src/mainboard/amd/mandolin/Kconfig
@@ -29,6 +29,24 @@ config AMD_LPC_DEBUG_CARD
PICASSO_CONSOLE_UART which selects the SoC's integrated memory-mapped
UART for coreboot console output.
+choice
+ prompt "SMSC/Microchip 1036 SuperIO config address"
+ depends on SUPERIO_SMSC_SIO1036
+ default SMSC_SIO1036_BASE_164E
+
+config SMSC_SIO1036_BASE_4E
+ bool "0x4e/0x4d base address"
+
+config SMSC_SIO1036_BASE_164E
+ bool "0x164e/0x164d base address"
+
+endchoice
+
+config SUPERIO_ADDR_BASE
+ hex
+ default 0x4e if SMSC_SIO1036_BASE_4E
+ default 0x164e if SMSC_SIO1036_BASE_164E
+
config CBFS_SIZE
hex
default 0x7cf000 if BOARD_AMD_MANDOLIN # Maximum size for the Mandolin FMAP
diff --git a/src/mainboard/amd/mandolin/bootblock.c b/src/mainboard/amd/mandolin/bootblock.c
index 06da379d938e..94a132938fc6 100644
--- a/src/mainboard/amd/mandolin/bootblock.c
+++ b/src/mainboard/amd/mandolin/bootblock.c
@@ -5,14 +5,19 @@
#include <superio/smsc/sio1036/sio1036.h>
#include "gpio.h"
-#define SERIAL_DEV PNP_DEV(0x4e, SIO1036_SP1)
+#define SERIAL_DEV PNP_DEV(CONFIG_SUPERIO_ADDR_BASE, SIO1036_SP1)
void bootblock_mainboard_early_init(void)
{
mainboard_program_early_gpios();
if (CONFIG(SUPERIO_SMSC_SIO1036)) {
- lpc_enable_sio_decode(LPC_SELECT_SIO_4E4F);
+ if (CONFIG_SUPERIO_ADDR_BASE == 0x4e) {
+ lpc_enable_sio_decode(LPC_SELECT_SIO_4E4F);
+ } else {
+ // set up 16 byte wide I/O range window for the super IO
+ lpc_set_wideio_range(CONFIG_SUPERIO_ADDR_BASE & ~0xF, 16);
+ }
lpc_enable_decode(DECODE_ENABLE_SERIAL_PORT0 << CONFIG_UART_FOR_CONSOLE);
sio1036_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE);
}