layerscape: add Traverse LS1043-S support
The Traverse LS1043-S board is a router board based on NXP/Freescale's LS1043 SoC, with 4x1GBase-T, 1 SFP and 1 SFP+, as well as miniPCIe and M.2 LTE. Unlike the Layerscape reference boards, the LS1043-S board has NAND flash and uses the mainline U-Boot. This patch implements support for the LS1043-S board, as well as the earlier LS1043-V board. It is our intention that all boards in this family (LS1043-S and later, Five64) will boot the same binary. Not included in this patchset are the hwmon drivers not in the kernel (emc1704,pac1934) or the bootloader. Signed-off-by: Mathew McBride <matt@traverse.com.au>
This commit is contained in:
committed by
John Crispin
parent
481f870a02
commit
08714738d2
94
target/linux/layerscape/base-files/lib/upgrade/platform.sh
Normal file
94
target/linux/layerscape/base-files/lib/upgrade/platform.sh
Normal file
@@ -0,0 +1,94 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright 2015-2018 Traverse Technologies
|
||||
#
|
||||
platform_do_upgrade_traverse_nandubi() {
|
||||
bootsys=$(fw_printenv bootsys | awk -F= '{{print $2}}')
|
||||
newbootsys=2
|
||||
if [ "$bootsys" -eq "2" ]; then
|
||||
newbootsys=1
|
||||
fi
|
||||
mkdir -p /tmp/image
|
||||
cd /tmp/image
|
||||
get_image "$1" > image.tar
|
||||
ls -la image.tar
|
||||
files=$(tar -tf image.tar)
|
||||
echo "Files in image:"
|
||||
echo $files
|
||||
for f in $files
|
||||
do
|
||||
part_name=$(echo $f | awk -F '/' '{{print $2}}')
|
||||
if [ -z "$part_name" ] || [ "$part_name" = "CONTROL" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
[ "$part_name" = "root" ] && part_name="rootfs"
|
||||
|
||||
volume=$part_name
|
||||
if [ "$part_name" = "kernel" ] || [ "$part_name" = "rootfs" ]; then
|
||||
volume="${part_name}${newbootsys}"
|
||||
fi
|
||||
volume_id=$(ubinfo -d 0 --name $volume | awk '/Volume ID/ {print $3}')
|
||||
file_size=$(tar -tvf image.tar $f | awk '{{print $3}}')
|
||||
echo "$f size $file_size"
|
||||
tar -xOf image.tar $f | ubiupdatevol -s $file_size /dev/ubi0_$volume_id -
|
||||
|
||||
echo "$volume upgraded"
|
||||
done
|
||||
fw_setenv bootsys $newbootsys
|
||||
echo "Upgrade complete"
|
||||
}
|
||||
platform_copy_config() {
|
||||
bootsys=$(fw_printenv bootsys | awk -F= '{{print $2}}')
|
||||
rootvol=rootfs$bootsys
|
||||
volume_id=$(ubinfo -d 0 --name $rootvol | awk '/Volume ID/ {print $3}')
|
||||
mkdir -p /mnt/oldsys
|
||||
mount -t ubifs -o rw,noatime /dev/ubi0_$volume_id /mnt/oldsys
|
||||
cp -af "$CONF_TAR" /mnt/oldsys
|
||||
umount /mnt/oldsys
|
||||
}
|
||||
platform_check_image() {
|
||||
local board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
traverse,ls1043v | \
|
||||
traverse,ls1043s | \
|
||||
traverse,five64)
|
||||
local tar_file="$1"
|
||||
local kernel_length=$( (tar xf $tar_file sysupgrade-traverse-five64/kernel -O | wc -c) 2> /dev/null)
|
||||
local rootfs_length=$( (tar xf $tar_file sysupgrade-traverse-five64/root -O | wc -c) 2> /dev/null)
|
||||
[ "$kernel_length" -eq 0 -o "$rootfs_length" -eq 0 ] && {
|
||||
echo "The upgrade image is corrupt."
|
||||
return 1
|
||||
}
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
echo "Sysupgrade is not currently supported on $board"
|
||||
;;
|
||||
esac
|
||||
|
||||
return 1
|
||||
}
|
||||
platform_do_upgrade() {
|
||||
local board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
traverse,ls1043v | \
|
||||
traverse,ls1043s | \
|
||||
traverse,five64)
|
||||
platform_do_upgrade_traverse_nandubi "$ARGV"
|
||||
;;
|
||||
*)
|
||||
echo "Sysupgrade is not currently supported on $board"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
platform_pre_upgrade() {
|
||||
# Force the creation of fw_printenv.lock
|
||||
mkdir -p /var/lock
|
||||
touch /var/lock/fw_printenv.lock
|
||||
|
||||
export RAMFS_COPY_BIN="/usr/sbin/fw_printenv /usr/sbin/fw_setenv /usr/sbin/ubinfo /bin/echo ${RAMFS_COPY_BIN}"
|
||||
export RAMFS_COPY_DATA="/etc/fw_env.config /var/lock/fw_printenv.lock ${RAMFS_COPY_DATA}"
|
||||
}
|
||||
Reference in New Issue
Block a user