linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ICH Intel PATA short cable override...
@ 2007-09-04 12:37 Daniel J Blueman
  2007-09-05  6:12 ` Andrey Panin
  2007-09-06  0:42 ` Alan Cox
  0 siblings, 2 replies; 8+ messages in thread
From: Daniel J Blueman @ 2007-09-04 12:37 UTC (permalink / raw)
  To: Tejun Heo, jgarzik; +Cc: linux-ide, Linux Kernel

We see that in ata_piix.c, there is a whitelist for (laptop) Intel ICH
controllers with short cables, tied to specific vendor subsystem IDs.
Since my mini-ITX Ibase MI910F has the subsystem IDs specified as
Intel [1], this is unusable.

I can't find another existing mechanism to add short cable
information, to allow UDMA/66 for my on-board CF socket.

Do you suggest I cook a patch to pass a kernel argument eg 'ich=short'
or 'pata=short', or can you think of a better mechanism?

Thanks,
  Daniel

--- [1]

# lspci -vs 00:1f.2
00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E)
SATA IDE Controller (rev 03) (prog-if 80 [Master])
        Subsystem: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA
IDE Controller

# lspci -vns 00:1f.2
00:1f.2 0101: 8086:2828 (rev 03) (prog-if 80 [Master])
        Subsystem: 8086:2828
-- 
Daniel J Blueman

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ICH Intel PATA short cable override...
  2007-09-04 12:37 ICH Intel PATA short cable override Daniel J Blueman
@ 2007-09-05  6:12 ` Andrey Panin
  2007-09-06  0:42 ` Alan Cox
  1 sibling, 0 replies; 8+ messages in thread
From: Andrey Panin @ 2007-09-05  6:12 UTC (permalink / raw)
  To: Daniel J Blueman; +Cc: Tejun Heo, jgarzik, linux-ide, Linux Kernel

[-- Attachment #1: Type: text/plain, Size: 1507 bytes --]

On 247, 09 04, 2007 at 01:37:22PM +0100, Daniel J Blueman wrote:
> We see that in ata_piix.c, there is a whitelist for (laptop) Intel ICH
> controllers with short cables, tied to specific vendor subsystem IDs.
> Since my mini-ITX Ibase MI910F has the subsystem IDs specified as
> Intel [1], this is unusable.
> 
> I can't find another existing mechanism to add short cable
> information, to allow UDMA/66 for my on-board CF socket.

If this board has useful DMI information, you can add DMI quirk for it.
You can look at pata_via.c or pata_ali.c for example.

> Do you suggest I cook a patch to pass a kernel argument eg 'ich=short'
> or 'pata=short', or can you think of a better mechanism?
> 
> Thanks,
>   Daniel
> 
> --- [1]
> 
> # lspci -vs 00:1f.2
> 00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E)
> SATA IDE Controller (rev 03) (prog-if 80 [Master])
>         Subsystem: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA
> IDE Controller
> 
> # lspci -vns 00:1f.2
> 00:1f.2 0101: 8086:2828 (rev 03) (prog-if 80 [Master])
>         Subsystem: 8086:2828
> -- 
> Daniel J Blueman
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

-- 
Andrey Panin		| Linux and UNIX system administrator
pazke@donpac.ru		| PGP key: wwwkeys.pgp.net

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ICH Intel PATA short cable override...
  2007-09-04 12:37 ICH Intel PATA short cable override Daniel J Blueman
  2007-09-05  6:12 ` Andrey Panin
@ 2007-09-06  0:42 ` Alan Cox
  2007-09-06  2:20   ` Mark Lord
  1 sibling, 1 reply; 8+ messages in thread
From: Alan Cox @ 2007-09-06  0:42 UTC (permalink / raw)
  To: Daniel J Blueman; +Cc: Tejun Heo, jgarzik, linux-ide, Linux Kernel

On Tue, 4 Sep 2007 13:37:22 +0100
"Daniel J Blueman" <daniel.blueman@gmail.com> wrote:

> We see that in ata_piix.c, there is a whitelist for (laptop) Intel ICH
> controllers with short cables, tied to specific vendor subsystem IDs.
> Since my mini-ITX Ibase MI910F has the subsystem IDs specified as
> Intel [1], this is unusable.
> 
> I can't find another existing mechanism to add short cable
> information, to allow UDMA/66 for my on-board CF socket.

DMI is the other approach (if your box has sane responses to the
dmidecode command we can do this). 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ICH Intel PATA short cable override...
  2007-09-06  0:42 ` Alan Cox
@ 2007-09-06  2:20   ` Mark Lord
  2007-09-06  7:59     ` Daniel J Blueman
  2007-09-07 23:19     ` Jeff Garzik
  0 siblings, 2 replies; 8+ messages in thread
From: Mark Lord @ 2007-09-06  2:20 UTC (permalink / raw)
  To: Alan Cox; +Cc: Daniel J Blueman, Tejun Heo, jgarzik, linux-ide, Linux Kernel

Alan Cox wrote:
> On Tue, 4 Sep 2007 13:37:22 +0100
> "Daniel J Blueman" <daniel.blueman@gmail.com> wrote:
> 
>> We see that in ata_piix.c, there is a whitelist for (laptop) Intel ICH
>> controllers with short cables, tied to specific vendor subsystem IDs.
>> Since my mini-ITX Ibase MI910F has the subsystem IDs specified as
>> Intel [1], this is unusable.
>>
>> I can't find another existing mechanism to add short cable
>> information, to allow UDMA/66 for my on-board CF socket.
> 
> DMI is the other approach (if your box has sane responses to the
> dmidecode command we can do this). 

No, something more flexible is needed here.

For example, I have a Mini-ITX server here, which I personally have
equipped with a 3" 40W IDE cable that connects to a notebook drive.

The system currently uses UDMA just fine with the IDE drivers,
but I have not been able to convert it to use the (stock) libata drivers
because of this silly lack of end-user control.

We really need an override for this -- embedded folks would also apprecaate one.
Ditto for selecting transfer modes.

Cheers

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ICH Intel PATA short cable override...
  2007-09-06  2:20   ` Mark Lord
@ 2007-09-06  7:59     ` Daniel J Blueman
  2007-09-07 23:19     ` Jeff Garzik
  1 sibling, 0 replies; 8+ messages in thread
From: Daniel J Blueman @ 2007-09-06  7:59 UTC (permalink / raw)
  To: Mark Lord, Andrey Panin, Alan Cox
  Cc: Tejun Heo, jgarzik, linux-ide, Linux Kernel

On 06/09/07, Mark Lord <liml@rtr.ca> wrote:
> Alan Cox wrote:
> > On Tue, 4 Sep 2007 13:37:22 +0100
> > "Daniel J Blueman" <daniel.blueman@gmail.com> wrote:
> >
> >> We see that in ata_piix.c, there is a whitelist for (laptop) Intel ICH
> >> controllers with short cables, tied to specific vendor subsystem IDs.
> >> Since my mini-ITX Ibase MI910F has the subsystem IDs specified as
> >> Intel [1], this is unusable.
> >>
> >> I can't find another existing mechanism to add short cable
> >> information, to allow UDMA/66 for my on-board CF socket.
> >
> > DMI is the other approach (if your box has sane responses to the
> > dmidecode command we can do this).
>
> No, something more flexible is needed here.
>
> For example, I have a Mini-ITX server here, which I personally have
> equipped with a 3" 40W IDE cable that connects to a notebook drive.
>
> The system currently uses UDMA just fine with the IDE drivers,
> but I have not been able to convert it to use the (stock) libata drivers
> because of this silly lack of end-user control.
>
> We really need an override for this -- embedded folks would also apprecaate one.
> Ditto for selecting transfer modes.
>
> Cheers

Thanks for the great suggestions guys. The only useful DMI information
the manufacturer has encoded [1], is the base board model name
('Crestline' here). This feels too generic to use, but the combination
of no vendor name and the 'Crestline' model name may be specific
enough, perhaps?

I do agree with Mark that there should be some override, for normal
PATA ports (as opposed to on-mobo sockets), since the user chooses the
cable. Perhaps we need a port mask in the DMI whitelist too, and a
port-general/specific override mechanism?

Daniel

--- [1]

# dmidecode
SMBIOS 2.3 present.
33 structures occupying 926 bytes.
Table at 0x000F0800.

Handle 0x0000, DMI type 0, 20 bytes
BIOS Information
        Vendor: Phoenix Technologies, LTD
        Version: 6.00 PG
        Release Date: 05/14/2007
        Address: 0xE0000
        Runtime Size: 128 kB
        ROM Size: 1024 kB
        Characteristics:
                ISA is supported
                PCI is supported
                PNP is supported
                APM is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                ESCD support is available
                Boot from CD is supported
                Selectable boot is supported
                BIOS ROM is socketed
                EDD is supported
                5.25"/360 KB floppy services are supported (int 13h)
                5.25"/1.2 MB floppy services are supported (int 13h)
                3.5"/720 KB floppy services are supported (int 13h)
                3.5"/2.88 MB floppy services are supported (int 13h)
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                Printer services are supported (int 17h)
                CGA/mono video services are supported (int 10h)
                ACPI is supported
                USB legacy is supported
                LS-120 boot is supported
                ATAPI Zip drive boot is supported
                BIOS boot specification is supported

Handle 0x0001, DMI type 1, 25 bytes
System Information
        Manufacturer: OEM
        Product Name: OEM
        Version: OEM
        Serial Number: OEM
        UUID: Not Present
        Wake-up Type: Power Switch

Handle 0x0002, DMI type 2, 10 bytes
Base Board Information
        Manufacturer: Unknown
        Product Name: Crestline
        Version: Unknown
        Serial Number:

Handle 0x0003, DMI type 3, 17 bytes
Chassis Information
        Manufacturer: OEM
        Type: Desktop
        Lock: Not Present
        Version: OEM
        Serial Number:
        Asset Tag:
        Boot-up State: Unknown
        Power Supply State: Unknown
        Thermal State: Unknown
        Security Status: Unknown
        OEM Information: 0x00000000

Handle 0x0004, DMI type 4, 35 bytes
Processor Information
        Socket Designation: Socket 423
        Type: Central Processor
        Family: Other
        Manufacturer: Intel
        ID: FA 06 00 00 FF FB EB BF
        Version: Intel(R)
        Voltage: 0.0 V
        External Clock: 200 MHz
        Max Speed: 4000 MHz
        Current Speed: 2000 MHz
        Status: Populated, Enabled
        Upgrade: ZIF Socket
        L1 Cache Handle: 0x0008
        L2 Cache Handle: 0x0009
        L3 Cache Handle: Not Provided
        Serial Number:
        Asset Tag:
        Part Number:

Handle 0x0005, DMI type 5, 20 bytes
Memory Controller Information
        Error Detecting Method: 8-bit Parity
        Error Correcting Capabilities:
                None
        Supported Interleave: One-way Interleave
        Current Interleave: One-way Interleave
        Maximum Memory Module Size: 2048 MB
        Maximum Total Memory Size: 4096 MB
        Supported Speeds:
                Other
        Supported Memory Types:
                DIMM
        Memory Module Voltage: 5.0 V
        Associated Memory Slots: 2
                0x0006
                0x0007
        Enabled Error Correcting Capabilities:
                None

Handle 0x0006, DMI type 6, 12 bytes
Memory Module Information
        Socket Designation: A0
        Bank Connections: 0 1
        Current Speed: Unknown
        Type: DIMM
        Installed Size: 1024 MB (Double-bank Connection)
        Enabled Size: 1024 MB (Double-bank Connection)
        Error Status: OK

Handle 0x0007, DMI type 6, 12 bytes
Memory Module Information
        Socket Designation: A1
        Bank Connections: None
        Current Speed: Unknown
        Type: Unknown
        Installed Size: Not Installed
        Enabled Size: Not Installed
        Error Status: OK

Handle 0x0008, DMI type 7, 19 bytes
Cache Information
        Socket Designation: Internal Cache
        Configuration: Enabled, Not Socketed, Level 1
        Operational Mode: Write Back
        Location: Internal
        Installed Size: 32 KB
        Maximum Size: 32 KB
        Supported SRAM Types:
                Synchronous
        Installed SRAM Type: Synchronous
        Speed: Unknown
        Error Correction Type: Unknown
        System Type: Unknown
        Associativity: Unknown

Handle 0x0009, DMI type 7, 19 bytes
Cache Information
        Socket Designation: External Cache
        Configuration: Enabled, Not Socketed, Level 2
        Operational Mode: Write Back
        Location: External
        Installed Size: 4096 KB
        Maximum Size: 4096 KB
        Supported SRAM Types:
                Synchronous
        Installed SRAM Type: Synchronous
        Speed: Unknown
        Error Correction Type: Unknown
        System Type: Unknown
        Associativity: Unknown

Handle 0x000A, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: PRIMARY IDE
        Internal Connector Type: On Board IDE
        External Reference Designator: Not Specified
        External Connector Type: None
        Port Type: Other

Handle 0x000B, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: SECONDARY IDE
        Internal Connector Type: On Board IDE
        External Reference Designator: Not Specified
        External Connector Type: None
        Port Type: Other

Handle 0x000C, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: FDD
        Internal Connector Type: On Board Floppy
        External Reference Designator: Not Specified
        External Connector Type: None
        Port Type: 8251 FIFO Compatible

Handle 0x000D, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: COM1
        Internal Connector Type: 9 Pin Dual Inline (pin 10 cut)
        External Reference Designator:
        External Connector Type: DB-9 male
        Port Type: Serial Port 16450 Compatible

Handle 0x000E, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: COM2
        Internal Connector Type: 9 Pin Dual Inline (pin 10 cut)
        External Reference Designator:
        External Connector Type: DB-9 male
        Port Type: Serial Port 16450 Compatible

Handle 0x000F, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: LPT1
        Internal Connector Type: DB-25 female
        External Reference Designator:
        External Connector Type: DB-25 female
        Port Type: Parallel Port ECP/EPP

Handle 0x0010, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: Keyboard
        Internal Connector Type: PS/2
        External Reference Designator:
        External Connector Type: PS/2
        Port Type: Keyboard Port

Handle 0x0011, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: PS/2 Mouse
        Internal Connector Type: PS/2
        External Reference Designator:
        External Connector Type: PS/2
        Port Type: Mouse Port

Handle 0x0012, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: Not Specified
        Internal Connector Type: None
        External Reference Designator: USB0
        External Connector Type: Other
        Port Type: USB

Handle 0x0013, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: Not Specified
        Internal Connector Type: None
        External Reference Designator: USB1
        External Connector Type: Other
        Port Type: USB

Handle 0x0014, DMI type 9, 13 bytes
System Slot Information
        Designation: PCI0
        Type: 32-bit PCI
        Current Usage: Available
        Length: Long
        ID: 1
        Characteristics:
                5.0 V is provided
                PME signal is supported

Handle 0x0015, DMI type 9, 13 bytes
System Slot Information
        Designation: PCI1
        Type: 32-bit PCI
        Current Usage: Available
        Length: Long
        ID: 2
        Characteristics:
                5.0 V is provided
                PME signal is supported

Handle 0x0016, DMI type 9, 13 bytes
System Slot Information
        Designation: PCI2
        Type: 32-bit PCI
        Current Usage: In Use
        Length: Long
        ID: 3
        Characteristics:
                5.0 V is provided
                PME signal is supported

Handle 0x0017, DMI type 9, 13 bytes
System Slot Information
        Designation: PCI3
        Type: 32-bit PCI
        Current Usage: In Use
        Length: Long
        ID: 4
        Characteristics:
                5.0 V is provided
                PME signal is supported

Handle 0x0018, DMI type 13, 22 bytes
BIOS Language Information
        Installable Languages: 3
                n|US|iso8859-1
                n|US|iso8859-1
                r|CA|iso8859-1
        Currently Installed Language: n|US|iso8859-1

Handle 0x0019, DMI type 16, 15 bytes
Physical Memory Array
        Location: System Board Or Motherboard
        Use: System Memory
        Error Correction Type: None
        Maximum Capacity: 2 GB
        Error Information Handle: Not Provided
        Number Of Devices: 2

Handle 0x001A, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0019
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 1024 MB
        Form Factor: DIMM
        Set: None
        Locator: A0
        Bank Locator: Bank0/1
        Type: Unknown
        Type Detail: Synchronous
        Speed: Unknown
        Manufacturer: Not Specified
        Serial Number: Not Specified
        Asset Tag: Not Specified
        Part Number: Not Specified

Handle 0x001B, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0019
        Error Information Handle: Not Provided
        Total Width: Unknown
        Data Width: Unknown
        Size: No Module Installed
        Form Factor: DIMM
        Set: None
        Locator: A1
        Bank Locator: Bank2/3
        Type: Unknown
        Type Detail: Unknown
        Speed: Unknown
        Manufacturer: Not Specified
        Serial Number: Not Specified
        Asset Tag: Not Specified
        Part Number: Not Specified

Handle 0x001C, DMI type 19, 15 bytes
Memory Array Mapped Address
        Starting Address: 0x00000000000
        Ending Address: 0x0003FFFFFFF
        Range Size: 1 GB
        Physical Array Handle: 0x0019
        Partition Width: 0

Handle 0x001D, DMI type 20, 19 bytes
Memory Device Mapped Address
        Starting Address: 0x00000000000
        Ending Address: 0x0003FFFFFFF
        Range Size: 1 GB
        Physical Device Handle: 0x001A
        Memory Array Mapped Address Handle: 0x001C
        Partition Row Position: 1

Handle 0x001E, DMI type 20, 19 bytes
Memory Device Mapped Address
        Starting Address: 0x00000000000
        Ending Address: 0x000000003FF
        Range Size: 1 kB
        Physical Device Handle: 0x001B
        Memory Array Mapped Address Handle: 0x001C
        Partition Row Position: 1

Handle 0x001F, DMI type 32, 11 bytes
System Boot Information
        Status: No errors detected

Handle 0x0020, DMI type 127, 4 bytes
End Of Table
-- 
Daniel J Blueman

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ICH Intel PATA short cable override...
  2007-09-06  2:20   ` Mark Lord
  2007-09-06  7:59     ` Daniel J Blueman
@ 2007-09-07 23:19     ` Jeff Garzik
  2007-09-10 12:15       ` Mark Lord
  1 sibling, 1 reply; 8+ messages in thread
From: Jeff Garzik @ 2007-09-07 23:19 UTC (permalink / raw)
  To: Mark Lord; +Cc: Alan Cox, Daniel J Blueman, Tejun Heo, linux-ide, Linux Kernel

Mark Lord wrote:
> Ditto for selecting transfer modes.


Waiting on one thing AFAICS:

	ability to drain/idle all ports +
	issue a command on one port +
	resume normal parallel port operation

SET FEATURES - XFER MODE is special in that it requires all sorts of 
additional controller handling and careful cross-port synchronization.

	Jeff



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ICH Intel PATA short cable override...
  2007-09-07 23:19     ` Jeff Garzik
@ 2007-09-10 12:15       ` Mark Lord
  2007-09-16  7:58         ` Jeff Garzik
  0 siblings, 1 reply; 8+ messages in thread
From: Mark Lord @ 2007-09-10 12:15 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Alan Cox, Daniel J Blueman, Tejun Heo, linux-ide, Linux Kernel

Jeff Garzik wrote:
> Mark Lord wrote:
>> Ditto for selecting transfer modes.
> 
> 
> Waiting on one thing AFAICS:
> 
>     ability to drain/idle all ports +
>     issue a command on one port +
>     resume normal parallel port operation
> 
> SET FEATURES - XFER MODE is special in that it requires all sorts of 
> additional controller handling and careful cross-port synchronization.

Absolutely.

Also note that I'm *not* advocating HDIO_SET_PIO_MODE (and kin) here,
but rather perhaps a sysfs option per-drive.  It is needed, especially for
custom/embedded systems, and I suppose we will get there eventually.  :)

Cheers

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ICH Intel PATA short cable override...
  2007-09-10 12:15       ` Mark Lord
@ 2007-09-16  7:58         ` Jeff Garzik
  0 siblings, 0 replies; 8+ messages in thread
From: Jeff Garzik @ 2007-09-16  7:58 UTC (permalink / raw)
  To: Mark Lord; +Cc: Alan Cox, Daniel J Blueman, Tejun Heo, linux-ide, Linux Kernel

Mark Lord wrote:
> Jeff Garzik wrote:
>> Mark Lord wrote:
>>> Ditto for selecting transfer modes.
>>
>>
>> Waiting on one thing AFAICS:
>>
>>     ability to drain/idle all ports +
>>     issue a command on one port +
>>     resume normal parallel port operation
>>
>> SET FEATURES - XFER MODE is special in that it requires all sorts of 
>> additional controller handling and careful cross-port synchronization.
> 
> Absolutely.
> 
> Also note that I'm *not* advocating HDIO_SET_PIO_MODE (and kin) here,
> but rather perhaps a sysfs option per-drive.  It is needed, especially for
> custom/embedded systems, and I suppose we will get there eventually.  :)

(did I reply to this already?  I forget)

We don't need any sysfs options.  Just normal SG_IO sending a SET 
FEATURES - XFER MODE command to the desired device.

Currently, that [sub-]command is intentionally filtered out because of 
the problems that would ensue.

Once the above EH mods are in place, we simply remove that filter, and 
The Right Thing(tm) happens when you submit an ATA command via normal 
methods.  No need for new sysfs hooks or new ioctls or anything.

	Jeff




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-09-16  7:58 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-04 12:37 ICH Intel PATA short cable override Daniel J Blueman
2007-09-05  6:12 ` Andrey Panin
2007-09-06  0:42 ` Alan Cox
2007-09-06  2:20   ` Mark Lord
2007-09-06  7:59     ` Daniel J Blueman
2007-09-07 23:19     ` Jeff Garzik
2007-09-10 12:15       ` Mark Lord
2007-09-16  7:58         ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).