mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
layerscape: armv8_64b: add Traverse Ten64 NAND variant
The Ten64 board[1] is based around NXP's Layerscape LS1088A SoC.
It is capable of booting both standard Linux distributions
from disk devices, using EFI, and booting OpenWrt
from NAND.
See the online manual for more information, including the
flash layout[2].
This patchset adds support for generating Ten64 images
for NAND boot.
For disk boot, one can use the EFI support that was
recently added to the armvirt target.
We previously supported NAND users by building
inside our armvirt/EFI target[3], but this approach
is not suitable for OpenWrt upstream. Users who
used our supplied NAND images will be able to upgrade
to this via sysupgrade.
Signed-off-by: Mathew McBride <matt@traverse.com.au>
[1] - https://www.traverse.com.au/hardware/ten64
[2] - https://ten64doc.traverse.com.au/hardware/flash/
[3] - Example:
285e4360e1
This commit is contained in:
parent
f70ee53b08
commit
af0546da34
@ -16,6 +16,9 @@ case "$board" in
|
|||||||
traverse,ls1043s)
|
traverse,ls1043s)
|
||||||
ubootenv_add_uci_config "/dev/mtd1" "0x40000" "0x2000" "0x20000"
|
ubootenv_add_uci_config "/dev/mtd1" "0x40000" "0x2000" "0x20000"
|
||||||
;;
|
;;
|
||||||
|
traverse,ten64)
|
||||||
|
ubootenv_add_uci_config "/dev/mtd3" "0x0000" "0x80000" "0x80000"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
config_load ubootenv
|
config_load ubootenv
|
||||||
|
@ -508,6 +508,7 @@ CONFIG_MTD_NAND_ECC_SW_HAMMING=y
|
|||||||
CONFIG_MTD_NAND_FSL_IFC=y
|
CONFIG_MTD_NAND_FSL_IFC=y
|
||||||
CONFIG_MTD_PHYSMAP=y
|
CONFIG_MTD_PHYSMAP=y
|
||||||
CONFIG_MTD_RAW_NAND=y
|
CONFIG_MTD_RAW_NAND=y
|
||||||
|
CONFIG_MTD_SPI_NAND=y
|
||||||
CONFIG_MTD_SPI_NOR=y
|
CONFIG_MTD_SPI_NOR=y
|
||||||
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
||||||
CONFIG_MTD_SPLIT_FIRMWARE=y
|
CONFIG_MTD_SPLIT_FIRMWARE=y
|
||||||
@ -515,7 +516,7 @@ CONFIG_MTD_SPLIT_FIT_FW=y
|
|||||||
CONFIG_MTD_SST25L=y
|
CONFIG_MTD_SST25L=y
|
||||||
CONFIG_MTD_UBI=y
|
CONFIG_MTD_UBI=y
|
||||||
CONFIG_MTD_UBI_BEB_LIMIT=20
|
CONFIG_MTD_UBI_BEB_LIMIT=20
|
||||||
# CONFIG_MTD_UBI_BLOCK is not set
|
CONFIG_MTD_UBI_BLOCK=y
|
||||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||||
CONFIG_MULTIPLEXER=y
|
CONFIG_MULTIPLEXER=y
|
||||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||||
|
@ -17,6 +17,10 @@ traverse,ls1043s)
|
|||||||
ucidef_set_led_netdev "xgact" "10G Activity" "ls1043s:yellow:10gact" "eth6"
|
ucidef_set_led_netdev "xgact" "10G Activity" "ls1043s:yellow:10gact" "eth6"
|
||||||
ucidef_set_led_netdev "xglink" "10G Link" "ls1043s:green:10glink" "eth6"
|
ucidef_set_led_netdev "xglink" "10G Link" "ls1043s:green:10glink" "eth6"
|
||||||
;;
|
;;
|
||||||
|
traverse,ten64)
|
||||||
|
ucidef_set_led_netdev "sfp1" "SFP 1" "ten64:green:sfp1:down" "eth8" "link tx rx"
|
||||||
|
ucidef_set_led_netdev "sfp2" "SFP 2" "ten64:green:sfp2:up" "eth9" "link tx rx"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
board_config_flush
|
board_config_flush
|
||||||
|
@ -17,6 +17,10 @@ case "$(board_name)" in
|
|||||||
ucidef_set_interface_lan "eth0 eth1 eth2 eth3 eth6"
|
ucidef_set_interface_lan "eth0 eth1 eth2 eth3 eth6"
|
||||||
ucidef_set_interface_wan "eth4"
|
ucidef_set_interface_wan "eth4"
|
||||||
;;
|
;;
|
||||||
|
traverse,ten64)
|
||||||
|
ucidef_set_interface_lan "eth0 eth1 eth2 eth3"
|
||||||
|
ucidef_set_interface_wan "eth6"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
board_config_flush
|
board_config_flush
|
||||||
|
@ -20,6 +20,14 @@ traverse,ls1043s)
|
|||||||
ucidef_add_gpio_switch "lte_disable" "LTE Airplane Mode" "394"
|
ucidef_add_gpio_switch "lte_disable" "LTE Airplane Mode" "394"
|
||||||
ucidef_add_gpio_switch "lte_power" "LTE Power" "395"
|
ucidef_add_gpio_switch "lte_power" "LTE Power" "395"
|
||||||
;;
|
;;
|
||||||
|
traverse,ten64)
|
||||||
|
ucidef_add_gpio_switch "lte_reset" "Cell Modem Reset" "376"
|
||||||
|
ucidef_add_gpio_switch "lte_power" "Cell Modem Power" "377"
|
||||||
|
ucidef_add_gpio_switch "lte_disable" "Cell Modem Airplane mode" "378"
|
||||||
|
ucidef_add_gpio_switch "gnss_disable" "Cell Modem Disable GNSS receiver" "379"
|
||||||
|
ucidef_add_gpio_switch "lower_sfp_txidsable" "Lower SFP+ TX Disable" "369"
|
||||||
|
ucidef_add_gpio_switch "upper_sfp_txdisable" "Upper SFP+ TX Disable" "373"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
board_config_flush
|
board_config_flush
|
||||||
|
@ -49,6 +49,26 @@ platform_do_upgrade_traverse_nandubi() {
|
|||||||
nand_do_upgrade "$1" || (echo "Upgrade failed, setting bootsys ${bootsys}" && fw_setenv bootsys $bootsys)
|
nand_do_upgrade "$1" || (echo "Upgrade failed, setting bootsys ${bootsys}" && fw_setenv bootsys $bootsys)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
platform_do_upgrade_traverse_slotubi() {
|
||||||
|
part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
|
||||||
|
echo "Active boot slot: ${part}"
|
||||||
|
new_active_sys="b"
|
||||||
|
|
||||||
|
if [ ! -z "${part}" ]; then
|
||||||
|
if [ "${part}" = "ubia" ]; then
|
||||||
|
CI_UBIPART="ubib"
|
||||||
|
else
|
||||||
|
CI_UBIPART="ubia"
|
||||||
|
new_active_sys="a"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "Updating UBI part ${CI_UBIPART}"
|
||||||
|
fw_setenv "openwrt_active_sys" "${new_active_sys}"
|
||||||
|
nand_do_upgrade "$1"
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
platform_copy_config_sdboot() {
|
platform_copy_config_sdboot() {
|
||||||
local diskdev partdev parttype=ext4
|
local diskdev partdev parttype=ext4
|
||||||
|
|
||||||
@ -90,6 +110,10 @@ platform_check_image() {
|
|||||||
nand_do_platform_check "traverse-ls1043" $1
|
nand_do_platform_check "traverse-ls1043" $1
|
||||||
return $?
|
return $?
|
||||||
;;
|
;;
|
||||||
|
traverse,ten64)
|
||||||
|
nand_do_platform_check "ten64-mtd" $1
|
||||||
|
return $?
|
||||||
|
;;
|
||||||
fsl,ls1012a-frdm | \
|
fsl,ls1012a-frdm | \
|
||||||
fsl,ls1012a-frwy-sdboot | \
|
fsl,ls1012a-frwy-sdboot | \
|
||||||
fsl,ls1012a-rdb | \
|
fsl,ls1012a-rdb | \
|
||||||
@ -130,6 +154,9 @@ platform_do_upgrade() {
|
|||||||
traverse,ls1043s)
|
traverse,ls1043s)
|
||||||
platform_do_upgrade_traverse_nandubi "$1"
|
platform_do_upgrade_traverse_nandubi "$1"
|
||||||
;;
|
;;
|
||||||
|
traverse,ten64)
|
||||||
|
platform_do_upgrade_traverse_slotubi "${1}"
|
||||||
|
;;
|
||||||
fsl,ls1012a-frdm | \
|
fsl,ls1012a-frdm | \
|
||||||
fsl,ls1012a-rdb | \
|
fsl,ls1012a-rdb | \
|
||||||
fsl,ls1021a-twr | \
|
fsl,ls1021a-twr | \
|
||||||
|
@ -64,6 +64,19 @@ define Build/traverse-fit
|
|||||||
@mv -f $@.new $@
|
@mv -f $@.new $@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Build/traverse-fit-ls1088
|
||||||
|
./mkits-multiple-config.sh -o $@.its -A $(LINUX_KARCH) \
|
||||||
|
-v $(LINUX_VERSION) -k $@ -a $(KERNEL_LOADADDR) \
|
||||||
|
-e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
|
||||||
|
-C gzip -c 1 -c 2 \
|
||||||
|
-d $(DTS_DIR)/freescale/fsl-ls1088a-ten64.dtb \
|
||||||
|
-D "TEN64" -n "ten64" -a $(FDT_LOADADDR) -c 1 \
|
||||||
|
-d $(DTS_DIR)/freescale/fsl-ls1088a-rdb.dtb \
|
||||||
|
-D "LS1088ARDB" -n "ls1088ardb" -a $(FDT_LOADADDR) -c 2
|
||||||
|
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
|
||||||
|
@mv -f $@.new $@
|
||||||
|
endef
|
||||||
|
|
||||||
define Device/fix-sysupgrade
|
define Device/fix-sysupgrade
|
||||||
DEVICE_COMPAT_VERSION := 2.0
|
DEVICE_COMPAT_VERSION := 2.0
|
||||||
DEVICE_COMPAT_MESSAGE := DTB was added to sysupgrade. Image format is different. \
|
DEVICE_COMPAT_MESSAGE := DTB was added to sysupgrade. Image format is different. \
|
||||||
|
@ -451,3 +451,35 @@ define Device/traverse_ls1043
|
|||||||
SUPPORTED_DEVICES := traverse,ls1043s traverse,ls1043v
|
SUPPORTED_DEVICES := traverse,ls1043s traverse,ls1043v
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += traverse_ls1043
|
TARGET_DEVICES += traverse_ls1043
|
||||||
|
|
||||||
|
define Device/traverse_ten64_mtd
|
||||||
|
DEVICE_VENDOR := Traverse
|
||||||
|
DEVICE_MODEL := Ten64 (NAND boot)
|
||||||
|
DEVICE_NAME := ten64-mtd
|
||||||
|
DEVICE_PACKAGES += \
|
||||||
|
uboot-envtools \
|
||||||
|
kmod-rtc-rx8025 \
|
||||||
|
kmod-sfp \
|
||||||
|
kmod-i2c-mux-pca954x \
|
||||||
|
restool
|
||||||
|
DEVICE_DESCRIPTION = \
|
||||||
|
Generate images for booting from NAND/ubifs on Traverse Ten64 (LS1088A) \
|
||||||
|
family boards. For disk (NVMe/USB/SD) boot, use the armvirt target instead.
|
||||||
|
FILESYSTEMS := squashfs
|
||||||
|
KERNEL_LOADADDR := 0x80000000
|
||||||
|
KERNEL_ENTRY_POINT := 0x80000000
|
||||||
|
FDT_LOADADDR := 0x90000000
|
||||||
|
KERNEL_SUFFIX := -kernel.itb
|
||||||
|
DEVICE_DTS := freescale/fsl-ls1088a-ten64
|
||||||
|
IMAGES := nand.ubi sysupgrade.bin
|
||||||
|
KERNEL := kernel-bin | gzip | traverse-fit-ls1088 gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb $$(FDT_LOADADDR)
|
||||||
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||||
|
IMAGE/nand.ubi := append-ubi
|
||||||
|
KERNEL_IN_UBI := 1
|
||||||
|
BLOCKSIZE := 128KiB
|
||||||
|
PAGESIZE := 2048
|
||||||
|
MKUBIFS_OPTS := -m $$(PAGESIZE) -e 124KiB -c 600
|
||||||
|
SUPPORTED_DEVICES = traverse,ten64
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += traverse_ten64_mtd
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user