Linkstation LS-QVL
Specs
CPU | 1.6 GHz ARMv5 (Marvell 88F6282) |
Memory | 256MB DDR3 |
Bays | 4 |
Network | 1x 10/100/1000 Mbps (Marvell 88E1518) |
Sata | 4x SATA via 4-port multiplier (Marvell 88SM4140) |
NAND Flash | 512MB **LS-QVL/E Only |
SPI Flash | 512KB |
USB 2.0 | 1x Front, 1x Rear via USB Hub (USB2512B) |
USB 3.0 | None |
Fan | Yes |
Power | 19V - 4.74A |
Stock Firmware Installation
- For the LS-QVL/E There is a simple procedure to lead the firmware from the device's NAND, this procedure can be found in Buffalo's "Quick Setup Guide for LS-QVL/E" which can be found here
- Restoring_Stock_Firmware_without_TFTP
Custom Firmware/Operating System installation
These devices are supported by Debian and can be setup using the Debian network-console installer, see Installing_Debian_on_Supported_Devices
Serial Console
The Rx and Tx lines can be accessed next to the SoC where they connect to their pull-up resistors R99 and R150. U-boot appears to check GPIO 49 to decide whether to interact with the serial console. To re-enable it you can move the 4.7k resistor pulling it high on R60 to R59. It might be more correct to use a 1k resistor instead, I just removed R60 and bridged R59 which works but probably risks damage to the board.
The traces between the SoC and the serial header on the board are disconnected underneath the SPI chip on the back, I haven't pulled the chip to confirm but I would bet there are pads underneath. Both sides are also accessible underneath where the spot for the NAND chip goes which is easier to access for the non-NAND devices.
Pictures
DMESG output
Booting Linux on physical CPU 0 Initializing cgroup subsys cpu Linux version 3.3.4-88f6281 (root@HP7907) (gcc version 4.2.0 20070413 (prerelease)) #1 Thu Jun 22 15:47:23 JST 2017 CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977 CPU: VIVT data cache, VIVT instruction cache Machine: Feroceon-KW Using UBoot passing parameters structure Memory policy: ECC disabled, Data cache writeback paging_init: zero_page=0xcfffc000 arm_bootmem_init: boot_pages=0x2 bitmap=0xfffa000 On node 0 totalpages: 65536 free_area_init_node: node 0, pgdat c051ec1c, node_mem_map c1401000 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=0x00800040,12M panic=5 BOOTVER=0.26 mtdparts=nand_mtd:0x1000000(boot),0x1e800000(rootfs),0x800000(reserve) nandboot=yes 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: 236096k/236096k available, 26048k 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) modules : 0xbf000000 - 0xc0000000 ( 16 MB) .text : 0xc0008000 - 0xc04ce000 (4888 kB) .init : 0xc04ce000 - 0xc04f3000 ( 148 kB) .data : 0xc04f4000 - 0xc0520620 ( 178 kB) .bss : 0xc0520620 - 0xc0532428 ( 72 kB) SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 NR_IRQS:128 Console: colour dummy device 80x30 Calibrating delay loop... 1594.16 BogoMIPS (lpj=7970816) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok Setting up static identity map for 0x17568 - 0x175a4 � : consistent_pte=0xc8000b80 xor: measuring software checksum speed arm4regs : 1375.600 MB/sec 8regs : 1102.400 MB/sec 32regs : 1236.400 MB/sec xor: using function: arm4regs (1375.600 MB/sec) NET: Registered protocol family 16 Feroceon L2: Enabling L2 Feroceon L2: Cache support initialised. CPU Interface ------------- SDRAM_CS0 ....base 00000000, size 256MB SDRAM_CS1 ....disable SDRAM_CS2 ....disable SDRAM_CS3 ....disable PEX0_MEM ....base e0000000, size 128MB PEX0_IO ....base f2000000, size 1MB PEX1_MEM ....base e8000000, size 128MB PEX1_IO ....base f2100000, size 1MB INTER_REGS ....base f1000000, size 1MB NFLASH_CS ....base fa000000, size 2MB SPI_CS ....base f4000000, size 16MB BOOT_ROM_CS ....no such DEV_BOOTCS ....no such CRYPT_ENG ....base f0000000, size 2MB Marvell Development Board (LSP Version KW_LSP_5.1.3_patch13)-- MVLSQV Soc: MV88F6282 Rev 1 LE Detected Tclk 200000000 and SysClk 533333333 gpiochip_add: registered GPIOs 0 to 63 on device: mv_gpio MV Buttons Device Load Marvell USB EHCI Host controller #0: c8047000 PEX0 interface detected no Link. PEX1 interface detected no Link. PCI host bridge to bus 0000:00 pci_bus 0000:00: root bus resource [io 0x0000-0xffffffff] pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffff] PCI: bus0: Fast back to back transfers enabled PCI host bridge to bus 0000:01 pci_bus 0000:01: root bus resource [io 0x0000-0xffffffff] pci_bus 0000:01: root bus resource [mem 0x00000000-0xffffffff] PCI: bus1: Fast back to back transfers enabled bio: create slab <bio-0> at 0 raid6: int32x1 146 MB/s raid6: int32x2 175 MB/s raid6: int32x4 171 MB/s raid6: int32x8 156 MB/s raid6: using algorithm int32x2 (175 MB/s) vgaarb: loaded SCSI subsystem initialized Switching to clocksource kw_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 PCI: CLS 0 bytes, default 32 Trying to unpack rootfs image as initramfs... rootfs image is not initramfs (no cpio magic); looks like an initrd Freeing initrd memory: 12288K XOR registered 4 channels XOR 2nd invalidate WA enabled cesadev_init(c04d6134) MV Buttons Driver Load 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 = 0x03030000 initial_polarity_val_high = 0x0001710c 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) © 2001-2006 Red Hat, Inc. fuse init (API version 7.18) SGI XFS with ACLs, security attributes, large block numbers, no debug enabled SGI XFS Quota Management subsystem msgmni has been set to 485 alg: No test for cipher_null (cipher_null-generic) alg: No test for ecb(cipher_null) (ecb-cipher_null) alg: No test for digest_null (digest_null-generic) alg: No test for compress_null (compress_null-generic) alg: No test for stdrng (krng) Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) io scheduler noop registered io scheduler deadline registered (default) io scheduler cfq registered Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A console [ttyS0] enabled serial8250.1: ttyS1 at MMIO 0xf1012100 (irq = 34) is a 16550A brd: module loaded loop: module loaded Integrated Sata device found mvSataInitAdapter : regVal changed(0x00000010) scsi0 : Marvell SCSI to SATA adapter scsi1 : Marvell SCSI to SATA adapter ** BUFFALO Disable Command Queuing Function [0 0] ** SPI Serial flash detected @ 0xf4000000, 512KB (8sec x 64KB) ONFI flash detected NAND device: Manufacturer ID: 0xad, Chip ID: 0xdc (Hynix NAND 512MiB 3,3V 8-bit) Scanning device for bad blocks Bad eraseblock 52 at 0x000000680000 Bad eraseblock 54 at 0x0000006c0000 Bad eraseblock 56 at 0x000000700000 Bad eraseblock 58 at 0x000000740000 Bad eraseblock 60 at 0x000000780000 Bad eraseblock 62 at 0x0000007c0000 Bad eraseblock 64 at 0x000000800000 Bad eraseblock 66 at 0x000000840000 Bad eraseblock 68 at 0x000000880000 Bad eraseblock 70 at 0x0000008c0000 Bad eraseblock 72 at 0x000000900000 Bad eraseblock 74 at 0x000000940000 Bad eraseblock 76 at 0x000000980000 Bad eraseblock 78 at 0x0000009c0000 Bad eraseblock 80 at 0x000000a00000 Bad eraseblock 82 at 0x000000a40000 Bad eraseblock 84 at 0x000000a80000 Bad eraseblock 86 at 0x000000ac0000 Bad eraseblock 583 at 0x0000048e0000 Bad eraseblock 887 at 0x000006ee0000 Bad eraseblock 3964 at 0x00001ef80000 3 cmdlinepart partitions found on MTD device nand_mtd Creating 3 MTD partitions on "nand_mtd": 0x000000000000-0x000001000000 : "boot" 0x000001000000-0x00001f800000 : "rootfs" 0x00001f800000-0x000020000000 : "reserve" Loading Marvell Ethernet Driver: o Cached descriptors in DRAM o DRAM SW cache-coherency o 2 Giga ports supported o Single RX Queue support - ETH_DEF_RXQ=0 o Single TX Queue support - ETH_DEF_TXQ=0 o TCP segmentation offload (TSO) supported o Receive checksum offload supported o Transmit checksum offload supported o Driver ERROR statistics enabled o Proc tool API enabled o Gateway support enabled o Using Marvell Header Mode o L2 IGMP support o Rx descripors: q0=128 o Tx descripors: q0=532 o Loading network interface(s): o register under mv88fx_eth platform o eth0, ifindex = 2, GbE port = 0 Warning: Giga 1 is Powered Off Warning: Giga 1 is Powered Off 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: raid6 personality registered for level 6 md: raid5 personality registered for level 5 md: raid4 personality registered for level 4 device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@redhat.com TCP cubic registered NET: Registered protocol family 17 NET: Registered protocol family 15 Registering the dns_resolver key type rtc-mv rtc-mv: setting system clock to 2050-12-19 03:27:50 UTC (2555033270) md: Waiting for all devices to be available before autodetect md: If you don't use raid, use raid=noautodetect md: Autodetecting RAID arrays. md: Scanned 0 and added 0 devices. md: autorun ... md: ... autorun DONE. RAMDISK: gzip image found at block 0 VFS: Mounted root (ext2 filesystem) on device 1:0. EXT3-fs (md0): error: unable to read superblock EXT2-fs (md0): error: unable to read superblock EXT3-fs (md0): error: unable to read superblock EXT2-fs (md0): error: unable to read superblock EXT3-fs (md1): error: unable to read superblock EXT2-fs (md1): error: unable to read superblock EXT3-fs (md1): error: unable to read superblock EXT2-fs (md1): error: unable to read superblock md: md0 stopped. md: md1 stopped. md: md10 stopped. Freeing init memory: 148K udevd (699): /proc/699/oom_adj is deprecated, please use /proc/699/oom_score_adj instead. eth0: link down eth0: started eth0: link up, full duplex, speed 1 Gbps 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.70059: Marvell Orion EHCI ehci_marvell ehci_marvell.70059: new USB bus registered, assigned bus number 1 ehci_marvell ehci_marvell.70059: irq 19, io base 0xf1050100 ehci_marvell ehci_marvell.70059: 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 uhci_hcd: USB Universal Host Controller Interface driver Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver usblp usb 1-1: new high-speed USB device number 2 using ehci_marvell hub 1-1:1.0: USB hub found hub 1-1:1.0: 2 ports detected bfSetMagicKey > Changed to 0x71 from 0x5c
U-boot Output
U-Boot 1.1.4 (Oct 25 2010 - 21:29:44) Marvell version: 3.5.3 U-Boot code: 00600000 -> 0066FFF0 BSS: -> 006BF4A0 BUFFALO_BOOTVER=0.24 Soc: 88F6282 A0CPU running @ 1500Mhz L2 running @ 500Mhz SysClock = 500Mhz , TClock = 200Mhz DRAM (DDR3) CAS Latency = 7 tRP = 8 tRAS = 20 tRCD=8 DRAM CS[0] base 0x00000000 size 256MB DRAM Total size 256MB 16bit width Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done NAND:No NAND device found!!! 0 MB [512kB@f8000000] Flash: 512 kB CPU : Marvell Feroceon (Rev 1) Streaming disabled Write allocate disabled USB 0: host mode MacicKey = 0x00 buffalo_IsStopAtUbootStatus > MagicKey = 0x00 bfSetMagicKey > Changed to 0x5c from 0x00 HDD0 Power ON HDD1 Power ON HDD2 Power ON HDD3 Power ON Marvell Serial ATA Adapter Integrated Sata device found Port Multiplier found @ 0 0. Vendor: 11ab ports: 4 [0 0 0]: Enable DMA mode (6) Device 0 @ 0 0 0: Model: SanDisk SSD U100 16GB Firm: 10.56.14 Ser#: 132553400779 Type: Hard Disk Supports 48-bit addressing Capacity: 15272.0 MB = 14.9 GB (31277232 x 512) MAC Address : 00:00:00:00:00:00 ide error: address (0x006508ef) is not 2 bytes aligned! ** ext2fs_devread() read error - block ** Bad ext2 partition or disk - 0:0 ** 5423671 bytes read ** Bad partition - 1:0 ** ** Bad partition 1 ** ** Bad partition - 2:0 ** ** Bad partition 1 ** ** Bad partition - 3:0 ** ** Bad partition 1 ** Booting from Device 0 Resetting EthPhy Net: egiga0 hit any key to switch tftp boot. Hit any key to stop autoboot: 2 \x08\x08\x08 0 switched to TFTP boot. Hit any key to stop autoboot: 3 \x08\x08\x08 0
U-Boot env
baudrate=115200 loads_echo=0 rootpath=/mnt/ARM_FS/ netmask=255.255.255.0 run_diag=yes stdin=serial stdout=serial stderr=serial console=console=ttyS0,115200 mainlineLinux=no CASset=min enaMonExt=no enaCpuStream=no enaWrAllo=no pexMode=RC disL2Cache=no setL2CacheWT=yes disL2Prefetch=yes enaICPref=yes enaDCPref=yes sata_dma_mode=yes MALLOC_len=1 bootargs_root=root=/dev/sda2 rw initrd=0x00800040,12M panic=5 bootargs_end=:::DB88FXX81:eth0:none image_name=uImage buffalo_ver=BOOTVER=0.23 kernel=uImage.buffalo initrd=initrd.buffalo bootcommon=setenv bootargs $console $bootargs_root $bootargs_func $bootargs_wol $buffalo_ver $mtdparts $tftpboot $nandboot; bootm 0x00100000 0x00800000 tftpbootcmd=tftp 0x00100000 $kernel; tftp 0x00800000 $initrd; setenv tftpboot tftpboot=yes; run bootcommon idebootcmd=ext2load ide 0:1 0x00100000 /$kernel; ext2load ide 0:1 0x00800000 /$initrd; run bootcommon mtdids=nand0=nand_mtd mtdparts=mtdparts=nand_mtd:0x1000000(boot),0x1e800000(rootfs),0x800000(reserve) nandbootcmd=fsload 0x00100000 /$kernel; fsload 0x00800000 /$initrd; setenv nandboot nandboot=yes; run bootcommon bootcmd=for i in $bootorder; do run ${i}bootcmd; done lcd0_enable=0 lcd0_params=640x480-16@60 lcd0_bootargs=video-dovefb:lcd0:$(lcd0_params) clcd.lcd0_enable=$(lcd0_enable) bootdelay=3 disaMvPnp=no ethmtu=1500 mvPhoneConfig=mv_phone_config=dev[0]:fxs,dev[1]:fxo mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500 usb0Mode=host nandEcc=1bit netretry=no rcvrip=169.254.100.100 loadaddr=0x02000000 autoload=no enaAutoRecovery=yes ethaddr=4C:E6:76:E7:A5:E2 SerialNo=85838044301378 ipaddr=192.168.1.14 serverip=192.168.1.1 ncip=192.168.1.146 ncbootcmd=setenv stdout=nc;setenv stdin=nc; run idebootcmd debbootcmd=ext2load ide 0:1 0x00100000 /; ext2load ide 0:1 0x00800000 /; setenv bootargs root=/dev/sda2 rw panic=5 ; bootm 0x00100000 0x00800000 bootorder=ide tftp nand