Ticket #2335 (new bug)

Opened 7 months ago

Last modified 7 months ago

Boot failure with PATA disk on ATIIXP SB400 IDE controller

Reported by: drackham Owned by: marcusoverhagen
Priority: normal Milestone: R1
Component: Drivers/Disk Version: R1 development
Cc: Blocked By:
Platform: All Blocking:

Description

I am unable to boot off a PATA disk with an ATIIXP SB400 IDE controller. Booting stops at the disk icon. Machine is a Gateway with MS-7173 motherboard and a single P4 processor. Last tested with r25799.

My symptoms sound almost identical to #1444 except that I have no SATA disks and generally disable the SATA controller in the BIOS, although I've also tried with it enabled. I've tried both the IDE and ATA bus_managers, returning early from pci_fixup, and waiting over a minute for anything to timeout. I've also tried disabling/disconnecting all non-essential hardware. I tested every combination of these strategies.

Sticking dprintf in relevant places suggests that with the ATA bus_manager any call to snooze in ata_reset_bus deadlocks, never returning from scheduler_reschedule. Likewise, with the IDE bus_manager, the call to acquire_sem_etc in scan_device_int never returns.

I've attached serial debug output for both bus_managers with TRACE_SCHEDULER enabled. In both cases, after entering KDL with F12, "threads" shows that all but the idle thread are either snoozing or waiting for a sem.

Please let me know if additional information would be helpful.

Attachments

ata.serial.debug.txt (40.3 KB) - added by drackham 7 months ago.
Serial debug output using ATA bus_manager
ide.serial.debug.txt (40.9 KB) - added by drackham 7 months ago.
Serial debug output using IDE bus_manager

Change History

Changed 7 months ago by drackham

Serial debug output using ATA bus_manager

Changed 7 months ago by drackham

Serial debug output using IDE bus_manager

Changed 7 months ago by mmlr

This could probably be closed as a duplicate of #2342.

Changed 7 months ago by drackham

Indeed, disabling APIC in the BIOS and "outb 0x4d0 0x21" in KDL ("inb 0x4d0" was 0x20) gets my system to boot past this point. It still eventually fails with either ATA or IDE bus_manager. So yes, this does sound like a dup of #2342 to me.

Note: See TracTickets for help on using tickets.