TS-9441 Update

From embeddedTS Manuals
Revision as of 14:35, 18 January 2022 by Lionel (talk | contribs) (Non-link text auto-updated for 2022 re-branding ( https://wiki.embeddedarm.com/wiki/TS-7400#SDHC_Media →‎ https://wiki.embeddedTS.com/wiki/TS-7400#SDHC_Media))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The TS-7400 supports both a 32 MB and 128 MB soldered down NAND flash storage. However, due to differences between their layout, eraseblock sizes, and the limitations of the 2.4 series kernel running on them, separate kernel builds are required in order to support one device or the other.

The TS-9441 is our peripheral and recovery board for the TS-7400. It includes its own bootrom and SPI NOR flash with kernel and initramfs which allows for booting a TS-7400 that may otherwise be non-booting. Additionally, the TS-9441 can be used for an end production process. Booting up a TS-7400 from us or from the field, and with some scripting, rewrite the full disk contents to prepare for re-deployment.

The TS-9441 unfortunately suffers from the same issue when supporting NAND; it can only support one device or the other at a time. The TS-9441 can be converted to support either 32 MB or 128 MB NAND with a simple script that we have created. This allows for adapting the same TS-9441 device to support TS-7400's with 32 MB or 128 MB NAND.

Update TS-9441

We've created an SD card image with a script to accomplish this task. An SD card was chosen as it is mostly agnostic of the kernel. So long as a TS-7400 can be booted (from the TS-7400 itself or a TS-9441) to initramfs, and the "sdcard.o" module loaded, it is possible to update a TS-9441 with this process. This whole setup can be adapted for different situations.

WARNING: The TS-9441 is not hot-pluggable, meaning it cannot be safely removed/inserted with power supplied to the TS-7400 and/or TS-9441. In order to update a TS-9441, it must be placed on the TS-7400 before power-up and must not be swapped out after power is applied.

Prepare SD Card

We recommend a non-SDHC/SDXC SD card for this process. In general, SD cards that are 2 GB or smaller will be the standard capacity SD cards. This process should work with SDHC cards as we've updated the SD card driver in the image for this process. However, a standard capacity SD card may need to be used if there are issues with the update process recognizing the SD card. In general, SDHC cards are 32 GB or smaller. This process will not work at all with SDXC cards, these are not supported on the TS-7400.

The SD image can be downloaded from our FTP site.

From a host Linux PC, the above image can be written to an SD card with:

bzcat ts9441-update-ts7400-20200305.dd.bz2 | dd of=/dev/sdX bs=1M conv=fsync
# Replace /dev/sdX above with the correct device node for the SD card plugged
# in to the host Linux PC, e.g. /dev/sdb, be sure to use the whole device node
# and use caution to not specify an incorrect disk!

Boot and Update

Insert the formatted SD card in to a TS-7400 with the TS-9441 to be updated attached to it. For this process, it does not matter if the TS-7400 has 32 MB or 128 MB of NAND, nor does it matter which of these the TS-9441 has been formatted for. The use of an SD card means this process does not rely on being able to mount NAND. Connect console, apply power, and boot to the initramfs. Note that if the TS-7400 has been set up to boot out of the initramfs and in to Debian, it needs to be reverted to boot to the initramfs. This process has only been tested when booting to initramfs.

The example here uses a bootable TS-9441 to boot to TS-SPIFLASH:

>> TS-SPIFLASHBOOT - built Jan 26 2007
>> Copyright (c) 2007, Technologic Systems
Finished booting in 3.14 seconds
Type 'tshelp' for help

From the initramfs, run the following commands:

insmod sdcard.o
# Check the output of 'dmesg' to ensure the SD card and its 3 partitions have been detected.
# If the SD card is not properly detected, then stop here and troubleshoot. Use a standard
# capacity SD card, or ensure that the SDHC module is used and an SDHC card is used.
# https://wiki.embeddedTS.com/wiki/TS-7400#SDHC_Media Note that SDXC media is not supported

mount -oro /dev/sdcard0/disc0/part3 /mnt/root
cd /mnt/root/ts9441-update/
./ts9441-update (32M | 128M)
# The script must be run with either "32M" or "128M" as a single argument. This argument
# reflects the NAND size to support when writing the image to TS-9441 SPI NOR flash.
# This process may take up to 60 seconds to complete. The MAC address of the TS-9441 will
# not be modified during this process.

At this point, the update is complete and the unit can be powered off. The TS-9441 has now been updated to support the specified NAND size and can be used to boot a TS-7400 of the same NAND size and will be able to successfully interact with the NAND flash.