blob: dd9e9433807df2f9d3e1c2e69f32827e7b01a6af [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
Michael Walle79b4b942019-04-11 15:36:21 +020011Important! 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
Michael Walle38b2f092015-02-13 18:45:57 +010021
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
Michael Walle7e4d76c2022-08-17 21:38:09 +020034access 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
Michael Walle38b2f092015-02-13 18:45:57 +010036check 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:
Michael Walle7e4d76c2022-08-17 21:38:09 +020045- blue, for about one second
46- amber, for about nine seconds
47- red, until you release the button
Michael Walle38b2f092015-02-13 18:45:57 +010048
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/
Michael Walle7e4d76c2022-08-17 21:38:09 +020054directory to access your board.
Michael Walle38b2f092015-02-13 18:45:57 +010055
56The common use case for this is setting a MAC address. Let us assume you
Michael Walle7e4d76c2022-08-17 21:38:09 +020057have an empty environment, the board comes up with the amber LED turned on.
Michael Walle38b2f092015-02-13 18:45:57 +010058Then you enter the rescue mode, connect to the board with the ncb tool and
59use the following commands to set your MAC address:
60
Michael Walle7e4d76c2022-08-17 21:38:09 +020061 setenv -f ethaddr 00:00:00:00:00:00
62 saveenv
63 reset
Michael Walle38b2f092015-02-13 18:45:57 +010064
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
Michael Walle7e4d76c2022-08-17 21:38:09 +020068You 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
Michael Walle38b2f092015-02-13 18:45:57 +010072
73Status LED
74----------
Michael Walle7e4d76c2022-08-17 21:38:09 +020075blue
Michael Walle38b2f092015-02-13 18:45:57 +010076 Bootloader is running normally.
77
Michael Walle7e4d76c2022-08-17 21:38:09 +020078amber
Michael Walle38b2f092015-02-13 18:45:57 +010079 No ethaddr set. Use the `Rescue Mode` to set one.
80
Michael Walle7e4d76c2022-08-17 21:38:09 +020081red
Michael Walle38b2f092015-02-13 18:45:57 +010082 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}