Linkstation LS421D

Additional Hardware Info
The OpenWRT site has additional information about this device including the location of UART and other exposed GPIO connections. https://openwrt.org/toh/buffalo/ls421de

It also links to an OpenWRT install process which I have never attempted. If you do choose to look into it note that it involves re-flashing the NAND and modifying the bootloader which may require soldering a serial connection to the board to undo.

Stock Firmware Installation

 * Buffalo's instructions to install from built in NAND
 * Restoring_Stock_Firmware_without_TFTP

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

See above note about OpenWRT

Disassembly

 * Remove both screws from the back
 * Slide cover back then remove

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 Wed Jun 21 11:44:00 JST 2017 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 64:83:58:43:50:00 >>>>>>>Tag MAC 20:50:cd:3f:6f:10 Memory policy: ECC disabled, Data cache writealloc On node 0 totalpages: 131072 free_area_init_node: node 0, pgdat c058d394, node_mem_map c05c7000 Normal zone: 1024 pages used for memmap Normal zone: 0 pages reserved Normal zone: 130048 pages, LIFO batch:31 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: [0] 0 Built 1 zonelists in Zone order, mobility grouping off. Total pages: 130048 Kernel command line: console=ttyS0,115200 root=/dev/nfs rw BOOTVER=0.16 UBOOT_DATE=2015/01/15 mtdparts=armada-nand:0x2000000(boot),0x1e000000(rootfs) PID hash table entries: 2048 (order: 1, 8192 bytes) Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Memory: 512MB = 512MB total Memory: 498080k/498080k available, 26208k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000   (   4 kB) fixmap : 0xfff00000 - 0xfffe0000   ( 896 kB) vmalloc : 0xe0800000 - 0xff000000  ( 488 MB) lowmem : 0xc0000000 - 0xe0000000   ( 512 MB) pkmap  : 0xbfe00000 - 0xc0000000   (   2 MB) modules : 0xbf000000 - 0xbfe00000  (  14 MB) .text : 0xc0008000 - 0xc0538a4c  (5315 kB) .init : 0xc0539000 - 0xc055e000  ( 148 kB) .data : 0xc055e000 - 0xc058e160  ( 193 kB) .bss : 0xc058e184 - 0xc05c6b50  ( 227 kB) NR_IRQS:256 axp_time_init Calibrating delay loop... 1196.85 BogoMIPS (lpj=5984256) 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 0x3dd9c8 - 0x3dda0c devtmpfs: initialized xor: measuring software checksum speed arm4regs :  1151.600 MB/sec 8regs    :   816.800 MB/sec 32regs   :  1149.200 MB/sec xor: using function: arm4regs (1151.600 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 512MB 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-- YANAGI Soc: MV6710 A1 LE  LSP version: Armada370_LSP_3.1.0_p15_NQ Detected Tclk 200000000, SysClk 600000000, FabricClk 600000000 gpiochip_add: registered GPIOs 0 to 64 on device: mv_gpio hw-breakpoint: debug architecture 0x4 unsupported. Marvell USB EHCI Host controller #0: d004c400 Marvell USB EHCI Host controller #1: d004c200 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 0000:00:01.0: [1912:0015] type 0 class 0x000c03 pci 0000:00:01.0: reg 10: [mem 0x40000000-0x40001fff 64bit] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold PCI: bus0: Fast back to back transfers disabled 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 pci 0000:00:01.0: BAR 0: assigned [mem 0xe0000000-0xe0001fff 64bit] bio: create slab  at 0 raid6: int32x1   135 MB/s raid6: int32x2   210 MB/s raid6: int32x4   203 MB/s raid6: int32x8   244 MB/s raid6: using algorithm int32x8 (244 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: 4096 (order: 2, 16384 bytes) TCP established hash table entries: 16384 (order: 5, 131072 bytes) TCP bind hash table entries: 16384 (order: 4, 65536 bytes) TCP: Hash tables configured (established 16384 bind 16384) 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 32 bytes, default 32 Trying to unpack rootfs image as initramfs... Freeing initrd memory: 11648K cesadev_init(c0540b7c) 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. [Switch Driver]irq = -1 install [Switch Driver] fail install irq(-1)[Switch Driver]irq = 144 install Buffalo Switch Driver (C) BUFFALO INC. Ver.0.01 installed. Kernel event proc (C) BUFFALO INC. V.1.00 installed. initial_polarity_val = 0x0001f800 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 995 async_tx: api initialized (async) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) Initializing ths8200_init Initializing dove_adi9889_init 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-- Bad block table found at page 262080, version 0x01(Hynix NAND 512MiB 3,3V 8-bit)--More-- Bad block table found at page 262016, version 0x01 nand_read_bbt: bad block at 0x000000e00000 nand_read_bbt: bad block at 0x00000fd60000 2 cmdlinepart partitions found on MTD device armada-nand Creating 2 MTD partitions on "armada-nand": 0x000000000000-0x000002000000 : "boot" 0x000002000000-0x000020000000 : "rootfs" mv_eth_probe: port_mask=0x3, cpu_mask=0x1 0 - Base 0x00000000, Size = 0x20000000. 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=d002beec o eth0, ifindex = 2, GbE port = 0 o Port 1 is connected to Linux netdevice giga p=1: mtu=1500, mac=d002beec o eth1, ifindex = 3, GbE port = 1 sky2: driver version 1.30 i2c /dev entries driver rtc-rs5c372 0-0032: rs5c372a found, 24hr, driver version 0.6 rtc-rs5c372 0-0032: create wakealarm rtc-rs5c372 0-0032: rtc core: registered rtc-rs5c372 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 ata1: SATA link down (SStatus 0 SControl F300)07-10-31 15:39:02 UTC (1193845142)--More-- ata2: SATA link up 3.0 Gbps (SStatus 123 SControl F300) ata2.00: ATA-8: KINGSTON SNV425S264GB, C091126a, max UDMA/100 ata2.00: 125045424 sectors, multi 16: LBA48 ata2.00: configured for UDMA/100 scsi 1:0:0:0: Direct-Access    ATA      KINGSTON SNV425S C091 PQ: 0 ANSI: 5 sd 1:0:0:0: [sda] 125045424 512-byte logical blocks: (64.0 GB/59.6 GiB) sd 1:0:0:0: [sda] Write Protect is off sd 1: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 sda6 sd 1:0:0:0: [sda] Attached SCSI disk Freeing init memory: 148K kjournald starting. Commit interval 5 seconds EXT3-fs (sda1): mounted filesystem with writeback data mode mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! md: md2 stopped. md: bind bio: create slab  at 1 md/raid1:md2: active with 1 out of 2 mirrors md2: detected capacity change from 0 to 1023410176 scsi_verify_blk_ioctl: 76 callbacks suppressed mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 800c0910 to a partition! md: md1 stopped. md: bind md/raid1:md1: active with 1 out of 2 mirrors md1: detected capacity change from 0 to 5114888192 scsi_verify_blk_ioctl: 6 callbacks suppressed mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! md: md0 stopped. md: bind md/raid1:md0: active with 1 out of 2 mirrors md0: detected capacity change from 0 to 1023868928 md0: unknown partition table kjournald starting. Commit interval 5 seconds EXT3-fs (md0): using internal journal EXT3-fs (md0): mounted filesystem with writeback data mode md1: unknown partition table kjournald starting. Commit interval 5 seconds EXT3-fs (md1): using internal journal EXT3-fs (md1): mounted filesystem with writeback data mode kjournald starting. Commit interval 5 seconds EXT3-fs (md1): using internal journal EXT3-fs (md1): mounted filesystem with writeback data mode md2: unknown partition table Adding 999420k swap on /dev/md2. Priority:-1 extents:1 across:999420k kjournald starting. Commit interval 5 seconds EXT3-fs (md0): using internal journal EXT3-fs (md0): mounted filesystem with writeback data mode ufsd: module license 'Commercial product' taints kernel. Disabling lock debugging due to kernel taint f000000 iver (8.7 U87E_r192070_b6, LBD=ON, delalloc, acl, ioctl, do) loaded at b--More-- NTFS (with native replay) support included exFAT support included optimized: speed Build_for__Buffalo_LS400_LS-M_k3.3.4_2012-10-26_U87E_r192070_b6 usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb xhci_hcd 0000:00:01.0: xHCI Host Controller xhci_hcd 0000:00:01.0: new USB bus registered, assigned bus number 1 xhci_hcd 0000:00:01.0: irq 58, io mem 0xe0000000 xHCI xhci_add_endpoint called for root hub xHCI xhci_check_bandwidth called for root hub hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected xhci_hcd 0000:00:01.0: xHCI Host Controller xhci_hcd 0000:00:01.0: new USB bus registered, assigned bus number 2 xHCI xhci_add_endpoint called for root hub xHCI xhci_check_bandwidth called for root hub hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected 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 3 ehci_marvell ehci_marvell.0: irq 45, io base 0xfbb50100 ehci_marvell ehci_marvell.0: USB 2.0 started, EHCI 1.00 hub 3-0:1.0: USB hub found hub 3-0:1.0: 1 port detected ehci_marvell ehci_marvell.1: Marvell Orion EHCI ehci_marvell ehci_marvell.1: new USB bus registered, assigned bus number 4 ehci_marvell ehci_marvell.1: irq 46, io base 0xfbb51100 ehci_marvell ehci_marvell.1: USB 2.0 started, EHCI 1.00 hub 4-0:1.0: USB hub found hub 4-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 mv_eth_start_internals mtu=1500 pool #1: pkt_size=1536, buf_size=1632 - 256 of 256 buffers added eth1: link up eth1: started scsi_verify_blk_ioctl: 20 callbacks suppressed mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 800c0910 to a partition! mdadm: sending ioctl 1261 to a partition! mdadm: sending ioctl 1261 to a partition! md: md101 stopped. md: bind md/raid1:md101: active with 1 out of 2 mirrors created bitmap (1 pages) for device md101 md101: bitmap initialized from disk: read 1/1 pages, set 6 of 668 bits md101: detected capacity change from 0 to 44798181376 md101: unknown partition table scsi_verify_blk_ioctl: 186 callbacks suppressed mdadm: sending ioctl 1261 to a partition! eth1: stopped mv_eth_start_internals mtu=1500 eth1: link up eth1: started
 * 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/nfs rw 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=3 bootorder=ide nand usb fail tftp buffalo_ver=BOOTVER=0.16 cacheShare=no console=console=ttyS0,115200 disL2Cache=yes disaMvPnp=no eeeEnable=no enaAutoRecovery=yes enaClockGating=no enaFPU=no enaWrAllo=no eth1mtu=1500 ethaddr=00:50:43:c9:99:9e ethmtu=1500 ethprime=egiga1 failbootcmd=bootfail 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 mtdids=nand0=armada-nand mtdparts=mtdparts=armada-nand:4m(boot),-(rootfs) mvNetConfig=switch_config=none nandEcc=1bit netbsd_en=no netmask=255.255.255.0 netretry=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="2015/01/15" 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 usbbootcmd=setenv usbActive 0;usb start;fatload usb 0 0x1200000 /uImage.buffalo;fatload usb 0 0x2600000 /initrd.buffalo;if fatIsSettingRecoveryDisk usb 0;then setenv bootsystem usbboot=yes mode=rescue; elif fatIsSettingInitializeDisk usb 0;then setenv bootsystem usbboot=yes mode=initialize; else setenv bootsystem usbboot=yes;fi;run bootcommon vxworks_en=no sn=375910016221D58XXXX eth1addr=10:6F:3F:CB:XX:XX deviceid=_tysgkFFSEbCzovfmKB1-YiMsKY6XXXX SerialNo=8005573452XXXX

Buffalo Resources

 * Product Description
 * Manuals, Firmware, etc