Switch to force mSata

Is there an option to create config option that will force mSata mode on shared slot?
Like the one described by @adminX - Which mPCIe Slot for mSATA [Solved]

I own old mSata card (Sandisk 16GB) that could play one simple role - protect main memory from continius write by RRD databases and logs (openzwave produces a lot).
There is one major problem - it is not recognised by sata controller (both links down). When tested on sata wrapper - works fine.
Propably it does not trigger the pin responsible for detecting mSata. And propably could work when forced to try sata mode…

Currently there is no such option and my free time is kinda limited. Creating the bootloader is not hard but i want to keep it flexible.

Current idea is:

  1. detect pin
  2. setup and try it
  3. if it works then done
  4. setup the other option and try it
  5. if it works then done
  6. switch to pcie

There would be no user visible change and even for the cards there should be no difference. This is my current prefered version as there is no config option and it works for both versions of wrong equally well.

Have you found a solution? I own a Kingston mSATA SSD which is also not detected (I already shuffled the small WIFI adapter around…).

The problem is not the solution but the surroundings. Kingston is one of the problems but there was already a wifi card detected as mSATA.

At the moment i don’t have an adapter for the small jtag pinout and i am not sure kwboot will work without problems. And flashing something without some working failsafe is a bad thing. Breaking my network right before christmas would be even worse.

There is a little development on the topic:
https://github.com/CZ-NIC/turris-os/issues/30

I quote:

… I think that if you really need to use mSATA SSD that does not conform the specification I would suggest to do a simple HW mod on the SSD PCB - it should be quite simple to cut off the mSATA indication pin (43) and hack a bridge to GND there …

Which is a suitable solution for me actually. So what you need to do is:

  1. Find corresponding pin on your mSata
    Imgur: The magic of the Internet
    http://farm6.staticflickr.com/5156/6949952266_193e08892c_z.jpg
  2. Disconnect it physically and solder a wire to the closest GND, which should be pin 35 (at least it should be).
    And voila - it should work, still I gonna try first to run it in external enclosure and then post the results here.

P.S. If anyone is still looking for software solution it might still be coming in the future versions as per the full post.

UPDATE: Strange, I got around to checking out my SSD, and pin 43 and pin 35 resistance is 0 Ohm, so they are connected already. Will have to check all the connections on pcb

UPDATE 2: And probably found the reason, between 50 and 43 I am not getting pure 0 Ohm, it seems to oscillate a bit 0.2 Ohm ± 0.1 . Judging by the schematic, the card is getting it’s ground through pin 50, which might cause the problem, if the tolerance is high enough, will try to run a wire from 50 to 43. This is purely my guesswork, I am not an circuit engineer at all. And I don’t really care much for that mSata card anyway.

2 Likes

In the bug ticket I understood tmshlvck speaking about improving the future hardware revisions of the board so you can override the detection. Thus for current hardware revisions of Omnia there won’t be coming software solution.

You are indeed correct, didn’t read it with required attentiveness, thank you for correction.

Another case here (old sandisk):

  • pin 43 is directly connected to 37 and 35 (~2.5 Ohm)
  • it is also directly connected to 50 (also 2.5-3 Ohm)
    So pin 43 should be definetly low.

How to check status of this line in Omnia?

Edit: I’m not sure if it should be low or disconnected (so according to specs - high).
Comment in that issue says: connect to GND.
But if you search google for “msata pin 43” you’ll get lots of specs that says “not connected for mSATA”

And if I correctly read schema and specs for CBTL02042ABQ, SATA is connected to CN7B when pin 43 is high (by pull-up resistor).

If you have nothing to loose - try to cut off pin 43 and check if it is working:)

Tried to disconnect pin 43 with sticky tape.
Does not work…

Edit: kernel modules were missing…
I had nas option unselected so sata modules were uninstalled.
You have to install:

  • kmod-ata-marvell-sata
  • kmod-ata-mvebu-ahci

And then when you cut off (or put sticky tape on) pin 43 - it should work.

6 Likes

That did the trick for me too. That reaffirms my opinion that there should be SW way to switch this, because standards are apparently pretty lax.

It seems that the proposed draft V01 for SATA-IO ECN 45 Interface Detect Pin for mSATA Connector was written in May 2010 and it was merged later to SATA 3.0. I don’t know when it was approved but if it took like a year to be approved then probably mSATA card designed after that point would support it. Thus mSATA cards manufactured in 2012 or after that would be more likely to support it.

Actually, that helped!

/dev/sda1                28.0G     16.2M     27.7G   0% /mnt/kingston

The attached picture shows the duct-tape in place :slight_smile:

@Perpetual and @Cabal, thank you for the work you put into finding this fix.
I used the method to make my Kingfast 32GB drive work - but not after worrying for a while if I had received a dead drive.

In order for others to buy the right kind of mSATA device - or at least know what they are getting into, I created this survey to capture which devices are working, which requires a fix and which don’t work at all:

Everybody: Please fill out the survey once you have reached a conclusion.

Thank you!