CURRENT crashes at early boot on Lenovo T540p: rtsx to blame - 13.0-RELEASE crashes same way!
hlh at restart.be
Wed May 12 13:36:03 UTC 2021
On 5/12/21 2:46 PM, Lev Serebryakov wrote:
> On 12.05.2021 13:01, Henri Hennebert via freebsd-current wrote:
>> It would be fine if you can test the driver with dev.rtsx.0.inversion=1 in
>> loader.conf and see it it solve the problem.
>> the output of
>> sysctl dev.rtsx and
>> kenv | grep smbios.system
>> would be useful
>> BTW is a dummy card inserted in the SD slot?
>> Thank for your time
> My T540p:
> (1) rtsx in the kernel, enabled in BIOS, no settings in loader.conf, EMPTY
> SLOT — panic on boot, typically WITHOUT rtsx in stack trace.
> (2) rtsx in the kernel, enabled in BIOS, no settings in loader.conf, SD CARD
> IN THE SLOT — no panic on boot, but WiFi card detected
> too late for startup scripts to run wpa_supplicant properly.
> (3) rtsx in the kernel, enabled in BIOS, "dev.rtsx.0.inversion=1", SD CARD IN
> THE SLOT — no panic on boot, but WiFi card detected
> too late for startup scripts to run wpa_supplicant properly. And card
> reporting is inverted related to real deal: rtsx0
> reports "Card present" when I remove card and vice versa.
> (4) rtsx in the kernel, disabled in BIOS — device not found, everything (but
> SD reader) boots & works (as expected!)
> (5) rtsx in the kernel, enabled in BIOS, "dev.rtsx.0.inversion=1", EMPTY SLOT
> — boots, but prints out "timeout for CMD8/55/1" for very long time and
> *console*is*not*accessible* till "no compatible cards found on bus".
> ALSO (!) wifi card is found only AFTER all these timeouts, when startup
> scripts are FAILED to attach to wireless network (!!!).
> ALSO (!) it says "Card Absent" when I *INSERT* card after boot, and "Card
> present" (+ a lot of timeouts again) when I *REMOVE* card, looks like this
> "inversion" is wrong for my hardware.
> So, it boots, but practically unusable.
> (6) rtsx in the kernel, enabled in BIOS, "dev.rtsx.0.inversion=1", SD CARD IN
> THE SLOT
> (7) rtsx is loaded as module after boot (manually, from console), enabled in
> BIOS, no setting in loader.conf — looks to work properly.
> Card could be mounted, read/write, it works.
> (9) rtsx is loaded as module after boot (manually, from console), enabled in
> BIOS, "dev.rtsx.0.inversion=1" — don't panic, but thinks wrong about card state
> (Card Present/Absent is inverted, as instructed).
> My theory: rtsx detect/attach code has some race conditions /
> incompatibilities for multi-core boot when card is not present, and it thrash
> kernel memory and/or block something on boot. "inversion" removes this bad
> behavior due to waiting for card commands (as with "inversion" it thinks card is
> here and try to access it).
Firts, thank you for your exhaustive testing! Your analysis seems pertinent for me.
What seems strange: case (1) and (3) follow the same path in the driver but (1)
produce a panic.
> See (2), (3) and (4) — when rtsx doesn't cause panic on boot, it still mangle
> other devices detection & initialization.
booting in case (2) can you show the output of
> I could provide any additional information. Unfortunately, memory dump of
> panic-on-boot is impossible :-(
More information about the freebsd-current