1Intro 2----- 3The Buffalo Linkstation Pro/Live, codename LS-XHL and LS-CHLv2, is a single 4disk NAS server. The PCBs of the LS-XHL and LS-CHLv2 are almost the same. 5The LS-XHL has a faster CPU and more RAM with a wider data bus, therefore 6the LS-XHL PCB has two SDRAM chips. Both have a Kirkwood CPU (Marvell 788F6281). The only on-board storage is a 4 Mbit SPI flash which stores the 8bootloader and its environment. The linux kernel and the initial ramdisk 9are loaded from the hard disk. 10 11Important! Changes since v2019.07 12--------------------------------- 13In u-boot v2019.07 the driver for the SATA port was changed to a new 14one. This means that the old "ide" command and block interface is not 15supported anymore. More important, the boot commands have changed. You have 16to overwrite the boot commands in your envionment with the new ones: 17 18 env default -f bootcmd_legacy 19 env default -f bootcmd_hdd 20 saveenv 21 22Rescue Mode 23----------- 24These linkstations don't have a populated serial port. There is no way to 25access an (unmodified) board other than using the netconsole. If you want 26to recover from a bad environment setting or an empty environment, you can 27do this only with a working network connection. 28 29Therefore, on entering the resuce mode, a random ethernet address is 30generated if no valid address could be loaded from the environment variable 31'ethaddr' and a DHCP request is sent. After a successful DHCP response is 32received, the network settings are configured and the ncip is unset. Thus 33all netconsole packets are broadcasted and you can use the netconsole to 34access the board from any host within the network segment. To determine the 35IP address assigned to the board, you either have to sniff the traffic or 36check the logs/leases of your DHCP server. 37 38The resuce mode is selected by holding the push button for at least one 39second, while powering-on the device. The status LED turns solid amber if 40the resuce mode is enabled, thus providing a visual feedback. 41 42Pressing the same button for at least 10 seconds on power-up will erase the 43environment and reset the board. In this case the visual indication will 44be: 45- blue, for about one second 46- amber, for about nine seconds 47- red, until you release the button 48 49This ensures, that you still can recover a device with a broken 50environment by first erasing the environment and then entering the rescue 51mode. 52 53Once the rescue mode is started, use the ncb binary from the tools/ 54directory to access your board. 55 56The common use case for this is setting a MAC address. Let us assume you 57have an empty environment, the board comes up with the amber LED turned on. 58Then you enter the rescue mode, connect to the board with the ncb tool and 59use the following commands to set your MAC address: 60 61 setenv -f ethaddr 00:00:00:00:00:00 62 saveenv 63 reset 64 65Of course you need to replace the 00:00:00:00:00:00 with your valid MAC 66address, which can be found on a sticker on the bottom of your box. 67 68You cannot store the network console setting in the environment. On reset 69it is automatically restored to serial. Therefore, you have to use the 70push-button to enter resuce mode again. 71 72 73Status LED 74---------- 75blue 76 Bootloader is running normally. 77 78amber 79 No ethaddr set. Use the `Rescue Mode` to set one. 80 81red 82 Something bad happend during loading the operating system. 83 84The default behavior of the linux kernel is to turn on the blue LED. So if 85the blinking blue LED changes to solid blue the kernel was loaded 86successfully. 87 88 89Power-on Switch 90--------------- 91The power-on switch is a software switch. If it is not in ON position when 92the bootloader starts, the bootloader will disable the HDD and USB power 93and stop the fan. Then it loops until the switch is in ON position again, 94enables the power and fan again and continue booting. 95 96 97Boot sources 98------------ 99The environment defines several different boot sources: 100 101legacy 102 This is the default boot source. It loads the kernel and ramdisk from the 103 attached HDD using the original filenames. The load addresses were 104 modified to support loading larger kernels. But it should behave the same 105 as the original bootloader. 106 107hdd 108 Use this for new-style booting. Loads three files /vmlinuz, /initrd.img 109 and /dtb from the boot partition. This should work out of the box if you 110 have debian and the flash-kernel package installed. 111 112usb 113 Same as hdd expect, that the files are loaded from an attached USB mass 114 storage device and the filename for the device tree is kirkwood-lsxhl.dtb 115 (or kirkwood-lschlv2.dtb). 116 117net 118 Same as usb expect, that the file are loaded from the network. 119 120rescue 121 Automatically activated if the push button is pressed for at least one 122 second on power-up. Does a DHCP request and enables the network console. 123 See `Rescue Mode` for more information. 124 125You can change the boot source by setting the 'bootsource' variable to the 126corresponding value. Please note, that the restore_env script will the the 127bootsource back to 'legacy'. 128 129 130Flash map 131--------- 13200000 - 5ffff u-boot 13360000 - 6ffff reserved, may be used to store dtb 13470000 - 7ffff u-boot environment 135 136 137Compiling 138--------- 139make lsxhl_config (or lschlv2_config) 140make u-boot.kwb 141 142 143Update your board 144----------------- 145Just flash the resulting u-boot.kwb to the beginning of the SPI flash. If 146you already have a bootloader CLI, you can use the following commands: 147 148 sf probe 0 149 bootp ${loadaddr} u-boot.kwb 150 sf erase 0 +${filelen} 151 sf write 0 ${fileaddr} ${filesize} 152