Cheap Marvell-based (88SE9230) 4-port SATA3 PCIe 4x Controller


Recommended Posts

Will this device work with unRAID 5.0?  Or will it require drivers to be manually added?  I'm not too familiar with how to get a card working if it isn't supported out of the box.

It should be very simple. You will need elkay14's enable_ahci script, which you will update by adding 1b4b9230 to the PCI_IDS= string definition. (Look for a post from elkay14; the link is in the .sig)

Newegg doesn't list Linux compatibility, but Marvell says it's supported.

More important is that Syba says it's supported. In the product manual, page1,

FEATURES_AND_SPEC=>General=>LastItem.

[if that turns out untrue, it becomes your basis for a no-cost/-hassle return.]

 

Do note that, while the card requires a x4 (or x8 or x16) pcie slot, it is only a 2-lane (ie "x2") implementation; at (pcie) gen2 that will still get you total sustained throughput of ~750-800 MB/sec--more than enough for 4 of the fastest existing (mech.) drives. But, you must have gen2 pcie-- else, only ~350-400.

 

This card looks like excellent value, especially so if you like to mess with port-multiplier enclosures. The card supports FBS, and can be configured for 1 or 2 eSATA ports (replacing 1 or 2 SATAs). Unfortunately, (for me) it does not include a low-profile bracket, nor can I tell from pictures whether the card itself is "narrow" enough to allow fitting/fashioning an LP [for a H-P N40L].

 

brandon, if you get one, pls post on this thread. I'll have questions :) . tnx

 

--UhClem  "Doing Base-8 arithmetic is easy ... if you're missing two fingers."

 

Link to comment

Got the card today and just installed it.  Elkay14's script worked great after adding the string to it, and the card is recognized and the drives attached to it work.  I haven't tested anything in depth, but it works and speeds look good so far.

 

Only downside are two of the SATA ports are perpendicular to the card, so your cables stick straight out the bottom of the card.  If you have a card adjacent to it, you'll need 90 degree cables.

Link to comment

Got the card today and just installed it.  Elkay14's script worked great after adding the string to it, and the card is recognized and the drives attached to it work.  I haven't tested anything in depth, but it works and speeds look good so far.

Great to hear that. I'm real interested to learn what the card's maximum throughput is, and I'd appreciate your help.

 

Just for the test, if you could connect your 4 fastest drives--especially useful if you have one or two SSD's available. (This is quick [~5 minutes], and strictly read-only.) Download the little script attached to this post [link]. Identify the drive letters of the 4 connected drives, and run the script twice, first with the X as first arg (ie, dskt X g h i j), and second without the X (ie, dskt g h i j). The first run will take a measure of each drive's max speed individually, as a sort of baseline. The second run will measure the max speed (attainable) of each drive, but simultaneously, all 4 drives transferring at once. (It is important that the four test drives be idle/unaccessed during the measurements.)

 

One or two SSDs really help to push that upper limit, since even 4 of the fastest (transfer rate) mechanical drives (eg, Seagate ST[23]000DM001) will only total ~700 MB/s, and I would hope to see this card do even better (~800).

 

What do you say, brandon??  In the interest of geek science :) ...

 

Thanks.

 

P.S. The 4 test drives can be full or empty, even unformatted--doesn't' matter what, if any, filesystems are on them.

 

Link to comment

Got the card today and just installed it.  Elkay14's script worked great after adding the string to it, and the card is recognized and the drives attached to it work.  I haven't tested anything in depth, but it works and speeds look good so far.

Great to hear that. I'm real interested to learn what the card's maximum throughput is, and I'd appreciate your help.

 

Just for the test, if you could connect your 4 fastest drives--especially useful if you have one or two SSD's available. (This is quick [~5 minutes], and strictly read-only.) Download the little script attached to this post [link]. Identify the drive letters of the 4 connected drives, and run the script twice, first with the X as first arg (ie, dskt X g h i j), and second without the X (ie, dskt g h i j). The first run will take a measure of each drive's max speed individually, as a sort of baseline. The second run will measure the max speed (attainable) of each drive, but simultaneously, all 4 drives transferring at once. (It is important that the four test drives be idle/unaccessed during the measurements.)

 

One or two SSDs really help to push that upper limit, since even 4 of the fastest (transfer rate) mechanical drives (eg, Seagate ST[23]000DM001) will only total ~700 MB/s, and I would hope to see this card do even better (~800).

 

What do you say, brandon??  In the interest of geek science :) ...

 

Thanks.

 

P.S. The 4 test drives can be full or empty, even unformatted--doesn't' matter what, if any, filesystems are on them.

 

I've got spare SSDs (256GB OCZ Vertex 4, 256GB Samsung 830 & 120GB OWC) that I can use to test.  These three should have no problem saturating the theoretical max of 1000MB/s.  I should be able to get to it tonight or tomorrow.

 

I'd expect it to be slower than the built in Intel SATA3, but an improvement (should the drives support it) on the other SATA2 cards I'm using (based on SIL3132 and Marvell 88SX7042).

Link to comment

These cards SYBA - has a huge amount or bad and VERY BAD reviews. 

I don't have one - so it's not MY opinion.

But it scares me a lot to have a card serving my data with such reviews....

 

Reading a lot of the reviews of other SYBA cards makes me think that many users are idiots.  Lots of things I saw were lack of TRIM in RAID configuration, can't boot with drives on the add-in card, slower than the on-board MB ports (when some of the cards are freaking PCIe 1.0 1x and have 4 four drives hooked up).

 

I wouldn't be surprised if there is a bad review that shows up for this card that says, "It has 6 ports but I can only use 4 at the same time?" or "I can only read/write at 100MB/s... not 6gb/s like it says"

Link to comment

 

I wouldn't be surprised if there is a bad review that shows up for this card that says, "It has 6 ports but I can only use 4 at the same time?" or "I can only read/write at 100MB/s... not 6gb/s like it says"

 

The scary part is that the designers route the four data signals (two diff.pairs) via jumpers blocks to select the two of the internals or the external ports.

Link to comment

Here are results of the cards/controllers I have.  It doesn't seem like the Syba card is connecting via PCIe 2.0 2x, but only at PCIe 2.0 1x.  I tried both the 16x and 8x PCIe slots on the motherboard.  The 16x slot is supposed to revert to 8x when the 8x slot is populated.  In either case, the Rosewill card works fine at 4x in both slots, but the Syba card stays at 1x.

 

01:00.0 SATA controller: Unknown device 1b4b:9230 (rev 10) (prog-if 01 [AHCI 1.0])

Subsystem: Unknown device 1b4b:9230

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: 4 bytes

Interrupt: pin A routed to IRQ 46

Region 0: I/O ports at ef00 <size=8]

Region 1: I/O ports at ee00 <size=4]

Region 2: I/O ports at ed00 <size=8]

Region 3: I/O ports at ec00 <size=4]

Region 4: I/O ports at eb00 <size=32]

Region 5: Memory at fbcff000 (32-bit, non-prefetchable)

[virtual] Expansion ROM at dfa00000 [disabled]

Capabilities: [40] Power Management version 3

Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)

Status: D0 PME-Enable- DSel=0 DScale=0 PME-

Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable+

Address: fee0300c  Data: 4191

Capabilities: [70] Express (v2) Legacy Endpoint, MSI 00

DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <1us, L1 <8us

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 5GT/s, Width x2, ASPM L0s L1, Latency L0 <512ns, L1 <64us

ClockPM- Suprise- LLActRep- BwNot-

LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+

ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-

LnkSta: Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

Capabilities: [e0] SATA HBA <?>

Capabilities: [100] Advanced Error Reporting <?>

Kernel driver in use: ahci

Kernel modules: ahci

 

SYBA SD-PEX40054: PCIe 2.0 2x, 4x SATA3

root@fileserver:/boot# dskt.sh X p r q s

sdp V4-CT256V4SSD2 = 228.45 MB/sec

sdr OCZ-VERTEX4 = 321.38 MB/sec

sdq OWC Mercury Electra 6G SSD = 351.40 MB/sec

sds DP-CT050M4SSC2 = 350.75 MB/sec

 

root@fileserver:/boot# dskt.sh p r q s

sdp = 102.96 MB/sec

sdq = 103.81 MB/sec

sdr = 107.00 MB/sec

sds = 103.20 MB/sec

 

Rosewill RC-218: PCIe 1.0 4x, 4x SATA2

 

root@fileserver:/boot# dskt.sh X d e f g

sdd OWC Mercury Electra 6G SSD = 253.99 MB/sec

sde DP-CT050M4SSC2 = 257.49 MB/sec

sdf V4-CT256V4SSD2 = 237.43 MB/sec

sdg OCZ-VERTEX4 = 241.62 MB/sec

 

root@fileserver:/boot# dskt.sh d e f g

sdg = 198.02 MB/sec

sdd = 199.27 MB/sec

sdf = 199.10 MB/sec

sde = 200.19 MB/sec

 

Monoprice SIL3132: PCIe 1.0 1x, 2x SATA2

 

root@fileserver:/boot# dskt.sh X d e

sdd V4-CT256V4SSD2 = 127.37 MB/sec

sde OCZ-VERTEX4 = 125.41 MB/sec

 

root@fileserver:/boot# dskt.sh d e

sdd = 73.17 MB/sec

sde = 76.50 MB/sec

 

Z68 Chipset Built-In SATA3

 

root@fileserver:/boot# dskt.sh X j k

sdj DP-CT050M4SSC2 = 484.18 MB/sec

sdk OWC Mercury Electra 6G SSD = 474.71 MB/sec

 

root@fileserver:/boot# dskt.sh j k 

sdj = 458.53 MB/sec

sdk = 457.01 MB/sec

 

Z68 Chipset Built-In SATA2

 

root@fileserver:/boot# dskt.sh X l m n o

sdl DP-CT050M4SSC2 = 258.96 MB/sec

sdm V4-CT256V4SSD2 = 237.32 MB/sec

sdn OWC Mercury Electra 6G SSD = 255.41 MB/sec

sdo OCZ-VERTEX4 = 249.20 MB/sec

 

root@fileserver:/boot# dskt.sh l m n o

sdl = 246.62 MB/sec

sdo = 149.28 MB/sec

sdm = 233.65 MB/sec

sdn = 245.82 MB/sec

Link to comment

Here are results of the cards/controllers I have.  It doesn't seem like the Syba card is connecting via PCIe 2.0 2x, but only at PCIe 2.0 1x.  I tried both the 16x and 8x PCIe slots on the motherboard.  The 16x slot is supposed to revert to 8x when the 8x slot is populated.  In either case, the Rosewill card works fine at 4x in both slots, but the Syba card stays at 1x.

That's a major disappointment! (Not to be making excuses for Syba [or whoever engineered this card], but) I wonder if the x2 aspect of the 9230 chip, and the trace assignments of this card, relative to the layouts of "standard" PCIe x4, x8, x16 slots might have flummoxed this designer. I could find no substantive reports about this particular card anywhere.

 

The Highpoint Rocket 640L uses the same 9230 chip, but I can't find any quantitatively satisfying reviews of it either. I did find a useful review of the RocketRaid 640L (which uses the 88SE9235, which lacks some [non-germane] frills of the 9230) here [link]. His tests show not only x2 @gen2, but also that a single active SATA3 port can utilize both lanes.

 

Something that is puzzling is that the RocketRaid 640L uses the less expensive Marvell 88SE9235 chip (which lacks Marvell's RAID capability), but the less expensive Rocket 640L uses the more expensive 88SE9230 (which does feature Marvell's RAID). "There's something going on here, but I don't know what it is. (Do I, Mr Jones?)" [Ref:88SE92XX Product Brief [link]]

 

Brandon, good work on documenting (via lspci) the root cause of the sub-par performance tests on the PEX40054. [Funny that lspci doesn't get the full Manufacturer ID when the card is id'd/added to the kernel post-boot; not relevant to this x1 vs x2 problem, but something that could be fixed in Linux]

 

Another possible explanation for the x1 vs x2 could be that there is some "quirk" in the 9230 (and maybe 9235) that needs to be addressed specifically in the Linux driver at AHCI set-up time. I've seen examples of this, but I don't have the know-how to create such a quirk-handler.

 

One way to possibly determine whether this x1 misbehavior is inherent to the PEX40054 itself would be to try it on Win7. IF Syba did any testing of this new card, it's much more likely it was done on Win7 than Linux. A standard HDTune/Crystal read seq-xfer test of one of the fast SSDs to see if it can achieve 450+ would be conclusive.

 

It would also determine whether this whole exercise remains a (geek) science experiment (only affecting *nix), or escalates to a mini- consumer reports expose'.

 

Thanks for the excellent reporting of your results; that test script is a real quick-and-dirty, but it did unequivocally expose what neither of us wanted to see. Ignorance is NOT bliss.

 

Link to comment

With two or three regular hard drives hooked up to the Syba controller, performance should be pretty good.  I'm limited by the performance of my old/slow 500GB drives (esp the Hitachi one), but the rest of the drives are okay.

 

The motherboard built-in and Rosewill card's ports are all populated, with both of the Monoprice SIL3132 cards hosting one drive each, and the Syba with two ports populated.

 

root@fileserver:/boot# dskt.sh b c d e f g h i j k l m n o

sdj = 104.66 MB/sec

sdl = 112.53 MB/sec

sdd = 116.99 MB/sec

sdh = 100.63 MB/sec

sdo = 121.98 MB/sec

sdn = 56.28 MB/sec

sdi = 131.04 MB/sec

sdk = 99.15 MB/sec

sdb = 77.22 MB/sec

sdf = 131.15 MB/sec

sde = 89.40 MB/sec

sdg = 97.59 MB/sec

sdm = 100.42 MB/sec

sdc = 107.21 MB/sec

Link to comment

It must be a linux problem, as I tried installing the card in a Windows system with a Z77 chipset and it maxes out around 800MB/s with four drives running.

Well, that's somewhat encouraging. But, it is not conclusively proven to be a Linux problem. Since both the OS and the motherboard are different in that experiment, it lacks rigor. But, rather than loading Windows on your Z68 guy, you could just boot the Z77 w/ your unRAID  flash (in combo with the mod'd enable_ahci script [and a neutered unRAID config (??)]), and then try putting the pedal to the metal [and checking lspci].

 

Because of all the PCIe bandwidth sharing and dropbacks on your Z68 mobo, in combo with a newly-introduced card using a "mongrel" PCIe lane-grab (x2 is rarely seen), the above observation (re: concern about a two-variable experiment) is (possibly) more than anally academic.

 

Speaking of your Z68 mobo, I know that you tested the Syba in the X16 & X8, but just for grins, did you try it in the X4? (Note that if you do, you need to remove the 3132 that is in the PCIeX1_2 slot because of this note from Gigabyte:

* The PCIEX4 slot shares bandwidth with the PCIEX1_2 slot. When PCIEX1_2 slot is populated, the PCIEX4 slot will operate at up to x1 mode.

Any ideas on how to get this controller running with a 2x link width?

You mean, so it isn't just a half-fast card :)? [couldn't resist]

If the above tests don't improve the scene, I don't know. I tried searching around, but there appears to be nothing applicable regarding the 9230 on any *nix. This Syba card is the first instance of the chip being used in a Marvell-Id'd card (ie, 1b4b:9230) [as opposed to, eg, a Highpoint-Id'd one). What is surprising is that I find nothing  *nix-related regarding the several mobo's that incorporate the 9230 onboard. Amusingly, the only hit was in a syslog attached to a forum posting here (July '12) but it, expectedly, didn't ID.

 

Link to comment

It must be a linux problem, as I tried installing the card in a Windows system with a Z77 chipset and it maxes out around 800MB/s with four drives running.

Well, that's somewhat encouraging. But, it is not conclusively proven to be a Linux problem. Since both the OS and the motherboard are different in that experiment, it lacks rigor. But, rather than loading Windows on your Z68 guy, you could just boot the Z77 w/ your unRAID  flash (in combo with the mod'd enable_ahci script [and a neutered unRAID config (??)]), and then try putting the pedal to the metal [and checking lspci].

 

Because of all the PCIe bandwidth sharing and dropbacks on your Z68 mobo, in combo with a newly-introduced card using a "mongrel" PCIe lane-grab (x2 is rarely seen), the above observation (re: concern about a two-variable experiment) is (possibly) more than anally academic.

 

Speaking of your Z68 mobo, I know that you tested the Syba in the X16 & X8, but just for grins, did you try it in the X4? (Note that if you do, you need to remove the 3132 that is in the PCIeX1_2 slot because of this note from Gigabyte:

* The PCIEX4 slot shares bandwidth with the PCIEX1_2 slot. When PCIEX1_2 slot is populated, the PCIEX4 slot will operate at up to x1 mode.

Any ideas on how to get this controller running with a 2x link width?

You mean, so it isn't just a half-fast card :)? [couldn't resist]

If the above tests don't improve the scene, I don't know. I tried searching around, but there appears to be nothing applicable regarding the 9230 on any *nix. This Syba card is the first instance of the chip being used in a Marvell-Id'd card (ie, 1b4b:9230) [as opposed to, eg, a Highpoint-Id'd one). What is surprising is that I find nothing  *nix-related regarding the several mobo's that incorporate the 9230 onboard. Amusingly, the only hit was in a syslog attached to a forum posting here (July '12) but it, expectedly, didn't ID.

 

Yea, I tried out the Syba card in the 4x slot as well.  I removed all non-essential cards from the Z68 system (Intel PCIe NIC, 2x Monoprice cards).  The only card that was in the system was the Rosewill PCIe 4x card.  I tried the following combinations:

  • Rosewill in 4x slot, Syba in 16x and 8x slots (no other cards)
  • Rosewill in 16x slot, Syba in 4x slot (no other cards)
  • 2x Monoprice cards installed in the 1x slots, Syba in the 16x and 8x slots (no other cards)

 

I did this because I thought that it might be because the Rosewill card is PCIe 1.0 and the Syba was PCIe 2.0, and that mixing them in the shared slots might complicate things... but this didn't work either.

 

I'll try putting the Syba card back in the Z77 rig with a new flash drive with the only the ahci mod (and everything else default/stock).  I'm also going to try it in another system (AMD 780G based).

Link to comment

Yea, I tried out the Syba card in the 4x slot as well.  ...

OK. I did not see you mention the x4, so just tried to cover all bases. You did even better ...

I'll try putting the Syba card back in the Z77 rig with a new flash drive with the only the ahci mod (and everything else default/stock).  I'm also going to try it in another system (AMD 780G based).

Those tests should tell the story. One other thing, I didn't see mention of which Linux version you're running (u4.7==L2.6.32;... u5.0rc8==L3.4.11), but I would also try those barebones tests with the opposite end of the above "spectrum", in addition. For instance, my SiI3726 port multipliers (connected to a Mrv 88se9125) stopped working when I went from Linux 2.6.37 to 3.2.29. (I don't use unRAID myself).

 

Good luck.

 

 

Link to comment

Yea, I tried out the Syba card in the 4x slot as well.  ...

OK. I did not see you mention the x4, so just tried to cover all bases. You did even better ...

I'll try putting the Syba card back in the Z77 rig with a new flash drive with the only the ahci mod (and everything else default/stock).  I'm also going to try it in another system (AMD 780G based).

Those tests should tell the story. One other thing, I didn't see mention of which Linux version you're running (u4.7==L2.6.32;... u5.0rc8==L3.4.11), but I would also try those barebones tests with the opposite end of the above "spectrum", in addition. For instance, my SiI3726 port multipliers (connected to a Mrv 88se9125) stopped working when I went from Linux 2.6.37 to 3.2.29. (I don't use unRAID myself).

 

Good luck.

 

It was all with 5rc8a.  I'll add testing with 4.7 to the list as well.

 

To do list tonight (or tomorrow):

  • Z77: test base 5rc8a install with ahci add-on (with Syba in unshared 16x slot)
  • Z68: test base 4.7 install with ahci add-on (with Syba in unshared 16x slot)

Link to comment

To do list tonight (or tomorrow):

  • Z77: test base 5rc8a install with ahci add-on (with Syba in unshared 16x slot)
  • ...

Since a very important counter-example was the successful Syba-x2 behavior on the Z77/Windows combo, the Z77/unRAID tests should include one with the Syba in the same Z77 slot as was used for the Windows win. (In case that was not the x16 unshared which is in your stated plan.)

 

I commend, and appreciate, your perseverance.

 

Link to comment

To do list tonight (or tomorrow):

  • Z77: test base 5rc8a install with ahci add-on (with Syba in unshared 16x slot)
  • ...

Since a very important counter-example was the successful Syba-x2 behavior on the Z77/Windows combo, the Z77/unRAID tests should include one with the Syba in the same Z77 slot as was used for the Windows win. (In case that was not the x16 unshared which is in your stated plan.)

 

I commend, and appreciate, your perseverance.

 

I'll get to testing this week.  And yes you're right.  I tested in the motherboard's PCIe 3.0 8x slot (16x physical, shared with primary PCIe 16x slot), so I'll use that one again.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.