blob: ef5ed4288063ed529b63caf71a6c7b0319e752b8 [file] [log] [blame]
Michael Walle38b2f092015-02-13 18:45:57 +01001Intro
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}