linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Driver for Promise PDC42819 SATA/SAS controller
@ 2008-08-15  1:46 Mark Nelson
  2008-08-15 11:10 ` Mikael Pettersson
  0 siblings, 1 reply; 15+ messages in thread
From: Mark Nelson @ 2008-08-15  1:46 UTC (permalink / raw)
  To: linux-ide

Hi All,

I recently bought an MSI K9A2 Platinum motherboard and it has a Promise
PDC42819 SATA/SAS controller onboard. I haven't been able to get the
controller to work with any of the libata sata drivers in mainline
(although I did only try sata_promise, sata_sx4 or ahci; last two I was
doubtful about but I figured it was worth a try).

Has anyone played with this controller under Linux before and can it be
made to work with any of the open source drivers - I would realy like
to use the eSATA and internal SATA ports attached to this controller
(and I don't want to trust my data to the promise binary blob)? Maybe
it's as simple as adding the right PCI ID to sata_promise, but I wasn't
sure what kind of board it should be: 2037x, 2057x, 20319, 40518, 20619,
or maybe some new one...

I'm not sure how important this is but I gathered the following info
about the controller:

References to the controller in the motherboard manual and the
motherboard manufacturer's website: Promise T3 [1]

Written on the actual chip on the motherboard: Promise PDC42819 [2]

This chip is also used on Promise's own FastTrak TX2650 & TX4650
adapters [3] which have "partial open source" drivers [4], [5]. This
driver looks like an open source wrapper around a binary blob (some
fasttrak library for software fake raid, I think).

Having a quick look through the source of Promise's driver, it looks
like the driver has been hacked up out of a driver that was originally
used for fakeraid on ATI and intel southbridges as well as Promise's
SX4 adapter (and some Promise adapter called the OCTOPUSII).

Promise has an open source commitment written on its werbsite [6] but
it just relates to their SuperTrak products (not their FastTrak ones)
and the stex driver.

The following is the hunk of lspci output that refers to the controller:

02:00.0 RAID bus controller [0104]: Promise Technology, Inc. Unknown
device [105a:3f20]
	Subsystem: Micro-Star International Co., Ltd. Unknown device [1462:3716]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR+ <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 10
	Region 0: I/O ports at c800 [size=128]
	Region 2: I/O ports at c400 [size=256]
	Region 3: Memory at fbeff000 (32-bit, non-prefetchable) [size=4K]
	Region 4: Memory at fbec0000 (32-bit, non-prefetchable) [size=128K]
	Region 5: Memory at fbefc000 (32-bit, non-prefetchable) [size=8K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [70] Express (v1) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0
<64ns, L1 <1us
			ClockPM- Suprise- LLActRep- BwNot-
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive-
BWMgmt- ABWMgmt-
	Capabilities: [94] SATA HBA <?>
	Capabilities: [100] Advanced Error Reporting <?>
	Capabilities: [140] Virtual Channel <?>
	Capabilities: [160] Device Serial Number 01-00-00-00-02-00-00-00
	Capabilities: [170] Power Budgeting <?>


Many thanks!

Mark


[1] http://global.msi.com.tw/index.php?func=proddesc&prod_no=1332
[2] http://www.3dnews.ru/_imgdata/img/2008/01/25/72299.jpg
[3] http://www.promise.com/product/product_detail.asp?product_id=191#
[4] http://www.promise.com/support/download/download2_eng.asp?productID=191&category=all&os=100
[5] http://www.promise.com/upload/Support/Driver/FT%20TX4650-2650%20Linux%20Kernl%202.6%20PSC%20v1.1.0.12.tgz
[6] http://www.promise.com/product/linux/linux_eng.asp

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-15  1:46 Driver for Promise PDC42819 SATA/SAS controller Mark Nelson
@ 2008-08-15 11:10 ` Mikael Pettersson
  2008-08-21 12:57   ` Mark Nelson
  0 siblings, 1 reply; 15+ messages in thread
From: Mikael Pettersson @ 2008-08-15 11:10 UTC (permalink / raw)
  To: Mark Nelson; +Cc: linux-ide

Mark Nelson writes:
 > Hi All,
 > 
 > I recently bought an MSI K9A2 Platinum motherboard and it has a Promise
 > PDC42819 SATA/SAS controller onboard. I haven't been able to get the
 > controller to work with any of the libata sata drivers in mainline
 > (although I did only try sata_promise, sata_sx4 or ahci; last two I was
 > doubtful about but I figured it was worth a try).
 > 
 > Has anyone played with this controller under Linux before and can it be
 > made to work with any of the open source drivers - I would realy like
 > to use the eSATA and internal SATA ports attached to this controller
 > (and I don't want to trust my data to the promise binary blob)? Maybe
 > it's as simple as adding the right PCI ID to sata_promise, but I wasn't
 > sure what kind of board it should be: 2037x, 2057x, 20319, 40518, 20619,
 > or maybe some new one...
 > 
 > I'm not sure how important this is but I gathered the following info
 > about the controller:
 > 
 > References to the controller in the motherboard manual and the
 > motherboard manufacturer's website: Promise T3 [1]
 > 
 > Written on the actual chip on the motherboard: Promise PDC42819 [2]
 > 
 > This chip is also used on Promise's own FastTrak TX2650 & TX4650
 > adapters [3] which have "partial open source" drivers [4], [5]. This
 > driver looks like an open source wrapper around a binary blob (some
 > fasttrak library for software fake raid, I think).
 > 
 > Having a quick look through the source of Promise's driver, it looks
 > like the driver has been hacked up out of a driver that was originally
 > used for fakeraid on ATI and intel southbridges as well as Promise's
 > SX4 adapter (and some Promise adapter called the OCTOPUSII).
 > 
 > Promise has an open source commitment written on its werbsite [6] but
 > it just relates to their SuperTrak products (not their FastTrak ones)
 > and the stex driver.
 > 
 > The following is the hunk of lspci output that refers to the controller:
 > 
 > 02:00.0 RAID bus controller [0104]: Promise Technology, Inc. Unknown
 > device [105a:3f20]

This is pure speculation, but _if_ it is similar to the chips
driven by sata_promise then it should be close to the 40518 family
(all the other ones are older). So adding that PCI id as a
board_40518 in pdc_ata_pci_tbl[] just might do the trick.

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-15 11:10 ` Mikael Pettersson
@ 2008-08-21 12:57   ` Mark Nelson
  2008-08-21 13:27     ` Mikael Pettersson
  0 siblings, 1 reply; 15+ messages in thread
From: Mark Nelson @ 2008-08-21 12:57 UTC (permalink / raw)
  To: Mikael Pettersson; +Cc: linux-ide

On Fri, Aug 15, 2008 at 9:10 PM, Mikael Pettersson <mikpe@it.uu.se> wrote:
> Mark Nelson writes:
>  > Hi All,
>  >
>  > I recently bought an MSI K9A2 Platinum motherboard and it has a Promise
>  > PDC42819 SATA/SAS controller onboard. I haven't been able to get the
>  > controller to work with any of the libata sata drivers in mainline
>  > (although I did only try sata_promise, sata_sx4 or ahci; last two I was
>  > doubtful about but I figured it was worth a try).
>  >
>  > Has anyone played with this controller under Linux before and can it be
>  > made to work with any of the open source drivers - I would realy like
>  > to use the eSATA and internal SATA ports attached to this controller
>  > (and I don't want to trust my data to the promise binary blob)? Maybe
>  > it's as simple as adding the right PCI ID to sata_promise, but I wasn't
>  > sure what kind of board it should be: 2037x, 2057x, 20319, 40518, 20619,
>  > or maybe some new one...
>  >
>  > I'm not sure how important this is but I gathered the following info
>  > about the controller:
>  >
>  > References to the controller in the motherboard manual and the
>  > motherboard manufacturer's website: Promise T3 [1]
>  >
>  > Written on the actual chip on the motherboard: Promise PDC42819 [2]
>  >
>  > This chip is also used on Promise's own FastTrak TX2650 & TX4650
>  > adapters [3] which have "partial open source" drivers [4], [5]. This
>  > driver looks like an open source wrapper around a binary blob (some
>  > fasttrak library for software fake raid, I think).
>  >
>  > Having a quick look through the source of Promise's driver, it looks
>  > like the driver has been hacked up out of a driver that was originally
>  > used for fakeraid on ATI and intel southbridges as well as Promise's
>  > SX4 adapter (and some Promise adapter called the OCTOPUSII).
>  >
>  > Promise has an open source commitment written on its werbsite [6] but
>  > it just relates to their SuperTrak products (not their FastTrak ones)
>  > and the stex driver.
>  >
>  > The following is the hunk of lspci output that refers to the controller:
>  >
>  > 02:00.0 RAID bus controller [0104]: Promise Technology, Inc. Unknown
>  > device [105a:3f20]
>
> This is pure speculation, but _if_ it is similar to the chips
> driven by sata_promise then it should be close to the 40518 family
> (all the other ones are older). So adding that PCI id as a
> board_40518 in pdc_ata_pci_tbl[] just might do the trick.
>
Hi Mikael,

First of all thanks for the reply. It's taken me a while because I
had to get my hands on a spare SATA disk to test with (ended up
with a 60GB eSATA disk).

So, after adding the following PCI ID line:

       { PCI_VDEVICE(PROMISE, 0x3f20), board_40518 },

I can load the module and I get the following in dmesg:

sata_promise 0000:02:00.0: version 2.12
ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 17 (level, low) -> IRQ 17
PCI: Setting latency timer of device 0000:02:00.0 to 64
scsi7 : sata_promise
scsi8 : sata_promise
scsi9 : sata_promise
scsi10 : sata_promise
ata7: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff380 irq 17
ata8: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff280 irq 17
ata9: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff200 irq 17
ata10: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff300 irq 17
ata7: SATA link down (SStatus 0 SControl 0)
ata8: SATA link down (SStatus 0 SControl 0)
ata9: SATA link down (SStatus 0 SControl 0)
ata10: SATA link down (SStatus 0 SControl 0)

So it looks like it's at least found the SATA ports. But something's
not quite right because as soon as I load the module, the hard disk
activity LEDs are constantly on (my motherboard has two LEDs for
any drive activity on the Promise controller).

If I plug the eSATA disk I'm using to test into one of the eSATA
ports of the Promise controller after I've already booted and loaded
the module, I see the following in dmesg:

ata10: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0xe frozen
ata10: hotplug_status 0x40
ata10: hard resetting link
ata10: SATA link down (SStatus 0 SControl 0)
ata10: EH complete
ata10: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0xe frozen
ata10: hotplug_status 0x40
ata10: hard resetting link
ata10: SATA link down (SStatus 0 SControl 0)
ata10: EH complete

But I'm not sure if sata_promise supports hotplug of drives so maybe
that's to be expected.

If I boot with the eSATA drive connected (the drive is found in the
Promise FastTrak BIOS), when I load the sata_promise module no hard
disks are found and I get exactly the same output to dmesg as the
first example I showed above.

Is there some way I can turn on more debugging output in the
sata_promise driver or libata?

And (possibly too early to tell, but) does this look promising (no pun
intended)?

Many thanks!

Mark.

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-21 12:57   ` Mark Nelson
@ 2008-08-21 13:27     ` Mikael Pettersson
  2008-08-22  0:10       ` Mark Nelson
  0 siblings, 1 reply; 15+ messages in thread
From: Mikael Pettersson @ 2008-08-21 13:27 UTC (permalink / raw)
  To: Mark Nelson; +Cc: Mikael Pettersson, linux-ide

Mark Nelson writes:
 > On Fri, Aug 15, 2008 at 9:10 PM, Mikael Pettersson <mikpe@it.uu.se> wrote:
 > > Mark Nelson writes:
 > >  > Hi All,
 > >  >
 > >  > I recently bought an MSI K9A2 Platinum motherboard and it has a Promise
 > >  > PDC42819 SATA/SAS controller onboard. I haven't been able to get the
 > >  > controller to work with any of the libata sata drivers in mainline
 > >  > (although I did only try sata_promise, sata_sx4 or ahci; last two I was
 > >  > doubtful about but I figured it was worth a try).
 > >  >
 > >  > Has anyone played with this controller under Linux before and can it be
 > >  > made to work with any of the open source drivers - I would realy like
 > >  > to use the eSATA and internal SATA ports attached to this controller
 > >  > (and I don't want to trust my data to the promise binary blob)? Maybe
 > >  > it's as simple as adding the right PCI ID to sata_promise, but I wasn't
 > >  > sure what kind of board it should be: 2037x, 2057x, 20319, 40518, 20619,
 > >  > or maybe some new one...
 > >  >
 > >  > I'm not sure how important this is but I gathered the following info
 > >  > about the controller:
 > >  >
 > >  > References to the controller in the motherboard manual and the
 > >  > motherboard manufacturer's website: Promise T3 [1]
 > >  >
 > >  > Written on the actual chip on the motherboard: Promise PDC42819 [2]
 > >  >
 > >  > This chip is also used on Promise's own FastTrak TX2650 & TX4650
 > >  > adapters [3] which have "partial open source" drivers [4], [5]. This
 > >  > driver looks like an open source wrapper around a binary blob (some
 > >  > fasttrak library for software fake raid, I think).
 > >  >
 > >  > Having a quick look through the source of Promise's driver, it looks
 > >  > like the driver has been hacked up out of a driver that was originally
 > >  > used for fakeraid on ATI and intel southbridges as well as Promise's
 > >  > SX4 adapter (and some Promise adapter called the OCTOPUSII).
 > >  >
 > >  > Promise has an open source commitment written on its werbsite [6] but
 > >  > it just relates to their SuperTrak products (not their FastTrak ones)
 > >  > and the stex driver.
 > >  >
 > >  > The following is the hunk of lspci output that refers to the controller:
 > >  >
 > >  > 02:00.0 RAID bus controller [0104]: Promise Technology, Inc. Unknown
 > >  > device [105a:3f20]
 > >
 > > This is pure speculation, but _if_ it is similar to the chips
 > > driven by sata_promise then it should be close to the 40518 family
 > > (all the other ones are older). So adding that PCI id as a
 > > board_40518 in pdc_ata_pci_tbl[] just might do the trick.
 > >
 > Hi Mikael,
 > 
 > First of all thanks for the reply. It's taken me a while because I
 > had to get my hands on a spare SATA disk to test with (ended up
 > with a 60GB eSATA disk).
 > 
 > So, after adding the following PCI ID line:
 > 
 >        { PCI_VDEVICE(PROMISE, 0x3f20), board_40518 },
 > 
 > I can load the module and I get the following in dmesg:
 > 
 > sata_promise 0000:02:00.0: version 2.12
 > ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 17 (level, low) -> IRQ 17
 > PCI: Setting latency timer of device 0000:02:00.0 to 64
 > scsi7 : sata_promise
 > scsi8 : sata_promise
 > scsi9 : sata_promise
 > scsi10 : sata_promise
 > ata7: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff380 irq 17
 > ata8: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff280 irq 17
 > ata9: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff200 irq 17
 > ata10: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff300 irq 17
 > ata7: SATA link down (SStatus 0 SControl 0)
 > ata8: SATA link down (SStatus 0 SControl 0)
 > ata9: SATA link down (SStatus 0 SControl 0)
 > ata10: SATA link down (SStatus 0 SControl 0)
 > 
 > So it looks like it's at least found the SATA ports. But something's
 > not quite right because as soon as I load the module, the hard disk
 > activity LEDs are constantly on (my motherboard has two LEDs for
 > any drive activity on the Promise controller).
 > 
 > If I plug the eSATA disk I'm using to test into one of the eSATA
 > ports of the Promise controller after I've already booted and loaded
 > the module, I see the following in dmesg:
 > 
 > ata10: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0xe frozen
 > ata10: hotplug_status 0x40
 > ata10: hard resetting link
 > ata10: SATA link down (SStatus 0 SControl 0)
 > ata10: EH complete
 > ata10: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0xe frozen
 > ata10: hotplug_status 0x40
 > ata10: hard resetting link
 > ata10: SATA link down (SStatus 0 SControl 0)
 > ata10: EH complete
 > 
 > But I'm not sure if sata_promise supports hotplug of drives so maybe
 > that's to be expected.
 > 
 > If I boot with the eSATA drive connected (the drive is found in the
 > Promise FastTrak BIOS), when I load the sata_promise module no hard
 > disks are found and I get exactly the same output to dmesg as the
 > first example I showed above.
 > 
 > Is there some way I can turn on more debugging output in the
 > sata_promise driver or libata?
 > 
 > And (possibly too early to tell, but) does this look promising (no pun
 > intended)?

Not so promising. It didn't "find" the SATA ports, those addresses
are a function of the PCI BARs and the board type we assign to the
PCI ID, and we just guessed the board type.

sata_promise does support hotplugging (since 2.6.22 or so), but the
messages you got do not indicate successful hotplugging. In particular,
you should see "link up" not "link down".

It does look like 0x3f20 is fairly different from previous chips.
But without docs or a reference driver I cannot really say what it
would take to support it, sorry.

/Mikael

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-21 13:27     ` Mikael Pettersson
@ 2008-08-22  0:10       ` Mark Nelson
  2008-08-22 16:43         ` Mikael Pettersson
  0 siblings, 1 reply; 15+ messages in thread
From: Mark Nelson @ 2008-08-22  0:10 UTC (permalink / raw)
  To: Mikael Pettersson; +Cc: linux-ide

On Thu, Aug 21, 2008 at 11:27 PM, Mikael Pettersson <mikpe@it.uu.se> wrote:
> Mark Nelson writes:
>  > On Fri, Aug 15, 2008 at 9:10 PM, Mikael Pettersson <mikpe@it.uu.se> wrote:
>  > > Mark Nelson writes:
>  > >  > Hi All,
>  > >  >
>  > >  > I recently bought an MSI K9A2 Platinum motherboard and it has a Promise
>  > >  > PDC42819 SATA/SAS controller onboard. I haven't been able to get the
>  > >  > controller to work with any of the libata sata drivers in mainline
>  > >  > (although I did only try sata_promise, sata_sx4 or ahci; last two I was
>  > >  > doubtful about but I figured it was worth a try).
>  > >  >
>  > >  > Has anyone played with this controller under Linux before and can it be
>  > >  > made to work with any of the open source drivers - I would realy like
>  > >  > to use the eSATA and internal SATA ports attached to this controller
>  > >  > (and I don't want to trust my data to the promise binary blob)? Maybe
>  > >  > it's as simple as adding the right PCI ID to sata_promise, but I wasn't
>  > >  > sure what kind of board it should be: 2037x, 2057x, 20319, 40518, 20619,
>  > >  > or maybe some new one...
>  > >  >
>  > >  > I'm not sure how important this is but I gathered the following info
>  > >  > about the controller:
>  > >  >
>  > >  > References to the controller in the motherboard manual and the
>  > >  > motherboard manufacturer's website: Promise T3 [1]
>  > >  >
>  > >  > Written on the actual chip on the motherboard: Promise PDC42819 [2]
>  > >  >
>  > >  > This chip is also used on Promise's own FastTrak TX2650 & TX4650
>  > >  > adapters [3] which have "partial open source" drivers [4], [5]. This
>  > >  > driver looks like an open source wrapper around a binary blob (some
>  > >  > fasttrak library for software fake raid, I think).
>  > >  >
>  > >  > Having a quick look through the source of Promise's driver, it looks
>  > >  > like the driver has been hacked up out of a driver that was originally
>  > >  > used for fakeraid on ATI and intel southbridges as well as Promise's
>  > >  > SX4 adapter (and some Promise adapter called the OCTOPUSII).
>  > >  >
>  > >  > Promise has an open source commitment written on its werbsite [6] but
>  > >  > it just relates to their SuperTrak products (not their FastTrak ones)
>  > >  > and the stex driver.
>  > >  >
>  > >  > The following is the hunk of lspci output that refers to the controller:
>  > >  >
>  > >  > 02:00.0 RAID bus controller [0104]: Promise Technology, Inc. Unknown
>  > >  > device [105a:3f20]
>  > >
>  > > This is pure speculation, but _if_ it is similar to the chips
>  > > driven by sata_promise then it should be close to the 40518 family
>  > > (all the other ones are older). So adding that PCI id as a
>  > > board_40518 in pdc_ata_pci_tbl[] just might do the trick.
>  > >
>  > Hi Mikael,
>  >
>  > First of all thanks for the reply. It's taken me a while because I
>  > had to get my hands on a spare SATA disk to test with (ended up
>  > with a 60GB eSATA disk).
>  >
>  > So, after adding the following PCI ID line:
>  >
>  >        { PCI_VDEVICE(PROMISE, 0x3f20), board_40518 },
>  >
>  > I can load the module and I get the following in dmesg:
>  >
>  > sata_promise 0000:02:00.0: version 2.12
>  > ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 17 (level, low) -> IRQ 17
>  > PCI: Setting latency timer of device 0000:02:00.0 to 64
>  > scsi7 : sata_promise
>  > scsi8 : sata_promise
>  > scsi9 : sata_promise
>  > scsi10 : sata_promise
>  > ata7: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff380 irq 17
>  > ata8: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff280 irq 17
>  > ata9: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff200 irq 17
>  > ata10: SATA max UDMA/133 mmio m4096@0xfbeff000 ata 0xfbeff300 irq 17
>  > ata7: SATA link down (SStatus 0 SControl 0)
>  > ata8: SATA link down (SStatus 0 SControl 0)
>  > ata9: SATA link down (SStatus 0 SControl 0)
>  > ata10: SATA link down (SStatus 0 SControl 0)
>  >
>  > So it looks like it's at least found the SATA ports. But something's
>  > not quite right because as soon as I load the module, the hard disk
>  > activity LEDs are constantly on (my motherboard has two LEDs for
>  > any drive activity on the Promise controller).
>  >
>  > If I plug the eSATA disk I'm using to test into one of the eSATA
>  > ports of the Promise controller after I've already booted and loaded
>  > the module, I see the following in dmesg:
>  >
>  > ata10: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0xe frozen
>  > ata10: hotplug_status 0x40
>  > ata10: hard resetting link
>  > ata10: SATA link down (SStatus 0 SControl 0)
>  > ata10: EH complete
>  > ata10: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0xe frozen
>  > ata10: hotplug_status 0x40
>  > ata10: hard resetting link
>  > ata10: SATA link down (SStatus 0 SControl 0)
>  > ata10: EH complete
>  >
>  > But I'm not sure if sata_promise supports hotplug of drives so maybe
>  > that's to be expected.
>  >
>  > If I boot with the eSATA drive connected (the drive is found in the
>  > Promise FastTrak BIOS), when I load the sata_promise module no hard
>  > disks are found and I get exactly the same output to dmesg as the
>  > first example I showed above.
>  >
>  > Is there some way I can turn on more debugging output in the
>  > sata_promise driver or libata?
>  >
>  > And (possibly too early to tell, but) does this look promising (no pun
>  > intended)?
>
> Not so promising. It didn't "find" the SATA ports, those addresses
> are a function of the PCI BARs and the board type we assign to the
> PCI ID, and we just guessed the board type.

Ahhh, that's not so promising at all then...

>
> sata_promise does support hotplugging (since 2.6.22 or so), but the
> messages you got do not indicate successful hotplugging. In particular,
> you should see "link up" not "link down".
>
> It does look like 0x3f20 is fairly different from previous chips.

Yes, I was a bit worried when I noticed that the majority of
Promise controllers actually had a Marvell logo on them
and this one didn't...

> But without docs or a reference driver I cannot really say what it
> would take to support it, sorry.

Yeah, I figured as much after reading that hardware docs
are only available under NDA... I do have Promise's "partial
open source driver" all working with the controller; but I
don't think that's what you meant by reference driver, is it?

Thanks!

Mark

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-22  0:10       ` Mark Nelson
@ 2008-08-22 16:43         ` Mikael Pettersson
  2008-08-22 20:57           ` Jeff Garzik
  0 siblings, 1 reply; 15+ messages in thread
From: Mikael Pettersson @ 2008-08-22 16:43 UTC (permalink / raw)
  To: Mark Nelson; +Cc: Mikael Pettersson, linux-ide

Mark Nelson writes:
 > > But without docs or a reference driver I cannot really say what it
 > > would take to support it, sorry.
 > 
 > Yeah, I figured as much after reading that hardware docs
 > are only available under NDA... I do have Promise's "partial
 > open source driver" all working with the controller; but I
 > don't think that's what you meant by reference driver, is it?

No. Promise's partial-source drivers sometimes contain some useful
information, like register definitions, but the only useful info
in the TX4650 driver is the PCI ID list for the T3 chip family.

The older SATA150 and SATAII150/SATA300 chips on the other hand
have full source reference drivers, and we also have documentation
for them.

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-22 16:43         ` Mikael Pettersson
@ 2008-08-22 20:57           ` Jeff Garzik
  2008-08-22 22:01             ` Mikael Pettersson
  0 siblings, 1 reply; 15+ messages in thread
From: Jeff Garzik @ 2008-08-22 20:57 UTC (permalink / raw)
  To: Mikael Pettersson; +Cc: Mark Nelson, linux-ide

Mikael Pettersson wrote:
> Mark Nelson writes:
>  > > But without docs or a reference driver I cannot really say what it
>  > > would take to support it, sorry.
>  > 
>  > Yeah, I figured as much after reading that hardware docs
>  > are only available under NDA... I do have Promise's "partial
>  > open source driver" all working with the controller; but I
>  > don't think that's what you meant by reference driver, is it?
> 
> No. Promise's partial-source drivers sometimes contain some useful
> information, like register definitions, but the only useful info
> in the TX4650 driver is the PCI ID list for the T3 chip family.

FWIW there's always the chance it belongs to drivers/scsi/stex.c...

	Jeff




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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-22 20:57           ` Jeff Garzik
@ 2008-08-22 22:01             ` Mikael Pettersson
  2008-08-23  9:23               ` Mark Nelson
  0 siblings, 1 reply; 15+ messages in thread
From: Mikael Pettersson @ 2008-08-22 22:01 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Mikael Pettersson, Mark Nelson, linux-ide

Jeff Garzik writes:
 > Mikael Pettersson wrote:
 > > Mark Nelson writes:
 > >  > > But without docs or a reference driver I cannot really say what it
 > >  > > would take to support it, sorry.
 > >  > 
 > >  > Yeah, I figured as much after reading that hardware docs
 > >  > are only available under NDA... I do have Promise's "partial
 > >  > open source driver" all working with the controller; but I
 > >  > don't think that's what you meant by reference driver, is it?
 > > 
 > > No. Promise's partial-source drivers sometimes contain some useful
 > > information, like register definitions, but the only useful info
 > > in the TX4650 driver is the PCI ID list for the T3 chip family.
 > 
 > FWIW there's always the chance it belongs to drivers/scsi/stex.c...

True, but unfortunately I doubt it as the PCI IDs in the tx4650
(partial) sources bear no resemblance to the ones in stex.c.

The tx4650 driver lists 35xx for octopusII, 630x for napa_fpga, 377x/3Fxx
for T3 (the chip in question), and 662x for SX4, whereas stex.c lists
x350/4302 for shasta, 7250 for vsc (vitesse?), and 8650 for yosemite.

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-22 22:01             ` Mikael Pettersson
@ 2008-08-23  9:23               ` Mark Nelson
  2008-08-23 10:19                 ` Mikael Pettersson
  0 siblings, 1 reply; 15+ messages in thread
From: Mark Nelson @ 2008-08-23  9:23 UTC (permalink / raw)
  To: Mikael Pettersson; +Cc: Jeff Garzik, linux-ide

On Sat, Aug 23, 2008 at 8:01 AM, Mikael Pettersson <mikpe@it.uu.se> wrote:
> Jeff Garzik writes:
>  > Mikael Pettersson wrote:
>  > > Mark Nelson writes:
>  > >  > > But without docs or a reference driver I cannot really say what it
>  > >  > > would take to support it, sorry.
>  > >  >
>  > >  > Yeah, I figured as much after reading that hardware docs
>  > >  > are only available under NDA... I do have Promise's "partial
>  > >  > open source driver" all working with the controller; but I
>  > >  > don't think that's what you meant by reference driver, is it?
>  > >
>  > > No. Promise's partial-source drivers sometimes contain some useful
>  > > information, like register definitions, but the only useful info
>  > > in the TX4650 driver is the PCI ID list for the T3 chip family.
>  >
>  > FWIW there's always the chance it belongs to drivers/scsi/stex.c...
>
> True, but unfortunately I doubt it as the PCI IDs in the tx4650
> (partial) sources bear no resemblance to the ones in stex.c.

Would the other PCI IDs that are found in the tx4650 driver give any
clue as to which other chips the T3 controller is similar to (or does
that just show that Promise likes to reuse the open source wrapper
around their binary blob)?

>
> The tx4650 driver lists 35xx for octopusII, 630x for napa_fpga, 377x/3Fxx
> for T3 (the chip in question), and 662x for SX4, whereas stex.c lists
> x350/4302 for shasta, 7250 for vsc (vitesse?), and 8650 for yosemite.
>

I was hopeful when I first found the STEX4650 as it at least had a similar
model number, but upon further inspection the stex cards all seem to
have Intel XScale I/O processors onboard...

Forgive my ignorance, but does the fact that the T3 controller can also
use SAS disks mean we should be looking for a SCSI driver?

Thanks!

Mark

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-23  9:23               ` Mark Nelson
@ 2008-08-23 10:19                 ` Mikael Pettersson
  2008-08-23 10:40                   ` Mark Nelson
  0 siblings, 1 reply; 15+ messages in thread
From: Mikael Pettersson @ 2008-08-23 10:19 UTC (permalink / raw)
  To: Mark Nelson; +Cc: Mikael Pettersson, Jeff Garzik, linux-ide

Mark Nelson writes:
 > On Sat, Aug 23, 2008 at 8:01 AM, Mikael Pettersson <mikpe@it.uu.se> wrote:
 > > Jeff Garzik writes:
 > >  > Mikael Pettersson wrote:
 > >  > > Mark Nelson writes:
 > >  > >  > > But without docs or a reference driver I cannot really say what it
 > >  > >  > > would take to support it, sorry.
 > >  > >  >
 > >  > >  > Yeah, I figured as much after reading that hardware docs
 > >  > >  > are only available under NDA... I do have Promise's "partial
 > >  > >  > open source driver" all working with the controller; but I
 > >  > >  > don't think that's what you meant by reference driver, is it?
 > >  > >
 > >  > > No. Promise's partial-source drivers sometimes contain some useful
 > >  > > information, like register definitions, but the only useful info
 > >  > > in the TX4650 driver is the PCI ID list for the T3 chip family.
 > >  >
 > >  > FWIW there's always the chance it belongs to drivers/scsi/stex.c...
 > >
 > > True, but unfortunately I doubt it as the PCI IDs in the tx4650
 > > (partial) sources bear no resemblance to the ones in stex.c.
 > 
 > Would the other PCI IDs that are found in the tx4650 driver give any
 > clue as to which other chips the T3 controller is similar to (or does
 > that just show that Promise likes to reuse the open source wrapper
 > around their binary blob)?

The latter. The tx4650 sources lists chips from Intel (AHCI), ATI, and
Marvell, and they are definitely dissimilar to Promise's own chips.

 > Forgive my ignorance, but does the fact that the T3 controller can also
 > use SAS disks mean we should be looking for a SCSI driver?

Promise lists only this one partial-source driver for the tx4650,
and it /is/ a Linux scsi driver.

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-23 10:19                 ` Mikael Pettersson
@ 2008-08-23 10:40                   ` Mark Nelson
  2008-08-23 11:59                     ` Mikael Pettersson
  0 siblings, 1 reply; 15+ messages in thread
From: Mark Nelson @ 2008-08-23 10:40 UTC (permalink / raw)
  To: Mikael Pettersson; +Cc: Jeff Garzik, linux-ide

On Sat, Aug 23, 2008 at 8:19 PM, Mikael Pettersson <mikpe@it.uu.se> wrote:
> Mark Nelson writes:
>  > On Sat, Aug 23, 2008 at 8:01 AM, Mikael Pettersson <mikpe@it.uu.se> wrote:
>  > > Jeff Garzik writes:
>  > >  > Mikael Pettersson wrote:
>  > >  > > Mark Nelson writes:
>  > >  > >  > > But without docs or a reference driver I cannot really say what it
>  > >  > >  > > would take to support it, sorry.
>  > >  > >  >
>  > >  > >  > Yeah, I figured as much after reading that hardware docs
>  > >  > >  > are only available under NDA... I do have Promise's "partial
>  > >  > >  > open source driver" all working with the controller; but I
>  > >  > >  > don't think that's what you meant by reference driver, is it?
>  > >  > >
>  > >  > > No. Promise's partial-source drivers sometimes contain some useful
>  > >  > > information, like register definitions, but the only useful info
>  > >  > > in the TX4650 driver is the PCI ID list for the T3 chip family.
>  > >  >
>  > >  > FWIW there's always the chance it belongs to drivers/scsi/stex.c...
>  > >
>  > > True, but unfortunately I doubt it as the PCI IDs in the tx4650
>  > > (partial) sources bear no resemblance to the ones in stex.c.
>  >
>  > Would the other PCI IDs that are found in the tx4650 driver give any
>  > clue as to which other chips the T3 controller is similar to (or does
>  > that just show that Promise likes to reuse the open source wrapper
>  > around their binary blob)?
>
> The latter. The tx4650 sources lists chips from Intel (AHCI), ATI, and
> Marvell, and they are definitely dissimilar to Promise's own chips.
>
>  > Forgive my ignorance, but does the fact that the T3 controller can also
>  > use SAS disks mean we should be looking for a SCSI driver?
>
> Promise lists only this one partial-source driver for the tx4650,
> and it /is/ a Linux scsi driver.
>

Oh sorry, I meant to ask should we be looking at an in-kernel
(or fully open source driver) that is a SCSI driver that we could make
work with the T3? So maybe my question is actually: does the
fact that this controller supports SAS disks mean that the
driver for it should be a scsi driver (rather than an ATA driver)?

Thanks!

Mark

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-23 10:40                   ` Mark Nelson
@ 2008-08-23 11:59                     ` Mikael Pettersson
  2008-09-01 11:10                       ` Mark Nelson
  0 siblings, 1 reply; 15+ messages in thread
From: Mikael Pettersson @ 2008-08-23 11:59 UTC (permalink / raw)
  To: Mark Nelson; +Cc: Mikael Pettersson, Jeff Garzik, linux-ide

Mark Nelson writes:
 > >  > Forgive my ignorance, but does the fact that the T3 controller can also
 > >  > use SAS disks mean we should be looking for a SCSI driver?
 > >
 > > Promise lists only this one partial-source driver for the tx4650,
 > > and it /is/ a Linux scsi driver.
 > >
 > 
 > Oh sorry, I meant to ask should we be looking at an in-kernel
 > (or fully open source driver) that is a SCSI driver that we could make
 > work with the T3? So maybe my question is actually: does the
 > fact that this controller supports SAS disks mean that the
 > driver for it should be a scsi driver (rather than an ATA driver)?

The candidate Linux drivers would be ata/sata_promise, ata/sata_sx4,
block/sx8, and scsi/stex. You tried sata_promise, and from looking
at the PCI IDs I doubt the others are likely to drive the T3.

If you can find an open-source T3 driver in some other operating
system, like OpenSolaris, Darwin, or some *BSD, then that would be
great.

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-08-23 11:59                     ` Mikael Pettersson
@ 2008-09-01 11:10                       ` Mark Nelson
  2008-09-01 11:37                         ` Mikael Pettersson
  0 siblings, 1 reply; 15+ messages in thread
From: Mark Nelson @ 2008-09-01 11:10 UTC (permalink / raw)
  To: Mikael Pettersson; +Cc: Jeff Garzik, linux-ide

On Sat, Aug 23, 2008 at 9:59 PM, Mikael Pettersson <mikpe@it.uu.se> wrote:
> Mark Nelson writes:
>  > >  > Forgive my ignorance, but does the fact that the T3 controller can also
>  > >  > use SAS disks mean we should be looking for a SCSI driver?
>  > >
>  > > Promise lists only this one partial-source driver for the tx4650,
>  > > and it /is/ a Linux scsi driver.
>  > >
>  >
>  > Oh sorry, I meant to ask should we be looking at an in-kernel
>  > (or fully open source driver) that is a SCSI driver that we could make
>  > work with the T3? So maybe my question is actually: does the
>  > fact that this controller supports SAS disks mean that the
>  > driver for it should be a scsi driver (rather than an ATA driver)?
>
> The candidate Linux drivers would be ata/sata_promise, ata/sata_sx4,
> block/sx8, and scsi/stex. You tried sata_promise, and from looking
> at the PCI IDs I doubt the others are likely to drive the T3.
>
> If you can find an open-source T3 driver in some other operating
> system, like OpenSolaris, Darwin, or some *BSD, then that would be
> great.
>

Okay, so after trying all of the above drivers you suggested (as
well as a few other SAS drivers I found) I figured I'd try AHCI.

And it actually works!

After making the following simple change:

--- linux/drivers/ata/ahci.c_orig	2008-09-01 18:42:26.000000000 +1000
+++ linux/drivers/ata/ahci.c	2008-09-01 19:41:29.000000000 +1000
@@ -542,6 +542,9 @@ static const struct pci_device_id ahci_p
 	{ PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv },	/* 6145 */
 	{ PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv },	/* 6121 */

+	/* Promise */
+	{ PCI_VDEVICE(PROMISE, 0x3f20), board_ahci },		/* T3 */
+
 	/* Generic, PCI class code for AHCI */
 	{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
 	  PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci },


the ahci driver finds the four SATA ports connected to the T3
controller:

ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 17 (level, low) -> IRQ 17
ahci 0000:02:00.0: AHCI 0001.0100 32 slots 4 ports 3 Gbps 0xf impl RAID mode
ahci 0000:02:00.0: flags: 64bit ncq sntf ilck pm led clo pmp pio slum part
PCI: Setting latency timer of device 0000:02:00.0 to 64
scsi4 : ahci
scsi5 : ahci
scsi6 : ahci
scsi7 : ahci
ata5: SATA max UDMA/133 abar m8192@0xfbefc000 port 0xfbefc100 irq 17
ata6: SATA max UDMA/133 abar m8192@0xfbefc000 port 0xfbefc180 irq 17
ata7: SATA max UDMA/133 abar m8192@0xfbefc000 port 0xfbefc200 irq 17
ata8: SATA max UDMA/133 abar m8192@0xfbefc000 port 0xfbefc280 irq 17
ata5: SATA link down (SStatus 0 SControl 300)
ata6: SATA link down (SStatus 0 SControl 300)
ata7: SATA link down (SStatus 0 SControl 300)
ata8: SATA link down (SStatus 0 SControl 300)

and when I connect a drive to the eSATA port it's detected
and I can mount it and use it:

ata7: exception Emask 0x10 SAct 0x0 SErr 0x4050000 action 0xe frozen
ata7: irq_stat 0x00000040, connection status changed
ata7: SError: { PHYRdyChg CommWake DevExch }
ata7: hard resetting link
ata7: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata7.00: ATA-7: HTS721060G9SA00, MC3IC10H, max UDMA/100
ata7.00: 117210240 sectors, multi 0: LBA48
ata7.00: configured for UDMA/100
ata7: EH complete
scsi 6:0:0:0: Direct-Access     ATA      HTS721060G9SA00  MC3I PQ: 0 ANSI: 5
sd 6:0:0:0: [sdb] 117210240 512-byte hardware sectors (60012 MB)
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't
support DPO or FUA
sd 6:0:0:0: [sdb] 117210240 512-byte hardware sectors (60012 MB)
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't
support DPO or FUA
 sdb: sdb1
sd 6:0:0:0: [sdb] Attached SCSI disk
sd 6:0:0:0: Attached scsi generic sg3 type 0
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sdb1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.

I am however not so sure about the SError line above -
perhaps this Promise chip doesn't correctly implement all
of AHCI and I should be using something other than
"board_ahci"?

This feels like a good start - I've been copying large amounts
of data over to the disk and it seems to be working - I can
play back movie files from there and diff doesn't find any
differences between the copied files and the original.

I'm not sure whether this is frowned upon but I didn't exactly
just stumble upon trying AHCI: after not having any luck with
the in-kernel drivers I began examining Promise's binary blob.
And today I came across a function called
"T3DisableAHCIMode" which made me think that the chips
native mode could be AHCI (when it's not setup to be used
with Promise's software raid).

Thanks!

Mark

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-09-01 11:10                       ` Mark Nelson
@ 2008-09-01 11:37                         ` Mikael Pettersson
  2008-09-01 12:04                           ` Mark Nelson
  0 siblings, 1 reply; 15+ messages in thread
From: Mikael Pettersson @ 2008-09-01 11:37 UTC (permalink / raw)
  To: Mark Nelson; +Cc: Mikael Pettersson, Jeff Garzik, linux-ide

Mark Nelson writes:
 > On Sat, Aug 23, 2008 at 9:59 PM, Mikael Pettersson <mikpe@it.uu.se> wrote:
 > > Mark Nelson writes:
 > >  > >  > Forgive my ignorance, but does the fact that the T3 controller can also
 > >  > >  > use SAS disks mean we should be looking for a SCSI driver?
 > >  > >
 > >  > > Promise lists only this one partial-source driver for the tx4650,
 > >  > > and it /is/ a Linux scsi driver.
 > >  > >
 > >  >
 > >  > Oh sorry, I meant to ask should we be looking at an in-kernel
 > >  > (or fully open source driver) that is a SCSI driver that we could make
 > >  > work with the T3? So maybe my question is actually: does the
 > >  > fact that this controller supports SAS disks mean that the
 > >  > driver for it should be a scsi driver (rather than an ATA driver)?
 > >
 > > The candidate Linux drivers would be ata/sata_promise, ata/sata_sx4,
 > > block/sx8, and scsi/stex. You tried sata_promise, and from looking
 > > at the PCI IDs I doubt the others are likely to drive the T3.
 > >
 > > If you can find an open-source T3 driver in some other operating
 > > system, like OpenSolaris, Darwin, or some *BSD, then that would be
 > > great.
 > >
 > 
 > Okay, so after trying all of the above drivers you suggested (as
 > well as a few other SAS drivers I found) I figured I'd try AHCI.
 > 
 > And it actually works!
 > 
 > After making the following simple change:
 > 
 > --- linux/drivers/ata/ahci.c_orig	2008-09-01 18:42:26.000000000 +1000
 > +++ linux/drivers/ata/ahci.c	2008-09-01 19:41:29.000000000 +1000
 > @@ -542,6 +542,9 @@ static const struct pci_device_id ahci_p
 >  	{ PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv },	/* 6145 */
 >  	{ PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv },	/* 6121 */
 > 
 > +	/* Promise */
 > +	{ PCI_VDEVICE(PROMISE, 0x3f20), board_ahci },		/* T3 */
 > +
 >  	/* Generic, PCI class code for AHCI */
 >  	{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
 >  	  PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci },

Nice detective work. At least now the chip is usable.

/Mikael

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

* Re: Driver for Promise PDC42819 SATA/SAS controller
  2008-09-01 11:37                         ` Mikael Pettersson
@ 2008-09-01 12:04                           ` Mark Nelson
  0 siblings, 0 replies; 15+ messages in thread
From: Mark Nelson @ 2008-09-01 12:04 UTC (permalink / raw)
  To: Mikael Pettersson; +Cc: Jeff Garzik, linux-ide

On Mon, Sep 1, 2008 at 9:37 PM, Mikael Pettersson <mikpe@it.uu.se> wrote:
> Mark Nelson writes:
>  > On Sat, Aug 23, 2008 at 9:59 PM, Mikael Pettersson <mikpe@it.uu.se> wrote:
>  > > Mark Nelson writes:
>  > >  > >  > Forgive my ignorance, but does the fact that the T3 controller can also
>  > >  > >  > use SAS disks mean we should be looking for a SCSI driver?
>  > >  > >
>  > >  > > Promise lists only this one partial-source driver for the tx4650,
>  > >  > > and it /is/ a Linux scsi driver.
>  > >  > >
>  > >  >
>  > >  > Oh sorry, I meant to ask should we be looking at an in-kernel
>  > >  > (or fully open source driver) that is a SCSI driver that we could make
>  > >  > work with the T3? So maybe my question is actually: does the
>  > >  > fact that this controller supports SAS disks mean that the
>  > >  > driver for it should be a scsi driver (rather than an ATA driver)?
>  > >
>  > > The candidate Linux drivers would be ata/sata_promise, ata/sata_sx4,
>  > > block/sx8, and scsi/stex. You tried sata_promise, and from looking
>  > > at the PCI IDs I doubt the others are likely to drive the T3.
>  > >
>  > > If you can find an open-source T3 driver in some other operating
>  > > system, like OpenSolaris, Darwin, or some *BSD, then that would be
>  > > great.
>  > >
>  >
>  > Okay, so after trying all of the above drivers you suggested (as
>  > well as a few other SAS drivers I found) I figured I'd try AHCI.
>  >
>  > And it actually works!
>  >
>  > After making the following simple change:
>  >
>  > --- linux/drivers/ata/ahci.c_orig    2008-09-01 18:42:26.000000000 +1000
>  > +++ linux/drivers/ata/ahci.c 2008-09-01 19:41:29.000000000 +1000
>  > @@ -542,6 +542,9 @@ static const struct pci_device_id ahci_p
>  >      { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv },        /* 6145 */
>  >      { PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv },        /* 6121 */
>  >
>  > +    /* Promise */
>  > +    { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci },           /* T3 */
>  > +
>  >      /* Generic, PCI class code for AHCI */
>  >      { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
>  >        PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci },
>
> Nice detective work. At least now the chip is usable.
>
> /Mikael
>

Thanks! It still might need a bit of tweaking and input from
the ahci guys but I'm really happy now that I can use those
extra ports.

Mark

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

end of thread, other threads:[~2008-09-01 12:04 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-15  1:46 Driver for Promise PDC42819 SATA/SAS controller Mark Nelson
2008-08-15 11:10 ` Mikael Pettersson
2008-08-21 12:57   ` Mark Nelson
2008-08-21 13:27     ` Mikael Pettersson
2008-08-22  0:10       ` Mark Nelson
2008-08-22 16:43         ` Mikael Pettersson
2008-08-22 20:57           ` Jeff Garzik
2008-08-22 22:01             ` Mikael Pettersson
2008-08-23  9:23               ` Mark Nelson
2008-08-23 10:19                 ` Mikael Pettersson
2008-08-23 10:40                   ` Mark Nelson
2008-08-23 11:59                     ` Mikael Pettersson
2008-09-01 11:10                       ` Mark Nelson
2008-09-01 11:37                         ` Mikael Pettersson
2008-09-01 12:04                           ` Mark Nelson

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).