Linkstation LS210D

Stock Firmware Installation
Restoring_Stock_Firmware_without_TFTP

Custom Firmware/Operating System installation
Installing Debian on Armada-370 Devices

Disassembly
The device's cover is held in place by a number of plastic tabs, it can be removed by carefully prying it apart.

see https://web.archive.org/web/20200920233124/https://y-naito.ddo.jp/index.php?id=1419753361

https://www.youtube.com/watch?v=nyzRDuuskIU

Serial Console
To access the 3.3v UART serial console resistor R150 and R115 must be removed. The location of the connections can be seen in the picture below.



Credit: @squarecode

DMESG output
Booting Linux on physical CPU 0 Initializing cgroup subsys cpu Linux version 3.3.4 (root@nasbuild) (gcc version 4.6.2 (Linaro GCC branch-4.6.2. Marvell GCC 201201-883.01c949de) ) #1 Thu Jul 26 21:06:52 JST 2018 CPU: Marvell PJ4Bv7 Processor [561f5811] revision 1 (ARMv7), cr=10c53c7d CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache Machine: Marvell Armada-370 Using UBoot passing parameters structure >>>>>>>Tag MAC bf:3c:cb:43:50:00 >>>>>>>Tag MAC cf:46:57:ee:57:88 Memory policy: ECC disabled, Data cache writealloc On node 0 totalpages: 65536 free_area_init_node: node 0, pgdat c05789e4, node_mem_map c05b2000 Normal zone: 512 pages used for memmap Normal zone: 0 pages reserved Normal zone: 65024 pages, LIFO batch:15 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: [0] 0 Built 1 zonelists in Zone order, mobility grouping off. Total pages: 65024 Kernel command line: console=ttyS0,115200 root=/dev/sda2 rw initrd=0x2600040 panic=5 BOOTVER=0.36 UBOOT_DATE=2016/12/13 PID hash table entries: 1024 (order: 0, 4096 bytes) Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Memory: 256MB = 256MB total Memory: 236148k/236148k available, 25996k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000   (   4 kB) fixmap : 0xfff00000 - 0xfffe0000   ( 896 kB) vmalloc : 0xd0800000 - 0xff000000  ( 744 MB) lowmem : 0xc0000000 - 0xd0000000   ( 256 MB) pkmap  : 0xbfe00000 - 0xc0000000   (   2 MB) modules : 0xbf000000 - 0xbfe00000  (  14 MB) .text : 0xc0008000 - 0xc0524f3c  (5236 kB) .init : 0xc0525000 - 0xc054a000  ( 148 kB) .data : 0xc054a000 - 0xc05797c0  ( 190 kB) .bss : 0xc05797e4 - 0xc05b1910  ( 225 kB) NR_IRQS:256 axp_time_init Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok hw perfevents: no hardware support available Setting up static identity map for 0x3cf6a0 - 0x3cf6e4 devtmpfs: initialized xor: measuring software checksum speed arm4regs :   766.800 MB/sec 8regs    :   544.000 MB/sec 32regs   :   765.200 MB/sec xor: using function: arm4regs (766.800 MB/sec) NET: Registered protocol family 16 L0 cache Enabled Speculative Prefetch Disabled aurora_l2_init Aurora: Enabling L2 AuroraL2: System L2 cache support initialised Support IO coherency. Enable DLB and DRAM write coalescing CPU Interface - SDRAM_CS0 ....base 00000000, size 256MB SDRAM_CS1 ....disable SDRAM_CS2 ....disable SDRAM_CS3 ....disable DEVICE_CS0 ....base f2000000, size 32MB DEVICE_CS1 ....no such DEVICE_CS2 ....no such DEVICE_CS3 ....no such PEX0_MEM ....base e0000000, size 32MB PEX0_IO ....base f1100000, size  1MB PEX1_MEM ....base e2000000, size 32MB PEX1_IO ....base f1200000, size  1MB INTER_REGS ....base d0000000, size  1MB DMA_UART ....no such SPI_CS0 ....base f0000000, size 16MB SPI_CS1 ....no such SPI_CS2 ....no such SPI_CS3 ....no such SPI_CS4 ....no such SPI_CS5 ....no such SPI_CS6 ....no such SPI_CS7 ....no such BOOT_ROM_CS ....no such DEV_BOOTCS ....base f5000000, size 16MB PMU_SCRATCHPAD ....no such CRYPT0_ENG ....base c8010000, size 64KB Marvell Armada370 Board-- ISMT370 Soc: MV6710 A1 LE  LSP version: Armada370_LSP_3.1.0_p15_NQ Detected Tclk 200000000, SysClk 533000000, FabricClk 533000000 gpiochip_add: registered GPIOs 0 to 64 on device: mv_gpio hw-breakpoint: debug architecture 0x4 unsupported. Marvell USB EHCI Host controller #0: c804c400 PCI host bridge to bus 0000:00 pci_bus 0000:00: root bus resource [io 0x0000-0xfffff] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xe1ffffff] PCI: bus0: Fast back to back transfers enabled PCI host bridge to bus 0000:01 pci_bus 0000:01: root bus resource [io 0x100000-0x1fffff] pci_bus 0000:01: root bus resource [mem 0xe2000000-0xe3ffffff] PCI: bus1: Fast back to back transfers enabled bio: create slab  at 0 raid6: int32x1   106 MB/s raid6: int32x2   157 MB/s raid6: int32x4   143 MB/s raid6: int32x8   167 MB/s raid6: using algorithm int32x8 (167 MB/s) vgaarb: loaded SCSI subsystem initialized libata version 3.00 loaded. Switching to clocksource armada370_clocksource NET: Registered protocol family 2 IP route cache hash table entries: 2048 (order: 1, 8192 bytes) TCP established hash table entries: 8192 (order: 4, 65536 bytes) TCP bind hash table entries: 8192 (order: 3, 32768 bytes) TCP: Hash tables configured (established 8192 bind 8192) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. PCI: CLS 0 bytes, default 32 Trying to unpack rootfs image as initramfs... Freeing initrd memory: 11720K cesadev_init(c052cc88) mvCesaInit: channels=1, session=640, queue=64 Armada XP hwmon thermal sensor initialized. Initializing Armada-XP CPU power management (DISABLED) MICON ctrl (C) BUFFALO INC. V.1.00 installed. Buffalo Gpio Control Driver (C) BUFFALO INC. Ver.1.00 installed. Buffalo CPU Inerupts Driver (C) BUFFALO INC. Ver.0.01 alpha1 installed. Kernel event proc (C) BUFFALO INC. V.1.00 installed. initial_polarity_val = 0x00018000 initial_polarity_val_high = 0x00000000 Buffalo GPIO SATA Hotplug Event Driver (C) BUFFALO INC. Ver.1.00 installed. VFS: Disk quotas dquot_6.5.2 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) JFFS2 version 2.2. (NAND) \xffffffc2\xffffffa9 2001-2006 Red Hat, Inc. fuse init (API version 7.18) led    with ACLs, security attributes, large block/inode numbers, no debug enab--More-- SGI XFS Quota Management subsystem msgmni has been set to 484 async_tx: api initialized (async) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) mv_xor_shared mv_xor_shared.0: Marvell shared XOR driver mv_xor_shared mv_xor_shared.1: Marvell shared XOR driver mv_xor mv_xor.0: Marvell XOR: ( xor ) mv_xor mv_xor.1: Marvell XOR: ( xor ) mv_xor mv_xor.2: Marvell XOR: ( cpy ) mv_xor mv_xor.3: Marvell XOR: ( fill cpy ) Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0xd0012000 (irq = 41) is a 16550A console [ttyS0] enabled brd: module loaded loop: module loaded sata_mv sata_mv.0: version 1.28 sata_mv sata_mv.0: slots 32 ports 2 scsi0 : sata_mv scsi1 : sata_mv ata1: SATA max UDMA/133 irq 55 ata2: SATA max UDMA/133 irq 55 SPI Serial flash detected @ 0xf0000000, 1024KB (16sec x 64KB) ed using BCH 4bit ECCnd.0: Initialize HAL based NFC in 8bit mode with DMA Disabl--More-- armada-nand armada-nand.0: mvNfcInit failed. mv_eth_probe: port_mask=0x3, cpu_mask=0x1 0 - Base 0x00000000, Size = 0x10000000. 4 - Base 0xf2000000, Size = 0x02000000. 8 - Base 0xe0000000, Size = 0x02000000. 9 - Base 0xf1100000, Size = 0x00100000. 10 - Base 0xe2000000, Size = 0x02000000. 11 - Base 0xf1200000, Size = 0x00100000. 12 - Base 0xd0000000, Size = 0x00100000. 14 - Base 0xf0000000, Size = 0x01000000. 23 - Base 0xf5000000, Size = 0x01000000. 25 - Base 0xc8010000, Size = 0x00010000. o 2 Giga ports supported o NETA acceleration mode 1 o RX Queue support: 1 Queues * 128 Descriptors o TX Queue support: 1 Queues * 512 Descriptors o GSO supported o GRO supported o Receive checksum offload supported o Transmit checksum offload supported o Driver ERROR statistics enabled o Switch support enabled o Loading network interface(s) o Port 0 is connected to Linux netdevice giga p=0: mtu=1500, mac=c8029eec o eth0, ifindex = 2, GbE port = 0 o Port 1 is connected to Linux netdevice giga p=1: mtu=1500, mac=c8029eec o eth1, ifindex = 3, GbE port = 1 rtc-mv rtc-mv: rtc core: registered rtc-mv as rtc0 md: linear personality registered for level -1 md: raid0 personality registered for level 0 md: raid1 personality registered for level 1 md: raid10 personality registered for level 10 md: raid6 personality registered for level 6 md: raid5 personality registered for level 5 md: raid4 personality registered for level 4 cpuidle: using governor ladder cpuidle: using governor menu mmc0: mvsdio driver initialized, lacking card detect (fall back to polling) TCP cubic registered NET: Registered protocol family 17 VFP support v0.3: implementor 56 architecture 2 part 20 variant 9 rev 6 rtc-mv rtc-mv: setting system clock to 2018-10-18 10:39:47 UTC (1539859187) ata1: SATA link up 3.0 Gbps (SStatus 123 SControl F300) ata1.00: ATA-8: KingDian S100 16GB, 20141224, max UDMA/133 ata1.00: 30932992 sectors, multi 0: LBA48 ata1.00: configured for UDMA/133 scsi 0:0:0:0: Direct-Access    ATA      KingDian S100 16 2014 PQ: 0 ANSI: 5 sd 0:0:0:0: [sda] 30932992 512-byte logical blocks: (15.8 GB/14.7 GiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 or FUA :0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO--More-- sda: sda1 sda2 sda3 sda4 sda5 sd 0:0:0:0: [sda] Attached SCSI disk ata2: SATA link down (SStatus 0 SControl F300) Freeing init memory: 148K kjournald starting. Commit interval 5 seconds EXT3-fs (sda1): using internal journal EXT3-fs (sda1): mounted filesystem with writeback data mode kjournald starting. Commit interval 5 seconds EXT3-fs (sda2): using internal journal EXT3-fs (sda2): mounted filesystem with writeback data mode kjournald starting. Commit interval 5 seconds EXT3-fs (sda2): using internal journal EXT3-fs (sda2): mounted filesystem with writeback data mode Adding 999992k swap on /dev/sda5. Priority:-1 extents:1 across:999992k SS kjournald starting. Commit interval 5 seconds EXT3-fs (sda1): using internal journal EXT3-fs (sda1): mounted filesystem with writeback data mode usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci_marvell ehci_marvell.0: Marvell Orion EHCI ehci_marvell ehci_marvell.0: new USB bus registered, assigned bus number 1 ehci_marvell ehci_marvell.0: irq 45, io base 0xfbb50100 ehci_marvell ehci_marvell.0: USB 2.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver usblp pool #1: pkt_size=1536, buf_size=1632 - 256 of 256 buffers added eth1: link up eth1: started udevd[2756]: starting version 174 Extra Features Reg[0] = 0x60000100 Extra Features Reg[1] = 0x101a7 Control Reg = 0x10c5387d Main ID Reg = 0x561f5811 Cache Type Reg = 0x8003c003 L2 Control Reg = 0x1 L2 Auxilary Control Reg = 0x12086302 Extra Features Reg[0] = 0x60000100 Extra Features Reg[1] = 0x101a7 Control Reg = 0x10c5387d Main ID Reg = 0x561f5811 Cache Type Reg = 0x8003c003 L2 Control Reg = 0x1 L2 Auxilary Control Reg = 0x12086302 Extra Features Reg[0] = 0x60000100 Extra Features Reg[1] = 0x101a7 Control Reg = 0x10c5387d Main ID Reg = 0x561f5811 Cache Type Reg = 0x8003c003 L2 Control Reg = 0x1 L2 Auxilary Control Reg = 0x12086302
 * BUFFALO Disable Command Queuing Function [sata_mv sata_mv.0] **

U-Boot env
CASset=min MALLOC_len=5 autoload=n baudrate=115200 bootargs_end=:10.4.50.254:255.255.255.0:KW40:eth0:none bootargs_root=root=/dev/sda2 rw initrd=0x2600040 panic=5 bootcmd=for i in $bootorder; do run ${i}bootcmd; done bootcommon=setenv bootargs $console $bootargs_root $bootargs_func $buffalo_ver $uboot_date $mtdparts $bootsystem; ;sf protect off; bootm 0x1200000 0x2600000 bootcommon-u=setenv bootargs $console $bootargs_func $buffalo_ver $uboot_date $mtdparts $bootsystem; ;sf protect off; bootm 0x1200000 bootdelay=0 bootorder=ide fail usb1 usb2 tftp buffalo_ver=BOOTVER=0.20 cacheShare=no console=console=ttyS0,115200 disL2Cache=yes disaMvPnp=no eeeEnable=no enaAutoRecovery=yes enaClockGating=no enaFPU=no enaWrAllo=no eth1mtu=1500 ethact=egiga1 ethaddr=00:50:43:cb:3c:bf ethmtu=1500 ethprime=egiga1 failbootcmd=bootfail hdddelay=7 idebootcmd=ext2load ide 0:1 0x1200000 /$kernel; ext2load ide 0:1 0x2600000 /$initrd; setenv bootsystem hddboot=yes; run bootcommon image_name=uImage initrd=initrd.buffalo initrd_name=uInitrd ipaddr=192.168.11.150 kernel=uImage.buffalo loadaddr=0x02000000 loads_echo=0 mvNetConfig=mv_net_config=1,(00:50:43:11:11:11,0:1:2:3:4),mtu=1500 netbsd_en=no netmask=255.255.255.0 netretry=no pcieTune=no pexMode=rc pxe_files_load=:default.arm-armada370-db:default.arm-armadaxp:default.arm pxefile_addr_r=3100000 rcvrip=169.254.100.100 rootpath=/srv/oneiric sata_delay_reset=0 sata_dma_mode=yes serverip=192.168.11.1 standalone=fsload $load_addr $image_name;setenv bootargs $console $mtdparts root=/dev/mtdblock0 rw ip=$ipaddr:$serverip$bootargs_end; bootm $load_addr; stderr=serial stdin=serial stdout=serial tftpbootcmd=tftp 0x1200000 $kernel; tftp 0x2600000 $initrd; setenv bootsystem tftpboot=yes; run bootcommon uboot_date=UBOOT_DATE="2013/11/05" usb0Mode=host usb1Mode=host usb1bootcmd=setenv usbActive 0;usb start;fatload usb 0 0x1200000 /boot/uImage370;sf protect off;run bootcommon-u usb2Mode=device usb2bootcmd=fatload usb 0 0x1200000 /boot/uImage.buffalo;fatload usb 0 0x2600000 /boot/initrd.buffalo;setenv bootsystem usbboot=yes;run bootcommon usbActive=0 vxworks_en=no yuk_ethaddr=00:00:00:EE:51:81 EnableNandBoot=1 eth1addr=88:57:EE:XX:XX:XX deviceid=XXXXXXXXX SerialNo=4016958XXXXXXXX

Buffalo Resources

 * Product Description
 * Manuals, Firmware, etc