Linkstation LS-QVL

From Buffalo NAS Wiki

Specs

Linkstation LS-QVL

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: [email protected]
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

Buffalo Resources