Skip to contentSkip to conversation

Promise SATA driver GPL'd

DISCUSSION Erik Andersen 11 participants 22 messages Jul 22, 2003 – Aug 27, 2003

lore
Share & tools
lore
#0 lore raw

Some folk I've done some consulting work for bought a zillion Promise SATA cards. They were able to convince Promise to release their SATA driver, which was formerly available only as a binary only kernel module, under the terms of the GPL.

So <drum-roll, trumpets> here it is: the Promise SATA driver for the PDC20318, PDC20375, PDC20378, and PDC20618. This driver is released as-is. It is useful for the

Promise SATA150 TX4
Promise SATA150 TX2plus
Promise SATA 378
Promise Ultra 618

cards. As a temporary download location, the GPL'd driver can be obtained from http://www.busybox.net/pdc-ultra-1.00.0.10.tgz

Have fun! And many thanks to Promise for contributing the driver for their cards!

-Erik

--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--

#1 lore raw
Quoted 4 lines · Erik Andersen

Some folk I've done some consulting work for bought a zillion Promise SATA cards. They were able to convince Promise to release their SATA driver, which was formerly available only as a binary only kernel module, under the terms of the GPL.

That's definitely nice of the vendor.

FWIW it does not include any RAID format support.

Quoted 2 lines

cards. As a temporary download location, the GPL'd driver can be obtained from http://www.busybox.net/pdc-ultra-1.00.0.10.tgz

Bart, Alan, and I have been looking at this. It uses the ancient CAM model, that we don't really want to merge directly in the kernel. It's very close to the libata model, from the user perspective, so life is good.

Jeff

#2 lore raw
Quoted 4 lines · Jeff Garzik

Bart, Alan, and I have been looking at this. It uses the ancient CAM model, that we don't really want to merge directly in the kernel. It's very close to the libata model, from the user perspective, so life is good.

I was reading over your libata driver yesterday. Certainly a lot cleaner than the cam stuff IMHO. Given the info made available via the Promise driver, I expect that I could get an initial libata host adaptor driver hacked together in short order. After all, the Intel one is just 400 lines. So unless you (or anyone else) have already started or would prefer to do the honors, I'll try to hack something together this evening,

-Erik

--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--

#3 lore raw
Quoted 9 lines · Erik Andersen
Quoted 5 lines · Jeff Garzik

Bart, Alan, and I have been looking at this. It uses the ancient CAM model, that we don't really want to merge directly in the kernel. It's very close to the libata model, from the user perspective, so life is good.

Quoted 10 lines

I was reading over your libata driver yesterday. Certainly a lot cleaner than the cam stuff IMHO. Given the info made available via the Promise driver, I expect that I could get an initial libata host adaptor driver hacked together in short order. After all, the Intel one is just 400 lines. So unless you (or anyone else) have already started or would prefer to do the honors, I'll try to hack something together this evening,

I'd be more than happy to test a driver. I'm sure I've got several
pci cards plus a few intel 32, and amd-64 motherboards with promise sata on board.

Signature · 3 lines
Once you have their hardware. Never give it back.
(The First Rule of Hardware Acquisition)
Sam Flory  <[email protected]>
#4 lore raw
In reply to Erik Andersen
Quoted 6 lines · Erik Andersen
Quoted 4 lines · Jeff Garzik

Bart, Alan, and I have been looking at this. It uses the ancient CAM model, that we don't really want to merge directly in the kernel. It's very close to the libata model, from the user perspective, so life is good.

Quoted 7 lines

I was reading over your libata driver yesterday. Certainly a lot cleaner than the cam stuff IMHO. Given the info made available via the Promise driver, I expect that I could get an initial libata host adaptor driver hacked together in short order. After all, the Intel one is just 400 lines. So unless you (or anyone else) have already started or would prefer to do the honors, I'll try to hack something together this evening,

Shoot, that would be great ;-)

For the future, libata will need a tad bit more queueing than is currently supported. But there is enough support in libata right now to handle basic Promise support.

On a legal note, I would prefer that completely new drivers (i.e. no copied code from other sources) be licensing in the same way as libata.c. Maintainer's preference in the end, of course, but I would like to strongly encourage following libata.c's example ;-)

I have a TX2 board, too, so I can test your stuff as well.

Jeff

#5 lore raw
Quoted 9 lines · Jeff Garzik
Quoted 7 lines

I was reading over your libata driver yesterday. Certainly a lot cleaner than the cam stuff IMHO. Given the info made available via the Promise driver, I expect that I could get an initial libata host adaptor driver hacked together in short order. After all, the Intel one is just 400 lines. So unless you (or anyone else) have already started or would prefer to do the honors, I'll try to hack something together this evening,

Shoot, that would be great ;-)

K, I'll give it a try.

Quoted 4 lines

On a legal note, I would prefer that completely new drivers (i.e. no copied code from other sources) be licensing in the same way as libata.c. Maintainer's preference in the end, of course, but I would like to strongly encourage following libata.c's example ;-)

By that I assume you mean osl-1.1 like libata.c, rather than GPL like ata_piix.c.... I expect I may be copying bits and pieces from the Promise driver though. Certainly I'd like to use as much of their header files as seems practical. So it may very well need to stay GPL'd. But I'll see what I can do.

Quoted 1 line

I have a TX2 board, too, so I can test your stuff as well.

Cool. I have a TX2 as well. Hope I don't fry it... :)

-Erik

--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--

#6 lore raw
Quoted 2 lines · Erik Andersen

By that I assume you mean osl-1.1 like libata.c, rather than GPL like ata_piix.c....

Yep :)

Quoted 4 lines

I expect I may be copying bits and pieces
from the Promise driver though. Certainly I'd like to use as much of their header files as seems practical. So it may very well need to stay GPL'd. But I'll see what I can do.

Thanks. If you are so motivated, I tend to think it can work without the Promise headers. For example, there is a distinct naming scheme in libata, and also intentional use of enums rather than macros as constants.

However, that said, you're doing the work, so I'll let you make the call :)

Jeff

#7 lore raw
In reply to Erik Andersen

Dear Erik and Jeff,

Did you make any progress here or were you discouraged by the resulting flamewar?

Does this work in 2.4.x? I have a Tyan Trinity i875P S5101 which I want to use the parallel IDE ports on. They are connected to a PDC20378. Any patches that you think would be reliable? Or should I take the opportunity to return this to the vendor and buy an Intel S845WD1-E instead?

Quoted 24 lines · Erik Andersen
Quoted 9 lines · Jeff Garzik
Quoted 7 lines

I was reading over your libata driver yesterday. Certainly a lot cleaner than the cam stuff IMHO. Given the info made available via the Promise driver, I expect that I could get an initial libata host adaptor driver hacked together in short order. After all, the Intel one is just 400 lines. So unless you (or anyone else) have already started or would prefer to do the honors, I'll try to hack something together this evening,

Shoot, that would be great ;-)

K, I'll give it a try.

Quoted 4 lines

On a legal note, I would prefer that completely new drivers (i.e. no copied code from other sources) be licensing in the same way as libata.c. Maintainer's preference in the end, of course, but I would like to strongly encourage following libata.c's example ;-)

By that I assume you mean osl-1.1 like libata.c, rather than GPL like ata_piix.c.... I expect I may be copying bits and pieces from the Promise driver though. Certainly I'd like to use as much of their header files as seems practical. So it may very well need to stay GPL'd. But I'll see what I can do.

Quoted 3 lines
Quoted 1 line

I have a TX2 board, too, so I can test your stuff as well.

Cool. I have a TX2 as well. Hope I don't fry it... :)

--
Nick Urbanik RHCE nicku(at)vtc.edu.hk
Dept. of Information & Communications Technology Hong Kong Institute of Vocational Education (Tsing Yi)
Tel: (852) 2436 8576, (852) 2436 8713 Fax: (852) 2436 8526
PGP: 53 B6 6D 73 52 EE 1F EE EC F8 21 98 45 1C 23 7B ID: 7529555D
GPG: 7FFA CDC7 5A77 0558 DC7A 790A 16DF EC5B BB9D 2C24 ID: BB9D2C24

#8 lore raw
Quoted 4 lines · Nick Urbanik

Dear Erik and Jeff,

Did you make any progress here or were you discouraged by the resulting flamewar?

hehe... flamewars rarely discourage me :)

Quoted 4 lines

Does this work in 2.4.x? I have a Tyan Trinity i875P S5101 which I want to use the parallel IDE ports on. They are connected to a PDC20378. Any patches that you think would be reliable? Or should I take the opportunity to return this to the vendor and buy an Intel S845WD1-E instead?

Well, the GPL'd Promise driver that was posted will work.

For the future, I'm currently whipping the libata internals into shape so that Promise may be supported. Promise hardware supports native command queueing, a lot like many SCSI adapters.

Jeff

#9 lore raw
Quoted 3 lines · Jeff Garzik

For the future, I'm currently whipping the libata internals into shape so that Promise may be supported. Promise hardware supports native command queueing, a lot like many SCSI adapters.

Is that true even for the older stuff such as a PDC20265?

It appears that FreeBSD 4-STABLE blacklists some older (before-TX2) Promise chips because they apparently lock up when used with tagged command queueing. I haven't yet looked at the ATAng driver merged into FreeBSD 5-CURRENT.

FreeBSD 4-STABLE blacklist code in function ad_tagsupported():
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/ata/ata-disk.c?rev=1.60.2.24&content-type=text/x-cvsweb-markup&only_with_tag=RELENG_4

FreeBSD 5-CURRENT:
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/ata/

Signature · 1 line
Matthias Andree
#10 lore raw
Quoted 7 lines · Matthias Andree
Quoted 1 line · Jeff Garzik

For the future, I'm currently whipping the libata internals into shape so that Promise may be supported. Promise hardware supports native command queueing, a lot like many SCSI adapters.

Is that true even for the older stuff such as a PDC20265?

PATA stuff will continue to be supported via drivers/ide, I'm only shooting for the newer SATA stuff.

Quoted 4 lines

It appears that FreeBSD 4-STABLE blacklists some older (before-TX2) Promise chips because they apparently lock up when used with tagged command queueing. I haven't yet looked at the ATAng driver merged into FreeBSD 5-CURRENT.

ATA tagged command queueing is a bunch of crap. :) I'm not sure whether I want to implement it or not.

I was referring to _native_ command queueing. ATA TCQ is something different. ATA TCQ does not allow multiple outstanding scatter/gather tables to be sent to the host controller. Native command queuing does.

Jeff

#11 lore raw
In reply to Erik Andersen
Quoted 4 lines · Erik Andersen

libata host adaptor driver hacked together in short order. After all, the Intel one is just 400 lines. So unless you (or anyone else) have already started or would prefer to do the honors, I'll try to hack something together this evening,

Just another note, don't be afraid to turn "outb-heavy" functions into hook, that get reimplemented in a Promise-specific manner. ata_pci_init_one will also likely need a bit of work for Promise.

Jeff

#12 lore raw
In reply to Erik Andersen

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Quoted 14 lines · Jeff Garzik
Quoted 4 lines

Bart, Alan, and I have been looking at this. It uses the ancient CAM model, that we don't really want to merge directly in the kernel. It's very close to the libata model, from the user perspective, so life is good.

I was reading over your libata driver yesterday. Certainly a lot cleaner than the cam stuff IMHO. Given the info made available via the Promise driver, I expect that I could get an initial libata host adaptor driver hacked together in short order. After all, the Intel one is just 400 lines. So unless you (or anyone else) have already started or would prefer to do the honors, I'll try to hack something together this evening,

Quoted 1 line

-Erik

Oooh Oooh!!!!

I have an onboard Promise SATA chip - the 30276 (its on an MSI KT4A Ultra board), which gives me two SATA and one PATA ports (only use 2 at a time)...

If you want someone to test... I can slap a PATA drive onto the PATA port, but I've been holding off getting any SATA drives until I can use them under linux, although I'm running out of drive space so this is quite timely... :)

Cheers,

Mark

- --
Mark Watts
Senior Systems Engineer
QinetiQ TIM
St Andrews Road, Malvern
GPG Public Key ID: 455420ED

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE/HoucBn4EFUVUIO0RAmwjAJ9/IY3N+AdOdNmfKwPkPoXfDw+PEgCgm7XD tR56nTVC9b0u8aBZMhWaTag=
=QsVB
-----END PGP SIGNATURE-----

#13 lore raw
In reply to Erik Andersen

It is a HUGE POS!

The obfustication (sp) level is so high you wonder why.
It may be GPL, but only goes to prove a few points that everyone lost on me in the past.

OEM drivers in ATA suck! Their CAM blows goat.

Look at the crap in the stack when Marcelo was suckered into taking a "Promise Patch".

I have already cut all ties with Promise so here is the deal. I no longer have to count the number of fingers on my hand between hand shakes. IE no extras and not shortages.

I wish you well in your adventures in pain.

Andre Hedrick
LAD Storage Consulting Group

Quoted 31 lines · Erik Andersen

Some folk I've done some consulting work for bought a zillion Promise SATA cards. They were able to convince Promise to release their SATA driver, which was formerly available only as a binary only kernel module, under the terms of the GPL.

So <drum-roll, trumpets> here it is: the Promise SATA driver for the PDC20318, PDC20375, PDC20378, and PDC20618. This driver is released as-is. It is useful for the

Promise SATA150 TX4
Promise SATA150 TX2plus
Promise SATA 378
Promise Ultra 618

cards. As a temporary download location, the GPL'd driver can be obtained from http://www.busybox.net/pdc-ultra-1.00.0.10.tgz

Have fun! And many thanks to Promise for contributing the driver for their cards!

-Erik

--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons-- -
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

#14 lore raw

Holy piss Andre, you've got to be one of the funnier kernel guys...

Quoted 60 lines · Andre Hedrick

It is a HUGE POS!

The obfustication (sp) level is so high you wonder why.
It may be GPL, but only goes to prove a few points that everyone lost on me in the past.

OEM drivers in ATA suck! Their CAM blows goat.

Look at the crap in the stack when Marcelo was suckered into taking a "Promise Patch".

I have already cut all ties with Promise so here is the deal. I no longer have to count the number of fingers on my hand between hand shakes. IE no extras and not shortages.

I wish you well in your adventures in pain.

Andre Hedrick
LAD Storage Consulting Group

Quoted 22 lines · Erik Andersen

Some folk I've done some consulting work for bought a zillion Promise SATA cards. They were able to convince Promise to release their SATA driver, which was formerly available only as a binary only kernel module, under the terms of the GPL.

So <drum-roll, trumpets> here it is: the Promise SATA driver for the PDC20318, PDC20375, PDC20378, and PDC20618. This driver is released as-is. It is useful for the

Promise SATA150 TX4
Promise SATA150 TX2plus
Promise SATA 378
Promise Ultra 618

cards. As a temporary download location, the GPL'd driver can be obtained from http://www.busybox.net/pdc-ultra-1.00.0.10.tgz

Have fun! And many thanks to Promise for contributing the driver for their cards!

-Erik

Quoted 9 lines

--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons-- -
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

#15 lore raw
In reply to Andre Hedrick
Quoted 3 lines · Andre Hedrick

I have already cut all ties with Promise so here is the deal. I no longer have to count the number of fingers on my hand between hand shakes. IE no extras and not shortages.

Thats ok - now they are doing GPL drivers themselves they don't need you any more.

Promise did a SCSI CAM driver because their hardware can queue commands without TCQ - which drivers/ide can't cope with. Otherwise I'd just have used the same type of changes the FreeBSD people did for 2037x.

Its also interesting because it has a hardware XOR engine.

#16 lore raw

Alan,

It is also more interesting that it has sensitive touch spots where they state there is no problem and no errata. So I am glad to see you have stepped up to replace me, and don't be surprized when you hard lock the card and the system because the feature does not exist.

This is the stuff nobody talks about and the value I added and created, good luck in finding the folks who deploy various asics and are willing to discuss in confidence solutions against the variations.

Cheers,

Andre Hedrick
LAD Storage Consulting Group

Quoted 14 lines · Alan Cox
Quoted 3 lines · Andre Hedrick

I have already cut all ties with Promise so here is the deal. I no longer have to count the number of fingers on my hand between hand shakes. IE no extras and not shortages.

Thats ok - now they are doing GPL drivers themselves they don't need you any more.

Promise did a SCSI CAM driver because their hardware can queue commands without TCQ - which drivers/ide can't cope with. Otherwise I'd just have used the same type of changes the FreeBSD people did for 2037x.

Its also interesting because it has a hardware XOR engine.

#17 lore raw
Quoted 3 lines · Andre Hedrick

This is the stuff nobody talks about and the value I added and created, good luck in finding the folks who deploy various asics and are willing to discuss in confidence solutions against the variations.

You mean stuff like FreeBSD blacklisting Promise chips before TX2 for TCQ because it just locks up?

#18 lore raw
In reply to Alan Cox
Quoted 5 lines · Alan Cox
Quoted 3 lines · Andre Hedrick

I have already cut all ties with Promise so here is the deal. I no longer have to count the number of fingers on my hand between hand shakes. IE no extras and not shortages.

Quoted 8 lines

Thats ok - now they are doing GPL drivers themselves they don't need you any more.

Promise did a SCSI CAM driver because their hardware can queue commands without TCQ - which drivers/ide can't cope with. Otherwise I'd just have used the same type of changes the FreeBSD people did for 2037x.

Its also interesting because it has a hardware XOR engine.

I don't think it does. The Promise SATA150 SX4 is the one that has the XOR engine (and the PDC20621 chip) and that one is not supported by the driver.

Signature · 2 lines
Vojtech Pavlik
SuSE Labs, SuSE CR
#19 lore raw
Quoted 13 lines · Vojtech Pavlik
Quoted 12 lines · Alan Cox
Quoted 3 lines · Andre Hedrick

I have already cut all ties with Promise so here is the deal. I no longer have to count the number of fingers on my hand between hand shakes. IE no extras and not shortages.

Thats ok - now they are doing GPL drivers themselves they don't need you any more.

Promise did a SCSI CAM driver because their hardware can queue commands without TCQ - which drivers/ide can't cope with. Otherwise I'd just have used the same type of changes the FreeBSD people did for 2037x.

Quoted 5 lines
Quoted 1 line

Its also interesting because it has a hardware XOR engine.

I don't think it does. The Promise SATA150 SX4 is the one that has the XOR engine (and the PDC20621 chip) and that one is not supported by the driver.

hmm, the method of delivering ATA and XOR packets on Promise hardware are very, very similar. And pdc-ultra driver seems to have code to deliver XOR packets...

Jeff

#20 lore raw

Jeff,

Can you drop me on this thread?
To quote Alan Cox, "... don't need you any more."

However when you do need me you (JG) know where to find me. Anywho, how are those DMA-Timeouts lately?

Cheers,

--a

Quoted 28 lines · Jeff Garzik
Quoted 13 lines · Vojtech Pavlik
Quoted 12 lines · Alan Cox
Quoted 3 lines · Andre Hedrick

I have already cut all ties with Promise so here is the deal. I no longer have to count the number of fingers on my hand between hand shakes. IE no extras and not shortages.

Thats ok - now they are doing GPL drivers themselves they don't need you any more.

Promise did a SCSI CAM driver because their hardware can queue commands without TCQ - which drivers/ide can't cope with. Otherwise I'd just have used the same type of changes the FreeBSD people did for 2037x.

Quoted 5 lines
Quoted 1 line

Its also interesting because it has a hardware XOR engine.

I don't think it does. The Promise SATA150 SX4 is the one that has the XOR engine (and the PDC20621 chip) and that one is not supported by the driver.

hmm, the method of delivering ATA and XOR packets on Promise hardware are very, very similar. And pdc-ultra driver seems to have code to deliver XOR packets...

Jeff

#21 lore raw
In reply to Erik Andersen

Hi Erik,
great job!! I can report succes, my card Promise SATA 150 TX2plus is now working, tested with Seagate ST312002 and Western Digital WD1200JD Tested with SuSE 8.1 SMP kernel Thanx for good work
Milan Roubal

----- Original Message -----
From: "Erik Andersen" <[email protected]>
To: "linux-kernel" <[email protected]>
Sent: Tuesday, July 22, 2003 8:45 PM
Subject: Promise SATA driver GPL'd

Quoted 30 lines

Some folk I've done some consulting work for bought a zillion Promise SATA cards. They were able to convince Promise to release their SATA driver, which was formerly available only as a binary only kernel module, under the terms of the GPL.

So <drum-roll, trumpets> here it is: the Promise SATA driver for the PDC20318, PDC20375, PDC20378, and PDC20618. This driver is released as-is. It is useful for the

Promise SATA150 TX4
Promise SATA150 TX2plus
Promise SATA 378
Promise Ultra 618

cards. As a temporary download location, the GPL'd driver can be obtained from http://www.busybox.net/pdc-ultra-1.00.0.10.tgz

Have fun! And many thanks to Promise for contributing the driver for their cards!

-Erik

--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons-- -
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/