Opened 10 years ago

Closed 9 years ago

#4790 closed bug (fixed)

PANIC on USB boot with CS5536 chipset

Reported by: delroth Owned by: mmlr
Priority: normal Milestone: R1
Component: Drivers/USB Version: R1/alpha1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: x86

Description

I get a kernel panic (unable to find boot partitions) when booting Haiku from my USB drive (with a sufficient size, that is not the source of the problem).

From the on-screen debugging output (no camera, no serial output, so I can't provide screenshots or whatever else) :

usb uhci: no defices found
usb ohci -1: iospace offset: 0xeff00000
usb ohci -1: smm is in control of the host controller
usb ohci -1: ownership change successful
usb ohci -1: successfully started the controller
usb ehci -1: claiming ownership of the host controller
usb ehci -1: successfully took ownership of the host controller
usb ehci -1: successfully started the controller
usb hub 2: port 1: device removed
usb hub 2: port 2: device removed
usb hub 7: port 1: new device connected
usb error control pipe 11: timeout waiting for queued request to complete
usb error control pipe 11: timeout waiting for queued request to complete
usb error ehci 1: qtd (0x02522580) error: 0x00B80248
usb error control pipe 11: timeout waiting for queued request to complete
usb error ehci 1: qtd (0x02522780) error: 0x00B80240
usb error ehci 1: error while setting device address

After this point, the kernel searches for the boot partition and (obviously) do not find anything.

Reproduced the problem on both R1/A1 and last SVN.

Change History (14)

comment:1 by delroth, 10 years ago

Trying to increase the timeout did not solve anything.

comment:2 by mmlr, 10 years ago

Can you provide the output of the "ints" command once in KDL? You can leave out the addresses (0x8xxxxxxx). It either is a host controller driver issue or an interrupt problem.

comment:3 by delroth, 10 years ago

Sure :

int   0, enabled 1, handled    22534, unhandled        0
       kernel_x86:pit_timer_interrupt
int   1, enabled 1, handled       10, unhandled        0
       kernel_x86:debug_keyboard_interrupt
int  10, enabled 2, handled        1, unhandled        0
       ehci:(C++ mangling for InterruptHandler)
       ohci:(C++ mangling for InterruptHandler)
int  14, enabled 1, handled       10, unhandled       11
       ata_adapter:ata_adapter_inthand
int  15, enabled 1, handled        0, unhandled        0
       ata_adapter:ata_adapter_inthand

Do you think the bug may be related to #5 ?

in reply to:  3 comment:4 by mmlr, 10 years ago

Replying to delroth:

int  10, enabled 2, handled        1, unhandled        0
       ehci:(C++ mangling for InterruptHandler)
       ohci:(C++ mangling for InterruptHandler)

That's definitely not a lot of interrupts being triggered there. On the other hand it is also > 0. It's a bit hard to tell. If you have another way of booting and could check if other devices do indeed work, that'd be most informative. You could also try removing the EHCI driver and see if OHCI takes over gracefully (it should, it'd just be slower).

comment:5 by delroth, 10 years ago

Do you have any pointer to how I could remove the driver ? I'm new to Haiku and do not (yet ? :) ) completely understand how the build system works.

comment:6 by mmlr, 10 years ago

If you're building a new image to dd to the medium then you could remove "<usb>ehci" from build/jam/HaikuImage. If you're updating an existing image/filesystem then you need to remove system/add-ons/kernel/busses/usb/ehci. You could do that using the mount pseudo-target like "jam @yourTargetBuildProfile mount" which should then bring up the target in the fsshell. From there you can remove said file.

comment:7 by delroth, 10 years ago

Well, now it goes further in the boot process but it still fails because of the USB drive.

The disk is correctly recognized (product_identification: "USB Flash Memory", drive number 0x80). The partition table is scanned and the BFS partition recognized.

Then I get a bunch of "kernel debugger extension ...: loaded", and these lines :

usb_disk: sending or receiving of the data failed
usb error control pipe 9: timeout waiting for queued request to complete
usb_disk: read fails with 0xffffffff
usb_disk: acquire_sem failed while waiting for data transfer
usb_disk: acquire_sem failed while waiting for data transfer
usb_disk: write fails with 0x8D80D809
bfs: could not write log area: Operation timed out!
usb_disk: acquire_sem failed while waiting for data transfer
usb_disk: write fails with 0x8D80D809
usb_disk: acquire_sem failed while waiting for data transfer
usb_disk: write fails with 0x8D80D809

comment:8 by delroth, 10 years ago

Forgot to note that the handled int10 count did increase with OHCI (about 2850).

comment:9 by delroth, 10 years ago

Component: System/KernelDrivers/USB
Owner: changed from axeld to mmlr

comment:10 by mmlr, 9 years ago

This might have been fixed with hrev41690. Can you please retest if possible?

comment:11 by delroth, 9 years ago

The Haiku boot loader does not seem to recognize my USB stick (no boot volume is detected). Is there any way to debug this?

in reply to:  11 comment:12 by mmlr, 9 years ago

Replying to delroth:

The Haiku boot loader does not seem to recognize my USB stick (no boot volume is detected). Is there any way to debug this?

Might be a BIOS issue, hard to tell off hand. You could try using an anyboot image instead of a raw image for the stick (or the other way around).

Hitting the escape key should enable early debug output to see what's going on. Unfortunately it scrolls through quickly and usually only the last bits are visible in the end. Maybe you it gives a hint though.

comment:13 by delroth, 9 years ago

I was able to boot it correctly using the Haiku PXE netboot and the USB drive was correctly recognized. I'm not able to test if it works when booting on USB though, the BIOS on my CS5536 netbook is completely broken and freezes when enumerating an USB device containing an anyboot image...

I'd consider this fixed as using the USB drive seems to work fine. Thanks!

in reply to:  13 comment:14 by mmlr, 9 years ago

Resolution: fixed
Status: newclosed

Replying to delroth:

... the BIOS on my CS5536 netbook is completely broken and freezes when enumerating an USB device containing an anyboot image...

You might want to file that as a different bug though.

I'd consider this fixed as using the USB drive seems to work fine. Thanks!

Ok, thanks for verifying.

Note: See TracTickets for help on using tickets.