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