diff --git a/src/southbridge/amd/sb700/early_setup.c b/src/southbridge/amd/sb700/early_setup.c index ffdd34b017..26ee8366ce 100644 --- a/src/southbridge/amd/sb700/early_setup.c +++ b/src/southbridge/amd/sb700/early_setup.c @@ -399,8 +399,15 @@ static void sb700_devices_por_init(void) if (inb(SMBUS_IO_BASE) == 0xff) printk(BIOS_INFO, "%s: Primary SMBUS controller I/O not found\n", __func__); - if (inb(SMBUS_AUX_IO_BASE) == 0xff) + if (inb(SMBUS_AUX_IO_BASE) == 0xff) { printk(BIOS_INFO, "%s: Secondary SMBUS controller I/O not found\n", __func__); + } + else { + if (IS_ENABLED(CONFIG_SOUTHBRIDGE_AMD_SUBTYPE_SP5100)) { + /* Disable legacy sensor support / reset ASF Slave state machine per RPR 2.27 step 3 */ + outb(0x40, SMBUS_AUX_IO_BASE + SMBSLVMISC); + } + } /* KB2RstEnable */ pci_write_config8(dev, 0x40, 0x44); diff --git a/src/southbridge/amd/sb700/smbus.h b/src/southbridge/amd/sb700/smbus.h index 0e6b7b80d1..1b90091beb 100644 --- a/src/southbridge/amd/sb700/smbus.h +++ b/src/southbridge/amd/sb700/smbus.h @@ -37,6 +37,7 @@ #define SMBSLVCMD_SHADOW 0x9 #define SMBSLVEVT 0xa #define SMBSLVDAT 0xc +#define SMBSLVMISC 0xd #define AX_INDXC 0 #define AX_INDXP 1