Opened 15 years ago
Closed 14 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: | ||
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 , 15 years ago
comment:2 by , 15 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.
follow-up: 4 comment:3 by , 15 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 ?
comment:4 by , 15 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 , 15 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 , 15 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 , 15 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 , 15 years ago
Forgot to note that the handled int10 count did increase with OHCI (about 2850).
comment:9 by , 15 years ago
Component: | System/Kernel → Drivers/USB |
---|---|
Owner: | changed from | to
comment:10 by , 14 years ago
This might have been fixed with hrev41690. Can you please retest if possible?
follow-up: 12 comment:11 by , 14 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?
comment:12 by , 14 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.
follow-up: 14 comment:13 by , 14 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!
comment:14 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
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.
Trying to increase the timeout did not solve anything.