From 9149ed4f05f86e3fd0dd55c87913ced8a5a32ba4 Mon Sep 17 00:00:00 2001 From: Pawel Dembicki Date: Sat, 11 Dec 2021 23:23:22 +0100 Subject: mvebu: cortexa9: Add support for Ctera C200-V2 2-Bay NAS - maximum two 3.5" Harddisks Hardware: - SoC: Marvell 88F6707-A1 ARMv7 Processor 1,2GHz (ARMADA 370 SoC) - Ram: 1GB (2x Nanya NT5CC512M8DN-D1) - NAND Flash: 256MB (ESMT F59L2G81A-25T) - Lan: 1x GBE (Marvell 88E1318-NNB2) - Storage: 2x SATA HDD 3.5" Slot - USB: 2x USB 3.0 port (Renesas uPD720202) - Console: Internal J3 connector (1: Vcc, 2: Rx, 3: Tx, 4: GND) - LEDs: 13x GPIO controlled - Buttons: 2x GPIO controlled Known issues: - Buzzer is unused due lack of proper driver - USB1/2 usbport ledtrigger won't work (through DT) - Renesas uPD720202 requires firmware file. It's possible to find non-free binary. Please look for 'UPDATE.mem' file and put in into '/lib/firmware/renesas_usb_fw.mem' file. Installation: - Apply factory initramfs image via stock web-gui. - Do sysupgrade to make installation complete. Back to stock: - OpenWrt rootfs partition use unused space after stock firmware. - Full revert is possible. - Login via ssh and run: ## ctera_c200-v2_back_to_factory start ## . /lib/functions.sh part=$(find_mtd_part "active_bank") active_bank=$(strings "$part" | grep bank) if [ "$active_bank" = "bank1" ]; then echo "bank2" > /tmp/change_bank else echo "bank1" > /tmp/change_bank fi mtd write /tmp/change_bank active_bank reboot ## ctera_c200-v2_back_to_factory end ## Signed-off-by: Pawel Dembicki (put back-to-stock script into commit message, removed dup. SUBPAGESIZE var, added 01_leds for non-working dt-usb-port trigger) Signed-off-by: Christian Lamparter --- target/linux/mvebu/cortexa9/base-files/etc/board.d/01_leds | 4 ++++ .../linux/mvebu/cortexa9/base-files/etc/board.d/02_network | 7 +++++++ .../linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh | 13 ++++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) (limited to 'target/linux/mvebu/cortexa9') diff --git a/target/linux/mvebu/cortexa9/base-files/etc/board.d/01_leds b/target/linux/mvebu/cortexa9/base-files/etc/board.d/01_leds index 381596d85d..161d111ea7 100644 --- a/target/linux/mvebu/cortexa9/base-files/etc/board.d/01_leds +++ b/target/linux/mvebu/cortexa9/base-files/etc/board.d/01_leds @@ -11,6 +11,10 @@ board=$(board_name) boardname="${board##*,}" case "$board" in +ctera,c200-v2 + ucidef_set_led_usbport "usb2" "USB2" "green:usb-2" "usb1-port1" "usb2-port1" + ucidef_set_led_usbport "usb3" "USB3" "green:usb-1" "usb1-port2" "usb2-port2" + ;; kobol,helios4) ucidef_set_led_usbport "USB" "USB" "helios4:green:usb" "usb1-port1" "usb2-port1" "usb3-port1" "usb4-port1" "usb5-port1" ;; diff --git a/target/linux/mvebu/cortexa9/base-files/etc/board.d/02_network b/target/linux/mvebu/cortexa9/base-files/etc/board.d/02_network index ad61dbea43..36769e8c18 100644 --- a/target/linux/mvebu/cortexa9/base-files/etc/board.d/02_network +++ b/target/linux/mvebu/cortexa9/base-files/etc/board.d/02_network @@ -12,6 +12,9 @@ mvebu_setup_interfaces() local board="$1" case "$board" in + ctera,c200-v2) + ucidef_set_interface_lan "eth0" "dhcp" + ;; cznic,turris-omnia) ucidef_set_interfaces_lan_wan "lan0 lan1 lan2 lan3 lan4" "eth2" ;; @@ -58,6 +61,10 @@ mvebu_setup_macs() buffalo,ls421de) lan_mac=$(mtd_get_mac_ascii u-boot-env eth1addr) ;; + ctera,c200-v2) + label_mac=$(mtd_get_mac_ascii dev_params mac) + lan_mac=$label_mac + ;; linksys,wrt1200ac|\ linksys,wrt1900ac-v2|\ linksys,wrt1900acs|\ diff --git a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh index 5e69374837..030e66e699 100755 --- a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh +++ b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh @@ -3,7 +3,7 @@ # Copyright (C) 2016 LEDE-Project.org # -RAMFS_COPY_BIN='fw_printenv fw_setenv' +RAMFS_COPY_BIN='fw_printenv fw_setenv strings' RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock' REQUIRE_IMAGE_METADATA=1 @@ -26,6 +26,17 @@ platform_do_upgrade() { buffalo,ls421de) nand_do_upgrade "$1" ;; + ctera,c200-v2) + part=$(find_mtd_part "active_bank") + + if [ -n "$part" ]; then + CI_KERNPART="$(strings $part | grep bank)" + nand_do_upgrade "$1" + else + echo "active_bank partition missed!" + return 1 + fi + ;; cznic,turris-omnia|\ kobol,helios4|\ solidrun,clearfog-base-a1|\ -- cgit v1.2.3