Commit 43730ba72c176ffc4d9858249475f458203d9757

Authored by Michael Walle
Committed by Luka Perkov
1 parent 4fe49d7bec

lsxl: add a README file

The README describes the recovery method which can be used if the NAS box
is not reachable anymore. Addionally, it describes the different boot
scripts.

Signed-off-by: Michael Walle <michael@walle.cc>

Showing 1 changed file with 139 additions and 0 deletions Side-by-side Diff

board/buffalo/lsxl/README
  1 +Intro
  2 +-----
  3 +The Buffalo Linkstation Pro/Live, codename LS-XHL and LS-CHLv2, is a single
  4 +disk NAS server. The PCBs of the LS-XHL and LS-CHLv2 are almost the same.
  5 +The LS-XHL has a faster CPU and more RAM with a wider data bus, therefore
  6 +the LS-XHL PCB has two SDRAM chips. Both have a Kirkwood CPU (Marvell
  7 +88F6281). The only on-board storage is a 4 Mbit SPI flash which stores the
  8 +bootloader and its environment. The linux kernel and the initial ramdisk
  9 +are loaded from the hard disk.
  10 +
  11 +
  12 +Rescue Mode
  13 +-----------
  14 +These linkstations don't have a populated serial port. There is no way to
  15 +access an (unmodified) board other than using the netconsole. If you want
  16 +to recover from a bad environment setting or an empty environment, you can
  17 +do this only with a working network connection.
  18 +
  19 +Therefore, on entering the resuce mode, a random ethernet address is
  20 +generated 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
  22 +received, the network settings are configured and the ncip is unset. Thus
  23 +all netconsole packets are broadcasted and you can use the netconsole to
  24 +access board from any host within the network segment. To determine the IP
  25 +address assigned to the board, you either have to sniff the traffic or
  26 +check the logs/leases of your DHCP server.
  27 +
  28 +The resuce mode is selected by holding the push button for at least one
  29 +second, while powering-on the device. The status LED turns solid amber if
  30 +the resuce mode is enabled, thus providing a visual feedback.
  31 +
  32 +Pressing the same button for at least 10 seconds on power-up will erase the
  33 +environment and reset the board. In this case the visual indication will
  34 +be:
  35 +- blinking blue, for about one second
  36 +- solid amber, for about nine seconds
  37 +- blinking amber, until you release the button
  38 +
  39 +This ensures, that you still can recover a device with a broken
  40 +environment by first erasing the environment and then entering the rescue
  41 +mode.
  42 +
  43 +Once the rescue mode is started, use the ncb binary from the tools/
  44 +directory to access your board. There is a helper script named
  45 +'restore_env' to save your changes. It unsets all the network variables
  46 +which were set by the rescue mode, saves your changes and then resets the
  47 +board.
  48 +
  49 +The common use case for this is setting a MAC address. Let us assume you
  50 +have an empty environment, the board comes up with the amber LED blinking.
  51 +Then you enter the rescue mode, connect to the board with the ncb tool and
  52 +use the following commands to set your MAC address:
  53 +
  54 + setenv ethaddr 00:00:00:00:00:00
  55 + run restore_env
  56 +
  57 +Of course you need to replace the 00:00:00:00:00:00 with your valid MAC
  58 +address, which can be found on a sticker on the bottom of your box.
  59 +
  60 +
  61 +Status LED
  62 +----------
  63 +blinking blue
  64 + Bootloader is running normally.
  65 +
  66 +blinking amber
  67 + No ethaddr set. Use the `Rescue Mode` to set one.
  68 +
  69 +blinking red
  70 + Something bad happend during loading the operating system.
  71 +
  72 +The default behavior of the linux kernel is to turn on the blue LED. So if
  73 +the blinking blue LED changes to solid blue the kernel was loaded
  74 +successfully.
  75 +
  76 +
  77 +Power-on Switch
  78 +---------------
  79 +The power-on switch is a software switch. If it is not in ON position when
  80 +the bootloader starts, the bootloader will disable the HDD and USB power
  81 +and stop the fan. Then it loops until the switch is in ON position again,
  82 +enables the power and fan again and continue booting.
  83 +
  84 +
  85 +Boot sources
  86 +------------
  87 +The environment defines several different boot sources:
  88 +
  89 +legacy
  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 +
  95 +hdd
  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 +
  100 +usb
  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 +
  105 +net
  106 + Same as usb expect, that the file are loaded from the network.
  107 +
  108 +rescue
  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 +
  113 +You can change the boot source by setting the 'bootsource' variable to the
  114 +corresponding value. Please note, that the restore_env script will the the
  115 +bootsource back to 'legacy'.
  116 +
  117 +
  118 +Flash map
  119 +---------
  120 +00000 - 5ffff u-boot
  121 +60000 - 6ffff reserved, may be used to store dtb
  122 +70000 - 7ffff u-boot environment
  123 +
  124 +
  125 +Compiling
  126 +---------
  127 +make lsxhl_config (or lschlv2_config)
  128 +make u-boot.kwb
  129 +
  130 +
  131 +Update your board
  132 +-----------------
  133 +Just flash the resulting u-boot.kwb to the beginning of the SPI flash. If
  134 +you 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}