4

My ASUS M4A87TD EVO board has two on-board disk controllers, one of them is a JMicron JMB361 with one old IDE disk connected. When I boot Arch Linux, it shows in the system journal like this:

Nov 02 12:53:50 host kernel: ahci 0000:04:00.0: JMB361 has only one port
Nov 02 12:53:50 host kernel: ahci 0000:04:00.0: AHCI 0001.0000 32 slots 2 ports 3 Gbps 0x3 impl SATA mode
Nov 02 12:53:50 host kernel: ahci 0000:04:00.0: flags: 64bit ncq pm led clo pmp pio slum part 
Nov 02 12:53:50 host kernel: ata9: SATA max UDMA/133 abar m8192@0xfbffe000 port 0xfbffe100 irq 17
Nov 02 12:53:50 host kernel: ata10: SATA max UDMA/133 abar m8192@0xfbffe000 port 0xfbffe180 irq 17
Nov 02 12:53:50 host kernel: ata9: SATA link down (SStatus 0 SControl 300)
Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed)
Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed)
Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed)
Nov 02 12:53:50 host kernel: ata10: limiting SATA link speed to 1.5 Gbps
Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed)
Nov 02 12:53:50 host kernel: ata10: reset failed, giving up

I don't know where devices ata9 and ata10 come from. There is only one IDE disk connected to that controller and it is initialized properly. The BIOS does not show anything relating to ata9 or ata10 (and it shouldn't because there is nothing connected there) and I haven't found any way to disable them in the BIOS.

I thought I had found a way to disable detection of these two devices here: How to tell Linux Kernel > 3.0 to completely ignore a failing disk? but it hasn't made any difference. This is how I am booting the kernel:

Nov 02 12:53:50 host kernel: Linux version 3.17.2-1-ARCH (builduser@thomas) (gcc version 4.9.1 20140903 (prerelease) (GCC) ) #1 SMP PREEMPT Thu Oct 30 20:49:39 CET 2014
Nov 02 12:53:50 host kernel: Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=2cfdc373-7023-48d7-a90d-43d030af277b rw libata.force=9:disable,10:disable quiet

The system manages to boot ultimately but the failing softresets annoyingly delay the boot process by at least 90 seconds.

1

So obviously the libata.force disable kernel parameter setting is applied too late in the process. The ATA driver first tries to reset the device before it disables it. What has worked for me is to disable resets as well as the device with this kernel parameter libata.force=9:disable,9:norst,10:disable,10:norst.

I am still getting a few kernel log entries for these devices but they don't bother me as long as nothing shows on the console and the system boots immediately:

Nov 08 01:19:39 host kernel: ata9: FORCE: link flag 0x6 forced -> 0x6
Nov 08 01:19:39 host kernel: ata9: SATA max UDMA/133 abar m8192@0xfbffe000 port 0xfbffe100 irq 17
Nov 08 01:19:39 host kernel: ata10: DUMMY
Nov 08 01:19:39 host kernel: ata9: SATA link down (SStatus 0 SControl 300)
  • And turns out that the LTS kernel in Arch Linux at the time of writing boots fine without any work-around. The LTS kernel is version 3.14.23 while the current kernel that displays this issue is 3.17.2. – Fabian Ritzmann Nov 7 '14 at 23:41
  • I am getting similar entries in the kernel log when booting with the LTS kernel however. So it looks like one of the later kernels added logic to try and soft reset the devices multiple times before giving up. – Fabian Ritzmann Nov 7 '14 at 23:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.