Bug 11659
Summary: | CDROM on Laptop Fudjitsu-siemens Amilo Xa-2528 isn't reconized | ||
---|---|---|---|
Product: | IO/Storage | Reporter: | Remy LABENE (remy.labene) |
Component: | IDE | Assignee: | Bartlomiej Zolnierkiewicz (bzolnier) |
Status: | CLOSED CODE_FIX | ||
Severity: | high | CC: | lars.winterfeld, markskenvdb |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.26-5 debian amd64 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: |
force drive_is_ready() to always use Status register
config-2.6.28-rc3 file and dmesg, /proc/ioports, /proc/iomem and lspci result in this bzip file lspci result 2.6.28-rc3 kernel with patch amd74xx: workaround unreliable AltStatus register for nVidia controllers Test enabling workaround on amd74xx OK |
Description
Remy LABENE
2008-09-27 06:09:36 UTC
Ok, you're the second person to report the same problem: see http://bugzilla.kernel.org/show_bug.cgi?id=11581. I'm working on it. (In reply to comment #1) > Ok, you're the second person to report the same problem: see > http://bugzilla.kernel.org/show_bug.cgi?id=11581. I'm working on it. I'm not at all sure it's the same issue: here the ATAPI Identify command fails due to a lost IRQ. BTW, the vendor is called Fujitsu-Siemens. :-) Hi, can you please try three things, as Bart suggested: 0. pata_amd 1. 2.6.27-rc7 2. disabling libata @Sergei: right, i didn't see the "irq timeout" message on a first glance. I tested the kernel between 2.6.24 and 2.6.27 with git-bisect, but I dont understand the result ! PRT:~/linux-git# git bisect good 3b2e46f8c4a5f2d7856c490ab5f0c46b65e2cb99 is first bad commit commit 3b2e46f8c4a5f2d7856c490ab5f0c46b65e2cb99 Author: Rod Whitby <rod@whitby.id.au> Date: Thu Apr 24 23:43:09 2008 +0100 leds: Add new driver for the LEDs on the Freecom FSG-3 The LEDs on the Freecom FSG-3 are connected to an external memory-mapped latch on the ixp4xx expansion bus, and therefore cannot be supported by any of the existing LEDs drivers. Signed-off-by: Rod Whitby <rod@whitby.id.au> Signed-off-by: Richard Purdie <rpurdie@rpsys.net> :040000 040000 def733bc353eba5c61b37003dac39c1756d2725a dcb5590fa155f863ed9bbf5e484c35d53a0420fa M drivers The bisection went wrong somewhere. The code introduced by the commit found by git-bisect is not even compiled on x86. Is 2.6.24 really OK? If so could you please try repeating bisection. I know it is PITA and sorry for that but the error looks more like an IRQ routing issue than IDE problem so we have no idea what could be the possible cause. Yes, I thing so. In fact, when I put this option "CONFIG_IDEPCI_SHARE_IRQ" in the 2.6.24 realease the cdrom works fine. The problem is this option doesn't exist after the 2.6.24 release. I try now the 2.6.7-git4 kernel with libata or not. The CDROM is not recognized by GENERIC_IDE, the /dev/hda doen't exist with it. (In reply to comment #5) > The bisection went wrong somewhere. The code introduced by the commit found > by > git-bisect is not even compiled on x86. > > Is 2.6.24 really OK? If so could you please try repeating bisection. > > I know it is PITA and sorry for that but the error looks more like an IRQ > routing issue than IDE problem so we have no idea what could be the possible > cause. > See below, the result with 2.6.27-git4 with libata and PATA_AMD : Oct 17 19:07:52 PRT kernel: [ 327.902058] scsi2 : pata_amd Oct 17 19:07:52 PRT kernel: [ 327.902219] scsi3 : pata_amd Oct 17 19:07:52 PRT kernel: [ 327.902952] ata3: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x3080 irq 14 Oct 17 19:07:52 PRT kernel: [ 327.904011] ata4: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x3088 irq 15 Oct 17 19:07:52 PRT kernel: [ 328.072246] ata3.00: ATAPI: HL-DT-ST DVDRAM GSA-T20N, WW01, max UDMA/33 Oct 17 19:07:52 PRT kernel: [ 328.072294] ata3.00: Drive reports diagnostics failure. This may indicate a drive Oct 17 19:07:52 PRT kernel: [ 328.072331] ata3.00: fault or invalid emulation. Contact drive vendor for information. Oct 17 19:07:52 PRT kernel: [ 328.088216] ata3.00: configured for UDMA/33 Oct 17 19:07:57 PRT kernel: [ 333.088075] ata3.00: qc timeout (cmd 0xa0) Oct 17 19:07:57 PRT kernel: [ 333.088113] ata3.00: TEST_UNIT_READY failed (err_mask=0x5) Oct 17 19:07:57 PRT kernel: [ 333.268216] ata3.00: configured for UDMA/33 Oct 17 19:08:02 PRT kernel: [ 338.268073] ata3.00: qc timeout (cmd 0xa0) Oct 17 19:08:02 PRT kernel: [ 338.268111] ata3.00: TEST_UNIT_READY failed (err_mask=0x5) Oct 17 19:08:02 PRT kernel: [ 338.268144] ata3.00: limiting speed to UDMA/33:PIO3 Oct 17 19:08:02 PRT kernel: [ 338.448215] ata3.00: configured for UDMA/33 Oct 17 19:08:07 PRT kernel: [ 343.448074] ata3.00: qc timeout (cmd 0xa0) Oct 17 19:08:07 PRT kernel: [ 343.448110] ata3.00: TEST_UNIT_READY failed (err_mask=0x5) Oct 17 19:08:07 PRT kernel: [ 343.448146] ata3.00: disabled Oct 17 19:08:07 PRT kernel: [ 343.448194] ata3: soft resetting link Oct 17 19:08:07 PRT kernel: [ 343.604091] ata3: EH complete After the 2.6.24 release the option "CONFIG_IDEPCI_SHARE_IRQ" don't exist. I see that option is on ide-iops.c and ide-probe.c files. I Look the part code : #ifdef CONFIG_IDEPCI_SHARE_IRQ /* * We do a passive status test under shared PCI interrupts on * cards that truly share the ATA side interrupt, but may also share * an interrupt with another pci card/device. We make no assumptions * about possible isa-pnp and pci-pnp issues yet. */ if (IDE_CONTROL_REG) stat = hwif->INB(IDE_ALTSTATUS_REG); else #endif /* CONFIG_IDEPCI_SHARE_IRQ */ /* Note: this may clear a pending IRQ!! */ stat = hwif->INB(IDE_STATUS_REG); -------------------------------------------------------------------------- #ifndef CONFIG_IDEPCI_SHARE_IRQ sa |= IRQF_DISABLED; #endif /* CONFIG_IDEPCI_SHARE_IRQ */ ----------------------------------------------------------------------------- The driver ide_generic is new after this release, the problem is it here? it's impossible to disabled the IRQ sharing for testing. Rémy The last test with 2.6.27-git10, libata only, no ide-generic : [ 4.557526] forcedeth: Reverse Engineered nForce ethernet driver. Version 0.61. [ 4.557608] ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 20 [ 4.560099] forcedeth 0000:00:14.0: PCI INT A -> Link[LMAC] -> GSI 20 (level, low) -> IRQ 20 [ 4.560138] forcedeth 0000:00:14.0: setting latency timer to 64 [ 4.560186] nv_probe: set workaround bit for reversed mac addr [ 4.745098] ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 11 [ 4.745141] ohci1394 0000:07:06.0: PCI INT A -> Link[LNK1] -> GSI 11 (level, low) -> IRQ 11 [ 4.877277] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[11] MMIO=[c4000000-c40007ff] Max Packet=[2048] IR/IT contexts=[4/8] [ 5.000091] usb 2-3: new high speed USB device using ehci_hcd and address 2 [ 5.080270] forcedeth 0000:00:14.0: ifname eth0, PHY OUI 0x5043 @ 1, addr 00:14:0b:3d:05:bf [ 5.080309] forcedeth 0000:00:14.0: highdma pwrctl timirq gbit lnktim desc-v3 [ 5.080796] pata_amd 0000:00:0d.0: version 0.3.10 [ 5.080848] pata_amd 0000:00:0d.0: setting latency timer to 64 [ 5.081318] scsi2 : pata_amd [ 5.082284] scsi3 : pata_amd [ 5.083003] ata3: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x3080 irq 14 [ 5.083035] ata4: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x3088 irq 15 [ 5.133535] usb 2-3: configuration #1 chosen from 1 choice [ 5.252184] ata3.00: ATAPI: HL-DT-ST DVDRAM GSA-T20N, WW01, max UDMA/33 [ 5.252224] ata3.00: Drive reports diagnostics failure. This may indicate a drive [ 5.252258] ata3.00: fault or invalid emulation. Contact drive vendor for information. [ 5.252296] ata3: nv_mode_filter: 0x739f&0x701f->0x701f, BIOS=0x7000 (0xc000c700) ACPI=0x701f (60:600:0x13) [ 5.268155] ata3.00: configured for UDMA/33 [ 5.300068] usb 2-8: new high speed USB device using ehci_hcd and address 4 [ 5.441024] usb 2-8: configuration #1 chosen from 1 choice [ 5.744053] usb 1-5: new low speed USB device using ohci_hcd and address 2 [ 5.958361] usb 1-5: configuration #1 chosen from 1 choice [ 6.050375] usbcore: registered new interface driver hiddev [ 6.057054] input: Logitech USB-PS/2 Optical Mouse as /class/input/input2 [ 6.077102] generic-usb 0003:046D:C00E.0001: input,hidraw0: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:0b.0-5/input0 [ 6.077160] usbcore: registered new interface driver usbhid [ 6.077193] usbhid: v2.6:USB HID core driver [ 6.168175] ieee1394: Host added: ID:BUS[0-00:1023] GUID[0040ca014e01a3a2] [ 10.268084] ata3.00: qc timeout (cmd 0xa0) [ 10.268123] ata3.00: TEST_UNIT_READY failed (err_mask=0x5) [ 10.432241] ata3: nv_mode_filter: 0x701f&0x701f->0x701f, BIOS=0x7000 (0xc000c700) ACPI=0x701f (60:600:0x13) [ 10.448260] ata3.00: configured for UDMA/33 [ 15.449043] ata3.00: qc timeout (cmd 0xa0) [ 15.449073] ata3.00: TEST_UNIT_READY failed (err_mask=0x5) [ 15.449103] ata3.00: limiting speed to UDMA/33:PIO3 [ 15.613181] ata3: nv_mode_filter: 0x700f&0x701f->0x700f, BIOS=0x7000 (0xc000c700) ACPI=0x701f (60:600:0x13) [ 15.629147] ata3.00: configured for UDMA/33 [ 20.629042] ata3.00: qc timeout (cmd 0xa0) [ 20.629073] ata3.00: TEST_UNIT_READY failed (err_mask=0x5) [ 20.629102] ata3.00: disabled [ 20.629144] ata3: soft resetting link [ 20.785058] ata3: EH complete [ 21.029280] PM: Starting manual resume from disk [ 21.107454] ReiserFS: sda2: found reiserfs format "3.6" with standard journal [ 21.107498] ReiserFS: sda2: using ordered data mode [ 21.155782] ReiserFS: sda2: journal params: device sda2, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30 [ 21.157975] ReiserFS: sda2: checking transaction log (sda2) [ 21.202583] ReiserFS: sda2: Using r5 hash to sort names [ 23.214432] udevd version 125 started [ 25.056211] input: Power Button (FF) as /class/input/input3 [ 25.084617] ACPI: Power Button (FF) [PWRF] [ 25.084728] input: Power Button (CM) as /class/input/input4 [ 25.128205] ACPI: Power Button (CM) [PWRB] [ 25.128322] input: Sleep Button (CM) as /class/input/input5 [ 25.152047] ACPI: Sleep Button (CM) [SLPB] [ 25.152168] input: Lid Switch as /class/input/input6 [ 25.168146] ACPI: Lid Switch [LID] [ 25.365117] ACPI: AC Adapter [ACAD] (on-line) [ 26.025764] ACPI: Battery Slot [BAT0] (battery present) [ 26.481864] i2c-adapter i2c-0: nForce2 SMBus adapter at 0x3040 [ 26.481918] i2c-adapter i2c-1: nForce2 SMBus adapter at 0x3000 [ 26.938171] Linux video capture interface: v2.00 [ 26.989629] input: PC Speaker as /class/input/input7 [ 27.060007] gspca: main v2.3.0 registered [ 27.080013] gspca: probing 0402:5602 [ 27.080013] ALi m5602: Probing for a po1030 sensor [ 27.490305] ALi m5602: Probing for a mt9m111 sensor [ 27.529728] ACPI: PCI Interrupt Link [LAZA] enabled at IRQ 19 [ 27.529768] HDA Intel 0000:00:10.1: PCI INT B -> Link[LAZA] -> GSI 19 (level, low) -> IRQ 19 [ 27.529878] HDA Intel 0000:00:10.1: setting latency timer to 64 [ 27.581980] ALi m5602: Probing for a s5k4aa sensor [ 27.675176] ALi m5602: Detected a s5k4aa sensor [ 27.689136] input: PS/2 Mouse as /class/input/input8 [ 27.736778] input: AlpsPS/2 ALPS GlidePoint as /class/input/input9 [ 27.856938] ALi m5602: vertical flip quirk active [ 27.870998] gspca: probe ok [ 27.871044] usbcore: registered new interface driver ALi m5602 [ 27.871074] ALi m5602: registered (In reply to comment #9) > The last test with 2.6.27-git10, libata only, no ide-generic : > > [ 4.557526] forcedeth: Reverse Engineered nForce ethernet driver. Version > 0.61. > [ 4.557608] ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 20 > [ 4.560099] forcedeth 0000:00:14.0: PCI INT A -> Link[LMAC] -> GSI 20 > (level, low) -> IRQ 20 > [ 4.560138] forcedeth 0000:00:14.0: setting latency timer to 64 > [ 4.560186] nv_probe: set workaround bit for reversed mac addr > [ 4.745098] ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 11 > [ 4.745141] ohci1394 0000:07:06.0: PCI INT A -> Link[LNK1] -> GSI 11 > (level, > low) -> IRQ 11 > [ 4.877277] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[11] > MMIO=[c4000000-c40007ff] Max Packet=[2048] IR/IT contexts=[4/8] > [ 5.000091] usb 2-3: new high speed USB device using ehci_hcd and address > 2 > [ 5.080270] forcedeth 0000:00:14.0: ifname eth0, PHY OUI 0x5043 @ 1, addr > 00:14:0b:3d:05:bf > [ 5.080309] forcedeth 0000:00:14.0: highdma pwrctl timirq gbit lnktim > desc-v3 > [ 5.080796] pata_amd 0000:00:0d.0: version 0.3.10 > [ 5.080848] pata_amd 0000:00:0d.0: setting latency timer to 64 > [ 5.081318] scsi2 : pata_amd > [ 5.082284] scsi3 : pata_amd > [ 5.083003] ata3: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x3080 irq > 14 > [ 5.083035] ata4: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x3088 irq > 15 > [ 5.133535] usb 2-3: configuration #1 chosen from 1 choice > [ 5.252184] ata3.00: ATAPI: HL-DT-ST DVDRAM GSA-T20N, WW01, max UDMA/33 > [ 5.252224] ata3.00: Drive reports diagnostics failure. This may indicate > a > drive > [ 5.252258] ata3.00: fault or invalid emulation. Contact drive vendor for > information. .. which might mean that your drive is broken. Can you confirm/deny this, maybe by booting another operating system? No, the drive is not broken, it works fine with 2.6.24 kernel and windows XP. My laptop is dualboot. > Yes, I thing so. In fact, when I put this option "CONFIG_IDEPCI_SHARE_IRQ" in > the 2.6.24 realease the cdrom works fine. The problem is this option doesn't > exist after the 2.6.24 release. This option is always _on_ in kernels > 2.6.24 so is the problem the it needed to be disabled in 2.6.24? > No, the drive is not broken, it works fine with 2.6.24 kernel and windows XP. > My laptop is dualboot. Hmmm. Does it work fine with amd74xx driver in 2.6.24 or only with ide-generic? # CONFIG_IDEPCI_SHARE_IRQ is not set in my 2.6.24 config. I had try with amd74xx driver only in 2.6.27, it's wrong. the typical error is : [ 37.292293] ide: failed opcode was: 0xa1 [ 37.292293] ide1 at 0x170-0x177,0x376 on irq 15 [ 37.329063] hda: status error: status=0x58 { DriveReady SeekComplete DataRequest } [ 37.329204] ide: failed opcode was: unknown [ 37.329264] hda: drive not ready for command [ 37.329297] hda: ATAPI CD-ROM drive, 0kB Cache [ 37.329403] Uniform CD-ROM driver Revision: 3.20 [ 37.329460] hda: status error: status=0x58 { DriveReady SeekComplete DataRequest } .... but no error with 2.6.24, see below my lsmod, just CONFIG_IDEPCI_SHARE_IRQ off remy@PRT:~$ lsmod (2.6.24) Module Size Used by appletalk 39904 2 ax25 60356 2 ipx 31496 2 p8023 4480 1 ipx nvidia 7799968 28 rfcomm 45472 0 l2cap 27520 5 rfcomm bluetooth 62420 4 rfcomm,l2cap ipv6 295144 21 ppdev 11528 0 parport_pc 31640 0 lp 15076 0 parport 42252 3 ppdev,parport_pc,lp video 23508 0 output 6528 1 video powernow_k8 16272 1 cpufreq_powersave 4160 0 cpufreq_stats 8272 0 cpufreq_userspace 7428 0 cpufreq_ondemand 11472 1 cpufreq_conservative 11016 0 freq_table 7488 3 powernow_k8,cpufreq_stats,cpufreq_ondemand fuse 51248 3 loop 20420 0 joydev 15360 0 snd_hda_intel 354728 1 snd_pcm_oss 43232 0 snd_mixer_oss 19072 1 snd_pcm_oss snd_pcm 86472 2 snd_hda_intel,snd_pcm_oss k8temp 8320 0 psmouse 43740 0 serio_raw 9732 0 pcspkr 5568 0 snd_timer 26312 1 snd_pcm snd 63480 7 snd_hda_intel,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer soundcore 10896 1 snd snd_page_alloc 13072 2 snd_hda_intel,snd_pcm i2c_nforce2 8960 0 i2c_core 27584 2 nvidia,i2c_nforce2 battery 17672 0 ac 9224 0 container 7616 0 button 11808 0 evdev 14848 6 reiserfs 223824 2 usbhid 47056 0 hid 40720 1 usbhid ff_memless 8200 1 usbhid ide_cd 42640 0 cdrom 37608 1 ide_cd amd74xx 12248 0 [permanent] ide_core 140720 2 ide_cd,amd74xx ata_generic 10884 0 ohci1394 34292 0 ieee1394 99160 1 ohci1394 forcedeth 52236 0 ehci_hcd 36492 0 pata_acpi 10624 0 ohci_hcd 25668 0 thermal 20512 0 processor 42568 2 powernow_k8,thermal fan 7688 0 remy@PRT:~$ The cdrom is master on hda, is it a problem ? Created attachment 18619 [details]
force drive_is_ready() to always use Status register
It could be that under certain conditions Alt Status register cannot be trusted and Status register should be used instead...
Could you try this debug patch (for 2.6.28-rc3 but should apply cleanly to 2.6.27) which just disables use of Alt Status in drive_is_ready() (IOW it is functionaly equal to disabling CONFIG_IDEPCI_SHARE_IRQ in older kernels)?
Created attachment 18679 [details]
config-2.6.28-rc3 file and dmesg, /proc/ioports, /proc/iomem and lspci result in this bzip file
Now is ok !! Created attachment 18680 [details]
lspci result 2.6.28-rc3 kernel with patch
Sorry, I forgot the lspci file
Created attachment 18748 [details]
amd74xx: workaround unreliable AltStatus register for nVidia controllers
Great to hear that!
Could you now try the fully-baked fix for 2.6.28-rc3? It should also get rid of probe time warnings. Thanks.
Borislav: please mark this bug as regression and re-assign it to me. Created attachment 18754 [details]
Test enabling workaround on amd74xx OK
the test to enabling workaround on amd74xx is OK. The CD-ROM is recognized. Thanks you for your job.
i opened a similar (possibly same) bug on http://bugzilla.kernel.org/show_bug.cgi?id=10216 So how do we have to fix images to make them work on a Amillo Xa-2528 following http://bugzilla.kernel.org/show_bug.cgi?id=10216 you need to patch the kernel as described here: http://bugzilla.kernel.org/attachment.cgi?id=18748&action=view recompile it and overwrite the new kernel inside the image. is there no easyer way, just started using linux couple days ago ,-) getting a little off-topic here... you could try not to start from cd, but from an usb device instead. (i said try :-) because i am not sure if this will skip the problem). basically, you could copy any linux image to a usb flash drive or a usb external hard drive. but to make it boot, you would have to copy a bootloader to that drive. this can be done with tools like Syslinux - google for it, here is an example on how to do this for Damn Small Linux: http://www.pendrivelinux.com/all-in-one-usb-dsl/ if you have Windows installed on your machine, you could also think of partionizing your drive with a tool in Windows and then use an emulator like VirtualBox and let it have access to the partition your linux should lay on, and install linux there from the virtualbox-cd-drive. but i would not really recommand this, especially for beginners - plus you would then still have to install a bootloader to select windows or linux on startup. but i hope, this problem will be patched in some future kernel versions. (it still is not, because some kernel hackers say that there are still some issues, although it works for me.) so to answer your question "is there no easyer way" - well, not really. see my eMail address above. in three weeks i may find the time to patch an image for you, if you haven't managed it yourself until then. Do you have try this nini.iso net boot ? http://debian.mirror.inra.fr/debian/dists/lenny/main/installer-amd64/current/images/netboot/ maybe this article i wrote is also a little help... (main part is gentoo specific, just telling how to copy the gentoo iso to usb drive) http://www.gentoo-wiki.info/Fujitsu-Siemens_Amilo_Xa2528 |