Date: Sat, 23 Feb 2019 03:25:47 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 235944] jedec_dimm(4) does not attach to KFA2 (aka Galax) Hall of Fame DDR4 sticks Message-ID: <bug-235944-227-y0xVuqWY0q@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-235944-227@https.bugs.freebsd.org/bugzilla/> References: <bug-235944-227@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D235944 --- Comment #7 from Ravi Pokala <rpokala@panasas.com> --- The fact that the Windows util (and, for that matter, the firmware) can read the second (256-byte) page of the SPD, means that the SPD's page-change mechanism does in fact work. That suggests a driver issue. Conveniently, enabling bootverbose to get the SPD dump from jedec_dimm(4), *also* enabled error reporting for intsmb(4). That driver is implemented in= the misleadingly-named sys/dev/intpm/intpm.c file; this is an SMBus controller = on an AMD system, not an INTel Power Management controller. <sigh> > intsmb0: error =3D 1, status =3D 0x6 That message can only come from intsmb_error(): =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D static int intsmb_error(device_t dev, int status) { int error =3D 0; if (status & PIIX4_SMBHSTSTAT_ERR) error |=3D SMB_EBUSERR; if (status & PIIX4_SMBHSTSTAT_BUSC) error |=3D SMB_ECOLLI; if (status & PIIX4_SMBHSTSTAT_FAIL) error |=3D SMB_ENOACK; if (error !=3D 0 && bootverbose) device_printf(dev, "error =3D %d, status =3D %#x\n", error, status); return (error); } =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The PIIX4_SMBHSTSTAT* values are defined in sys/dev/intpm/intpmreg.h: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D #define PIIX4_SMBHSTSTAT_BUSY (1<<0) #define PIIX4_SMBHSTSTAT_INTR (1<<1) #define PIIX4_SMBHSTSTAT_ERR (1<<2) #define PIIX4_SMBHSTSTAT_BUSC (1<<3) #define PIIX4_SMBHSTSTAT_FAIL (1<<4) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D A "status" value of 0x6 is 00110b : (PIIX4_SMBHSTSTAT_ERR | PIIX4_SMBHSTSTAT_INTR). The SMB_E* values are defined in sys/dev/smbus/smbconf.h: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D #define SMB_ENOERR 0x0 #define SMB_EBUSERR 0x1 #define SMB_ENOTSUPP 0x2 #define SMB_ENOACK 0x4 #define SMB_ECOLLI 0x8 #define SMB_EABORT 0x10 #define SMB_ETIMEOUT 0x20 #define SMB_EBUSY 0x40 #define SMB_EINVAL 0x100 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D An "error" value of 1 is SMB_EBUSERR, which matches the PIIX4_SMBHSTSTAT = =3D> SMB_E mapping that intsmb_error() does. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-235944-227-y0xVuqWY0q>