pata_sis fails to enable udma100, which causes a long (~1min) delay at boot. Patch available!
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
linux-source-2.6.22 (Ubuntu) |
Won't Fix
|
Low
|
Unassigned | ||
Bug Description
Binary package hint: linux-image-
When booting up gutsy, kernel linux-image-
------------
Oct 22 09:17:57 localhost kernel: [ 30.915512] pata_sis 0000:00:00.1: version 0.5.1
Oct 22 09:17:57 localhost kernel: [ 30.915876] ata1: PATA max UDMA/100 cmd 0x000101f0 ctl 0x000103f6 bmdma 0x00011100 irq 14
Oct 22 09:17:57 localhost kernel: [ 30.915978] ata2: PATA max UDMA/100 cmd 0x00010170 ctl 0x00010376 bmdma 0x00011108 irq 15
Oct 22 09:17:57 localhost kernel: [ 38.024000] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
Oct 22 09:17:57 localhost kernel: [ 38.024000] ata1.00: cmd c8/00:08:
Oct 22 09:17:57 localhost kernel: [ 38.024000] res 40/00:00:
Oct 22 09:17:57 localhost kernel: [ 38.024000] ata1: soft resetting port
Oct 22 09:17:57 localhost kernel: [ 38.196000] ata1.00: configured for UDMA/100
Oct 22 09:17:57 localhost kernel: [ 38.196000] ata1: EH complete
Oct 22 09:17:57 localhost kernel: [ 68.196000] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
Oct 22 09:17:57 localhost kernel: [ 68.196000] ata1.00: cmd c8/00:08:
Oct 22 09:17:57 localhost kernel: [ 68.196000] res 40/00:00:
Oct 22 09:17:57 localhost kernel: [ 68.196000] ata1: soft resetting port
Oct 22 09:17:57 localhost kernel: [ 68.368000] ata1.00: configured for UDMA/100
Oct 22 09:17:57 localhost kernel: [ 68.368000] ata1: EH complete
Oct 22 09:17:57 localhost kernel: [ 98.368000] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
Oct 22 09:17:57 localhost kernel: [ 98.368000] ata1.00: cmd c8/00:08:
Oct 22 09:17:57 localhost kernel: [ 98.368000] res 40/00:00:
Oct 22 09:17:57 localhost kernel: [ 98.368000] ata1: soft resetting port
Oct 22 09:17:57 localhost kernel: [ 98.540000] ata1.00: configured for UDMA/100
Oct 22 09:17:57 localhost kernel: [ 98.540000] ata1: EH complete
Oct 22 09:17:57 localhost kernel: [ 128.540000] ata1.00: limiting speed to UDMA/66:PIO4
Oct 22 09:17:57 localhost kernel: [ 128.540000] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
Oct 22 09:17:57 localhost kernel: [ 128.540000] ata1.00: cmd c8/00:08:
Oct 22 09:17:57 localhost kernel: [ 128.540000] res 40/00:00:
Oct 22 09:17:57 localhost kernel: [ 128.540000] ata1: soft resetting port
Oct 22 09:17:57 localhost kernel: [ 128.712000] ata1.00: configured for UDMA/66
Oct 22 09:17:57 localhost kernel: [ 128.712000] ata1: EH complete
Oct 22 09:17:57 localhost kernel: [ 128.716000] sda1 sda2 <<5>sd 0:0:0:0: [sda] 58711968 512-byte hardware sectors (30061 MB)
Oct 22 09:17:57 localhost kernel: [ 128.748000] sd 0:0:0:0: [sda] Write Protect is off
Oct 22 09:17:57 localhost kernel: [ 128.748000] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
Oct 22 09:17:57 localhost kernel: [ 128.748000] sda5<5>sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
---------------
A similar bug has been reported for the red hat and suse distributions and a fix went into linux-2.6.23. From the 2.6.23 Changelog:
---
pata_sis: add missing UDMA5 timing value in sis_66_
sis_66_
missing udma timing value for UDMA100. According to sis5513, this
should be 0x8000. This caused UDMA100 device to fail on pata_sis till
it downgrades to UDMA66 while it works fine on sis5513 at UDMA100.
Reported by Adam Blech.
Signed-off-by: Tejun Heo <email address hidden>
Cc: Adam Blech <email address hidden>
Signed-off-by: Jeff Garzik <email address hidden>
---
The corresponding patch is a oneliner, which does apply cleanly to linux-2.6.22.9 from the ubuntu's linux-source-
---
drivers/
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/
index da3f720..3b5be77 100644
--- a/drivers/
+++ b/drivers/
@@ -376,8 +376,9 @@ static void sis_66_set_dmamode (struct ata_port *ap, struct
ata_device *adev)
int drive_pci = sis_old_
u16 timing;
+ /* MWDMA 0-2 and UDMA 0-5 */
const u16 mwdma_bits[] = { 0x008, 0x302, 0x301 };
- const u16 udma_bits[] = { 0xF000, 0xD000, 0xB000, 0xA000, 0x9000};
+ const u16 udma_bits[] = { 0xF000, 0xD000, 0xB000, 0xA000, 0x9000,
0x8000 };
---
So please do incorporate this patch into gutsy's 2.6.22 kernel. It does reduce boot time on SIS-IDE-chipsets by ~100s. See http://<email address hidden>
Best regards,
Christoph Richter
Changed in linux-source-2.6.22: | |
assignee: | nobody → ubuntu-kernel-storage |
This is the mentioned patch, this time it does really apply cleanly to gutsy's kernel.