summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Lin <johnny_lin@wiwynn.com>2019-08-10 20:16:17 +0800
committerPatrick Rudolph <siro@das-labor.org>2019-08-15 06:45:08 +0000
commit1bc6bf115226baef94122955167902e4e1251a92 (patch)
tree43b7eec471924184c4bc8fe5f55806c27bb6ca9c
parent621142aa60e6d436800621c563f37179b319508b (diff)
downloadcoreboot-1bc6bf115226baef94122955167902e4e1251a92.tar.xz
drivers/ipmi: make IPMI KCS status and command register spacing configurable
The default is 1 (byte) spacing. Tested on Mono Lake with 4 (32-bit) spacing Change-Id: I47412c32e6db8f58b4fde8150adcbce349ca18a7 Signed-off-by: Johnny Lin <johnny_lin@wiwynn.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/34835 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org>
-rw-r--r--src/drivers/ipmi/Kconfig7
-rw-r--r--src/drivers/ipmi/ipmi_kcs.c4
2 files changed, 9 insertions, 2 deletions
diff --git a/src/drivers/ipmi/Kconfig b/src/drivers/ipmi/Kconfig
index 5851438714..0f7152d558 100644
--- a/src/drivers/ipmi/Kconfig
+++ b/src/drivers/ipmi/Kconfig
@@ -1,3 +1,10 @@
config IPMI_KCS
bool
default n
+
+config IPMI_KCS_REGISTER_SPACING
+ int
+ default 1
+ depends on IPMI_KCS
+ help
+ KCS status and command register IO port address spacing
diff --git a/src/drivers/ipmi/ipmi_kcs.c b/src/drivers/ipmi/ipmi_kcs.c
index 397a800df3..4d1e3e105b 100644
--- a/src/drivers/ipmi/ipmi_kcs.c
+++ b/src/drivers/ipmi/ipmi_kcs.c
@@ -36,9 +36,9 @@
#define IPMI_KCS_STATE_WRITE 0x02
#define IPMI_KCS_STATE_ERROR 0x03
-#define IPMI_CMD(_x) ((_x) + 1)
+#define IPMI_CMD(_x) ((_x) + CONFIG_IPMI_KCS_REGISTER_SPACING)
#define IPMI_DATA(_x) ((_x))
-#define IPMI_STAT(_x) ((_x) + 1)
+#define IPMI_STAT(_x) ((_x) + CONFIG_IPMI_KCS_REGISTER_SPACING)
static unsigned char ipmi_kcs_status(int port)
{