Opened 7 weeks ago

Last modified 6 weeks ago

#19081 new bug

PANIC: SDHCI: Command execution impossible, command inhibit

Reported by: Nasina Owned by: pulkomandy
Priority: normal Milestone: Unscheduled
Component: Drivers/Disk/MMC Version: R1/beta5
Keywords: Cc:
Blocked By: Blocking: #19104
Platform: All

Description

Attempting to boot Beta 5 Test Candidate 0, as well as any nightly build hrev57689 and up on my Dell Latitude 3440 (2013) throws me into the KDL on startup with the panic message "Command execution impossible, command inhibit" on the "SD bus controller" thread. I can continue past the KDL and boot the system fine, and from there, the system runs without issues. The issue does not occur in Beta 4 or any nightly build hrev57683 and below.

I've attatched a syslog, as well as the output of "listdev" and "listimage | grep drivers" to the ticket from a usb boot of hrev58067. I'd use the latest nightly, but any nightly build hrev58095 and up freeze before they finish the boot splash screen, likely due to the issue mentioned in this thread in the discussion forum.

Going into the bootloader and ticking "Disable ACPI" fixes both the SD bus controller issue, and the freeze on startup in the latest nightly. I'm currently testing with the x86_64 builds.

Attachments (8)

syslog (152.1 KB ) - added by Nasina 7 weeks ago.
listdev.log (2.6 KB ) - added by Nasina 7 weeks ago.
listimage_drivers.log (1.7 KB ) - added by Nasina 7 weeks ago.
syslog_b5rc1 (443.8 KB ) - added by Nasina 7 weeks ago.
syslog.old (512.0 KB ) - added by bpresles 7 weeks ago.
Freezes when disabling ACPI - Syslog
listdrivers.log (1.5 KB ) - added by bpresles 7 weeks ago.
Freezes when ACPI disabled - listdrivers
listdev.2.log (3.1 KB ) - added by bpresles 7 weeks ago.
Freezes when APCI disabled - listdev
listusb.log (89.2 KB ) - added by bpresles 7 weeks ago.
Freezes when ACPI disabled - listusb

Download all attachments as: .zip

Change History (29)

by Nasina, 7 weeks ago

Attachment: syslog added

by Nasina, 7 weeks ago

Attachment: listdev.log added

by Nasina, 7 weeks ago

Attachment: listimage_drivers.log added

comment:1 by waddlesplash, 7 weeks ago

Please try with this build (which will probably become RC1): https://s3.us-east-1.wasabisys.com/haiku-release-candidates/x86_64/haiku-r1beta5-hrev57937_113-x86_64-anyboot.iso

This contains the fix for #18536 but not the recent ACPI regression; I suspect the fix for #18536 may also fix your problem.

comment:2 by Nasina, 7 weeks ago

Still seems to occur. I'll attach a syslog from this build.

by Nasina, 7 weeks ago

Attachment: syslog_b5rc1 added

comment:3 by waddlesplash, 7 weeks ago

Component: Drivers/ACPIDrivers/Disk/MMC
Owner: changed from tqh to pulkomandy

Ah, it appears support was added for your SDHCI controller in hrev57684; previously it just wasn't supported. It appears to be an ACPI-enumerated controller, hence why this panic doesn't occur when ACPI is disabled.

I guess for now you can just blocklist the driver until someone comes up with a fix (or we decide to disable this assertion and fail more gracefully.)

comment:4 by waddlesplash, 7 weeks ago

Summary: Dell Latitude 3440 (2013): Beta 5 TC0 SD bus controller issuePANIC: SDHCI: Command execution impossible, command inhibit

comment:5 by CodeforEvolution, 7 weeks ago

Looking at the code here: https://github.com/haiku/haiku/blob/c936122410bc6e704c35de5267e3a34f5450d366/src/add-ons/kernel/busses/mmc/sdhci.cpp#L168

I'm thinking that it may be best to disable the panic, and replace it with an ERROR(). The first panic happens as soon as the SDHCI controller is attempted to be reset here: https://github.com/haiku/haiku/blob/c936122410bc6e704c35de5267e3a34f5450d366/src/add-ons/kernel/bus_managers/mmc/mmc_bus.cpp#L173

So, despite this coming release being a Beta, I think it may be better to avoid a panic (even a continuable one) on what may be a controller-specific quirk.

comment:6 by waddlesplash, 7 weeks ago

Blocking: 19104 added

comment:7 by bpresles, 7 weeks ago

I've the same issue with an Intel NUC D54250WYKH, probably because of the mSATA connector (which is empty in my case).

Disabling ACPI make the OS start, but it freezes completely after a random amount of time. I'll provide a debug log tonight once I can start it again.

Btw, it was running fine on Beta 4 with ACPI enabled. Maybe if the PANIC is fixed so that it can boot with ACPI, the random freezes I experience would disappear?

comment:8 by pulkomandy, 7 weeks ago

Certainly not because of mSATA, which is SATA (not SD/MMC).

For this specific issue, the best thing to do will be to block/disable the sdhci_acpi driver.

Or, as mentionned in the earlier comment, you can just type "continue" at the panic and continue using your system normally.

comment:9 by Nasina, 7 weeks ago

Just as an update, disabling the SDHCI driver did work on my end, and I haven't had any issues on this hardware since.

If you need me to test this again in the future, let me know.

by bpresles, 7 weeks ago

Attachment: syslog.old added

Freezes when disabling ACPI - Syslog

by bpresles, 7 weeks ago

Attachment: listdrivers.log added

Freezes when ACPI disabled - listdrivers

by bpresles, 7 weeks ago

Attachment: listdev.2.log added

Freezes when APCI disabled - listdev

by bpresles, 7 weeks ago

Attachment: listusb.log added

Freezes when ACPI disabled - listusb

in reply to:  8 comment:10 by bpresles, 7 weeks ago

Replying to pulkomandy:

Certainly not because of mSATA, which is SATA (not SD/MMC).

For this specific issue, the best thing to do will be to block/disable the sdhci_acpi driver.

Or, as mentionned in the earlier comment, you can just type "continue" at the panic and continue using your system normally.

No I can't type anything on KDL when the PANIC happens. Disabling ACPI did work but with freezes (see attachments).

Also there is no SD/MMC card reader on this device AFAIK.

Last edited 7 weeks ago by bpresles (previous) (diff)

comment:11 by bpresles, 7 weeks ago

I confirm that disabling the sdhci MMC busses add-ons work when I do it from safe mode options in bootloader.

But when I try to make it permanent by following the guide here: https://www.haiku-os.org/guides/daily-tasks/disable-package-entries, it doesn't work.

I create the file /boot/system/settings/packages with the following content:

Package haiku  {
    BlockedEntries {
        add-ons/kernel/busses/mmc/sdhci
    }
}

But it doesn't seem to take it in account. Did I do something incorrectly?

Last edited 7 weeks ago by bpresles (previous) (diff)

comment:12 by waddlesplash, 7 weeks ago

That looks correct to me. I tried putting exactly what you have posted into the packages settings file on one of my VMs, rebooted, and it worked.

comment:13 by bpresles, 7 weeks ago

I use EFI boot loader, is that changing something? Did I place the packages settings file in the right place for beta5 (/boot/system/settings/packages (without any extension)) (I created it, as it didn't exist)?

comment:14 by waddlesplash, 7 weeks ago

The loader used shouldn't change anything, this file is read by the kernel.

Yes, that's the right path, and indeed it won't exist by default.

comment:15 by waddlesplash, 7 weeks ago

Ah, actually you may need to blocklist the file in the "boot" path too, because this module is also loaded as part of the boot process and not just on-demand later on.

comment:16 by bpresles, 7 weeks ago

And how do you do that?

comment:17 by bpresles, 7 weeks ago

I finally made it work! Contrary to what is indicated in https://www.haiku-os.org/guides/daily-tasks/disable-package-entries, the good syntax was to replace BlockedEntries by EntryBlacklist:

Package haiku  {
    EntryBlacklist {
        add-ons/kernel/busses/mmc/sdhci
    }
}

This is a bit odd as I found this information on an old blog post indicated as "preserved for historical reason" and that "Up to date information is maintained in the “daily tasks” guide." (with the previous url linked), here : https://www.haiku-os.org/blog/barrett/2013-12-15_how_permanently_blacklist_package_file/

This way it boots perfectly fine, without having to enter in safe boot options manually ;)

Last edited 7 weeks ago by bpresles (previous) (diff)

comment:18 by waddlesplash, 7 weeks ago

It appears there's some code in the bootloader that doesn't check the correct name but still uses the "legacy" one, that must be the problem there.

comment:19 by madmax, 6 weeks ago

Blocking: 19111 added

comment:20 by madmax, 6 weeks ago

Blocking: 19111 removed

comment:21 by waddlesplash, 6 weeks ago

I fixed that problem in hrev58150.

Note: See TracTickets for help on using tickets.