Quantcast
Channel: Linux Device Hacking
Viewing all articles
Browse latest Browse all 3247

Debian on WD MyCloud EX2100 (2 replies)

$
0
0
I thought I would finally get around to permanently using Debian on my EX2100. This means fixing up the DTB to support the dual gigabit NICs, and getting the mcm-daemon running to make the fan quiet.

Unfortunately, I cannot get either to work! Here the is networking config on the EX2100:
Load WD Yosemite Serdes Config:
board SerDes lanes topology details:
 | Lane #  | Speed |  Type       |
 --------------------------------
 |   0    |  06   |  SATA0	|
 |   1    |  05   |  PCIe0	|
 |   2    |  06   |  SATA1	|
 |   3    |  05   |  USB3 HOST1	|
 |   4    |  05   |  USB3 HOST0	|
 |   5    |  00   |  SGMII2	|
 --------------------------------
PCIe, Idx 0: detected no link
High speed PHY - Ended Successfully
...(later)
Net:   
|  port  | Interface | PHY address  |
|--------|-----------|--------------|
| egiga0 |   RGMII   |     0x00     |
| egiga1 |   RGMII   |   In-Band    |
| egiga2 |   SGMII   |     0x01     |

The EX2U DTB posted here works with the SGMII NIC, but neither RGMII NIC works if you change the status from "<disabled>" to "<okay>":

send_packet: Network is down
dhclient.c:2255: Failed to send 300 byte long packet over eth1 interface.
receive_packet failed on eth1: Network is down

Also, it seems that the MCU is not connected via serial@12100? mcm-daemon doesn't work at all:
# /usr/bin/mcm-daemon -f -c /etc/mcm-daemon.ini 
mcm-daemon[2737]: Server startup success on port 57367
mcm-daemon[2737]: Got no stop magic, but read 1 bytes!
mcm-daemon[2737]: Got no stop magic, but read 1 bytes!
mcm-daemon[2737]: Got no stop magic, but read 1 bytes!
mcm-daemon[2737]: Got no stop magic, but read 1 bytes!
mcm-daemon[2737]: Error sending DeviceReady command, exit!

Doesn't really make much sense, since it seems that WD are writing to serial 1 in u-boot to communicate with the MCU.

board/mv_ebu/a38x/mv_main_a38x.c:
        printf("Enable HD1\n");
        serial2_putc(0xfa);
        serial2_putc(0x6);
        serial2_putc(0x1);
        serial2_putc(0x0);
        serial2_putc(0x1);
        serial2_putc(0x1);
        serial2_putc(0xfb);

board/mv_ebu/common/USP/mv_serial.c:
#if 1   //ALPHA_CUSTOMIZE
void serial2_putc(const char c)
{
#if defined(CONFIG_MV_SMP) || (defined(MV78XX0) && defined(MV78200))
        if (c == '\n')
                mvUartPutc((whoAmI())%2, '\r');

        mvUartPutc((whoAmI())%2, c);
#else
        if (c == '\n')
                mvUartPutc(1, '\r');

        mvUartPutc(1, c);
#endif
}
#endif

I've confirmed that uart 0 is connected to the debug header on the board, writing to that kills your uart session. It seems that uart 1 might not be connected to the MCU, or the MCU isn't responding?

@bodhi: any ideas about the above?

I've also re-built u-boot to save environment to 0x100000 and to not overwrite bootcmd on boot as WD's source so kindly does. Find the kwboot and nand versions attached.

Edit: looks like my mcm-daemon woes might be because the MCU has lost its firmware :-(

Even the stock WD firmware cannot communicate to it:
root@WDMyCloudEX2100 / # up_send_ctl PowerStatus
root@WDMyCloudEX2100 / # up_send_ctl MCUVer

That would explain why the power LED is always flashing blue and the fan never shuts up even in the stock firmware.

Does anyone know how to update/restore the MCU firmware?

Viewing all articles
Browse latest Browse all 3247

Trending Articles