Skip to contentSkip to conversation

Remove Asus EEE UDMA/33 limitation.

PATCH Dave Jones 3 participants 4 messages May 2, 2008 – May 3, 2008 libata

lore
Share & tools
lore

Dave Jones

author
#0 lore raw

The Asus Eee PC prints this during bootup..

ata2.00: limited to UDMA/33 due to 40-wire cable Which is unfortunate, as it has..
ata2.00: ATA-4: SILICONMOTION SM223AC, , max UDMA/66

I believe there actually is no cable, and the flash is directly connected to the controller.

[root@eee ~]# hdparm -t /dev/sda

/dev/sda:
Timing buffered disk reads: 64 MB in 3.08 seconds = 20.76 MB/sec

With the patch below it returns..

/dev/sda:
Timing buffered disk reads: 76 MB in 3.04 seconds = 25.04 MB/sec

drivers/ata/ata_piix.c renamed from drivers/ata/ata_piix.c~ +1 -0
@@ -716,6 +716,7 @@ struct ich_laptop {
 
 static const struct ich_laptop ich_laptop[] = {
 	/* devid, subvendor, subdev */
+	{ 0x2653, 0x1043, 0x82d8 },	/* ICH6M on Asus Eee PC */
 	{ 0x27DF, 0x0005, 0x0280 },	/* ICH7 on Acer 5602WLMi */
 	{ 0x27DF, 0x1025, 0x0102 },	/* ICH7 on Acer 5602aWLMi */
 	{ 0x27DF, 0x1025, 0x0110 },	/* ICH7 on Acer 3682WLMi */
Signature · 1 line
http://www.codemonkey.org.uk
author
#1 lore raw
Quoted 1 line · Dave Jones

The Asus Eee PC prints this during bootup..

never mind, someone just pointed out 01ce2601e4ba354fe1e25bb940817570d0c8ed4f which does the same thing.

Dave

Signature · 1 line
http://www.codemonkey.org.uk
#2 lore raw
In reply to Dave Jones

drivers/ata/ata_piix.c struct ich_laptop { · line 722

Quoted 6 lines · Dave Jones

static const struct ich_laptop ich_laptop[] = {

drivers/ata/ata_piix.c renamed from drivers/ata/ata_piix.c~ +1 -0
 	/* devid, subvendor, subdev */
+	{ 0x2653, 0x1043, 0x82d8 },	/* ICH6M on Asus Eee PC */
 	{ 0x27DF, 0x0005, 0x0280 },	/* ICH7 on Acer 5602WLMi */
 	{ 0x27DF, 0x1025, 0x0102 },	/* ICH7 on Acer 5602aWLMi */
 	{ 0x27DF, 0x1025, 0x0110 },	/* ICH7 on Acer 3682WLMi */

Don't the ACPI timing methods let us work this out without requiring machine specific knowledge? Or is the concern that some firmware will let us program high modes even if the cabling isn't up to it?

Signature · 1 line
Matthew Garrett | [email protected]
#3 lore raw
Quoted 11 lines · On Sat, 3 May 2008 10:58:17 +0100 Matthew Garrett <[email protected]> wrote:

drivers/ata/ata_piix.c struct ich_laptop { · line 722

Quoted 6 lines · Dave Jones

static const struct ich_laptop ich_laptop[] = {

drivers/ata/ata_piix.c renamed from drivers/ata/ata_piix.c~ +1 -0
 	/* devid, subvendor, subdev */
+	{ 0x2653, 0x1043, 0x82d8 },	/* ICH6M on Asus Eee PC */
 	{ 0x27DF, 0x0005, 0x0280 },	/* ICH7 on Acer 5602WLMi */
 	{ 0x27DF, 0x1025, 0x0102 },	/* ICH7 on Acer 5602aWLMi */
 	{ 0x27DF, 0x1025, 0x0110 },	/* ICH7 on Acer 3682WLMi */

Don't the ACPI timing methods let us work this out without requiring machine specific knowledge?

We don't currently sniff the ACPI timing data on Intel boxes - we can do so and there is a library routine but I'd be worried about the usual standard of BIOS code. Right now we only do it for chipsets which are so braindamaged we have no other choice or where the vendor specifically implemented and intended the ACPI data to be used for this (eg Nvidia)