Date: Sat, 23 Feb 2019 03:45: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-Ho1f5AKBmw@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 Ravi Pokala <rpokala@panasas.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |avg@FreeBSD.org --- Comment #8 from Ravi Pokala <rpokala@panasas.com> --- The fact that the message from intsmb_error() comes immediately before a message about failing to change or restore the page, means that the call th= at failed was smbus_writeb(), which is ultimately handled by intsmb_writeb(): =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_writeb(device_t dev, u_char slave, char cmd, char byte) { struct intsmb_softc *sc =3D device_get_softc(dev); int error; INTSMB_LOCK(sc); error =3D intsmb_free(sc); if (error) { INTSMB_UNLOCK(sc); return (error); } bus_write_1(sc->io_res, PIIX4_SMBHSTADD, slave & ~LSB); bus_write_1(sc->io_res, PIIX4_SMBHSTCMD, cmd); bus_write_1(sc->io_res, PIIX4_SMBHSTDAT0, byte); intsmb_start(sc, PIIX4_SMBHSTCNT_PROT_BDATA, 0); error =3D intsmb_stop(sc); INTSMB_UNLOCK(sc); 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 You can see that intsmb_writeb() does not call intsmb_error() directly. However, it does call intsmb_stop(): =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_stop(struct intsmb_softc *sc) { int error, status; INTSMB_LOCK_ASSERT(sc); if (sc->poll || cold) /* So that it can use device during device probe on SMBus. = */ return (intsmb_stop_poll(sc)); error =3D msleep(sc, &sc->lock, PWAIT | PCATCH, "SMBWAI", hz / 8); if (error =3D=3D 0) { status =3D bus_read_1(sc->io_res, PIIX4_SMBHSTSTS); if (!(status & PIIX4_SMBHSTSTAT_BUSY)) { error =3D intsmb_error(sc->dev, status); if (error =3D=3D 0 && !(status & PIIX4_SMBHSTSTAT_I= NTR)) device_printf(sc->dev, "unknown cause why?\= n"); #ifdef ENABLE_ALART bus_write_1(sc->io_res, PIIX4_SMBSLVCNT, PIIX4_SMBSLVCNT_ALTEN); #endif return (error); } } /* Timeout Procedure. */ sc->isbusy =3D 0; /* Re-enable suppressed interrupt from slave part. */ bus_write_1(sc->io_res, PIIX4_SMBSLVCNT, PIIX4_SMBSLVCNT_ALTEN); if (error =3D=3D EWOULDBLOCK) return (SMB_ETIMEOUT); else return (SMB_EABORT); } =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 Unfortunately, I'm not familiar enough with this SMBus controller -- or the intsmb(4) driver -- to debug this further. It looks like the people who have made functional changes in the past decade are cem@ (already CCed) and avg@ (adding). --=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-Ho1f5AKBmw>