From bb6bb7fe1b631c51bbd276d09f925fdba70dd585 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 3 Feb 2009 16:14:37 +0000 Subject: - Change ichsmb(4) to follow the format of all the other smbus controllers for slave addressing by using left-adjusted slave addresses (i.e. xxxxxxx0b). - Require the low bit of the slave address to always be zero in smb(4) to help catch broken applications. - Adjust some code in the IPMI driver to not convert the slave address for SSIF to a right-adjusted address. I (or possibly ambrisko@) added this in the past to (unknowingly) work around the bug in ichsmb(4). Submitted by: Andriy Gapon (1,2) MFC after: 1 month --- sys/dev/ipmi/ipmi_smbios.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sys/dev/ipmi') diff --git a/sys/dev/ipmi/ipmi_smbios.c b/sys/dev/ipmi/ipmi_smbios.c index d9fcff80540c..31424d63229b 100644 --- a/sys/dev/ipmi/ipmi_smbios.c +++ b/sys/dev/ipmi/ipmi_smbios.c @@ -154,10 +154,10 @@ smbios_t38_proc_info(uint8_t *p, char **table, struct ipmi_get_info *info) case SSIF_MODE: if ((s->base_address & 0xffffffffffffff00) != 0) { printf("SMBIOS: Invalid SSIF SMBus address, using BMC I2C slave address instead\n"); - info->address = s->i2c_slave_address >> 1; + info->address = s->i2c_slave_address; break; } - info->address = IPMI_BAR_ADDR(s->base_address) >> 1; + info->address = IPMI_BAR_ADDR(s->base_address); break; default: return; -- cgit v1.3