Ticket #2227 (new bug)

Opened 2 months ago

Last modified 2 months ago

Devices connected to a JMicron PATA controller are not detected.

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

Description

My computer has a JMicron controller that has SATA/PATA ports. I have one SATA HD connected to one of the SATA ports and a 500 GH HD and a DVD-RW drive connected to the PATA port. The SATA HD is detected and works well but the devices connected to the PATA controller are not. For example, when trying to boot Haiku from the PATA HD, it starts booting and then fails because it can not find the boot device. When booting it from the SATA HD, I noticed this in the syslog:

KERN: ahci: ahci_scan_bus, cookie 0x9100ce40 KERN: ahci: no device present on port 0 Last message repeated 1 time KERN: ahci: no device present on port 1 Last message repeated 1 time

These messages probably refer to the PATA controller (only 2 ports) but although it does not find devices, there *ARE* devices attached (and they work under Windows and under Linux).

Full syslog attached.

Attachments

syslog.txt (100.2 kB) - added by bga 2 months ago.
Syslog output

Change History

Changed 2 months ago by bga

Syslog output

Changed 2 months ago by bga

Some things I noticed that may or may not be usefull:

1 - My BIOS has an option to configure PATA devices as AHCI or IDE. Either option results in exactly the same problem.

2 - Linux always configures the devices as AHCI, it seems (they show up as sdX devices).

3 - Dunno if it matter but both devices jumpers are set to cable select, which means there is no explicitly configured master/slave.

4 - Even if I disconnect the IDE HD, the DVD drive is still not detected. Didn't try disconnecting only the DVD drive.

Changed 2 months ago by bga

With Marcus help, it became obviously that the problem was a result of bug #5 and happened like this:

1 - The BIOS had PNP OS enabled so it would not try to configure the devices leaving it to the OS to do that. 2 - The JMicron controller reported itself as 2 different devices but one of them had no interrupt line assigned to it. 3 - So the IDE stack would load, find the PATA controller but fail to work with it as it had no IRQ assigned.

I changed my BIOS settings so the PNP OS option is now disabled (which means that the BIOS itself would configure the devices) and this resulted in better results (I am at work now, will post the syslog when I am back at home later today):

1 - The controller gets an IRQ. 2 - It seems to be correctly initialized and the attached drives (a DVR-RW drive and an HD) are detected and identified as an atapi and an ata device. 3 - But then send_command() fails on both devices and they are ignored.

A side effect of whatever happens is that the HD light in the tower case keeps lit up all the time but the devices are not published to /dev/disk.

Ideas?

Note: See TracTickets for help on using tickets.