MX60W: Any interest in a DIY NAS guide / Need some advice for SATA Pads and mSATA slot compatibility

Hey there,

The MX60W is going EOL, and is available with adapters in bulk at a rate of $100 / 10, with 512MB RAM and 1GB flash. You can usually easily get them for about $20 apiece, too.

I'd like to put together a guide for building a NAS with these.

For context: Previous tests with the slower but dual-core P1020 on an Aerohive AP330 using tgtd+AIO for iSCSI have shown I can read/write at 60/35 MB/s with four crap drives in RAID10; I have been using that setup for the last 7 months or so to store my mail.

The MX60 and MX60W both use the APM82181, which includes a dwc SATA II IP core (https://ata.wiki.kernel.org/index.php/Sata_dwc_460ex). This same interface is used by the Netgear WDR4700 (same SoC).

These Meraki routers also have solder pads for a SATA slot, and due to the pinout of the PCIe slot on the APM82181 chipset, apparently the MX60W may support SATA via the miniPCIe slot.

To test mSATA: I modified the .dts file for the mx60 and rebuilt v19.07.3, OKAYing both SATA1 and SATA0; inserting an mSATA drive and rebooting causes a repeated set of kernel warnings from dwc_sata which I plan to post when I get back to the router later. In that case, both the original mPCIe card and a replacement WLE900VX (QCA9880v2) work fine with the modified .dts on OpenWrt v19.07.3, whereas unmodified OpenWrt shows no such kernel errors with the mSATA card in it, meaning the SoC sees SATA on at least some of the signaling pins (mPCIe and mSATA have identical power pins) if it's added to the device tree.

I have a suspicion that there may be capacitors or 0-ohm resistors not added to the board that are required for the mSATA slot on the MX60W. If not that, then perhaps something must be done in the .dts file in addition to what's already there.

My questions:

  • Without digging too deeply into SATA documentation and ringing up that one weird friend of mine with a high-end logic analyzer, what can I do to debug these errors?

  • Does anyone recommend any piece of open-source software for creating board schematics?

  • Would anyone be interested in the guide, or hardware to test this on?

Ideally, given the presence of SATA power+data traces and capacitor pads on the board -- probably Meraki planning but later discarding the idea of creating a Meraki secure NAS of some sort -- I'd ideally like to be able to create a mod guide for the MX60W to add an mSATA and/or 2.5" or 3.5" SATA drive; there is clearance required within the case to do this.

In the worst case, I'm happy to settle with getting a normal, AHCI-based Marvell 88SE9215, which can be found in mPCIe form-factor with an SFF8087 connector that can drive 4 SATAIII drives; I could drill holes in the top and add a mounting bracket or SATA enclosure of some sort.

The eventual goal is a self-contained, add-your-worst-drives, $30-total-parts-cost, build-the-features-you-want NAS. Right now that's possible with just the USB2.0, but there's no chance of using RAID with that.

Thanks for reading.

I sent an email to David Lam at Macom for more sheets about the APM82181, and also am reaching out to christian to see if he has any more spec sheets.

Clip from the email I sent:

I've noticed, based on partial datasheets:

http://mybookworld.wdfiles.com/local--files/mybook-live/APM82181_USB.pdf

... that the SATA core on the APM82181 may need an external clock source.

There are empty traces near the ICS9FG104D for another path. I populated them with ICs and poked the link up via i2c (verified with an oscillioscope that I was turninig it off/on), but not luck.

Based on other APM82181 implementations I'm fairly sure the clock is what I really need here, so I might just be populating the wrong clock.