aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mvebu/base-files/lib/upgrade
Commit message (Collapse)AuthorAgeFilesLines
* treewide: use new procd sysupgrade $UPGRADE_BACKUP variableRafał Miłecki2019-09-122-2/+2
| | | | | | | | | | | It's a variable set by procd that should replace hardcoded /tmp/sysupgrade.tgz. This change requires the most recent procd with the commit 0f3c136 ("sysupgrade: set UPGRADE_BACKUP env variable"). Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 641f6b6c26cb9ab5e1198810015e5f4b2b5b34ad)
* treewide: when copying a backup file always specify dest nameRafał Miłecki2019-09-122-2/+2
| | | | | | | | $CONF_TAR shouldn't be assumed to always point to the sysupgrade.tgz. This change makes code more generic and allows refactoring $CONF_TAR. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 62dbe361a1b1ed1506bc0387bff55eddcb619e49)
* treewide: don't hardcode "sysupgrade.tgz" file nameRafał Miłecki2019-09-121-1/+1
| | | | | | | | | 1) Add BACKUP_FILE and use it when copying an archive to be restored after sysupgrade (on the next preinit). 2) Use CONF_TAR for copying backup prepared by the /sbin/sysupgrade Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit bf390478727ac5f4f9d6fb684de48b8150bcec67)
* mvebu: sysupgrade: don't use $ARGV in platform_check_image()Rafał Miłecki2019-09-071-1/+1
| | | | | | | | | | sysupgrade passes image path to platform_check_image() as an argument so it can be simply accessed using $1 Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 76e43c82b55518b794ac24f9acfb3888c638f99b) [rmilecki: dropping ARGV without this change broke sysupgrade] Fixes: 6ac62c4b6cae ("base-files: don't set ARGV and ARGC")
* treewide: sysupgrade: don't use $ARGV in platform_do_upgrade()Rafał Miłecki2019-09-071-3/+3
| | | | | | | | | | stage2 passes image path to platform_do_upgrade() as an argument so it can be simply accessed using $1 Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 8b4bc7abe073489a3595eeb2d81818852319c148) [rmilecki: dropping ARGV without this change broke sysupgrade] Fixes: 6ac62c4b6cae ("base-files: don't set ARGV and ARGC")
* treewide: sysupgrade: pass "save_partitions" option to the "sysupgrade" methodRafał Miłecki2019-09-041-1/+1
| | | | | | | | This explicitly lets stage2 know if partitions should be preserved. No more "touch /tmp/sysupgrade.always.overwrite.bootdisk.partmap" hack. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit b6f4cd57e19a8cfcd9ff52582b65164ce6213c3d)
* mvebu: sysupgrade: drop platform_copy_config_sdcard() argumentRafał Miłecki2019-09-041-1/+1
| | | | | | | | That function doesn't take any arguments so don't pass anything when calling it. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 670ce65a44db4263ee21a3fce962c47378ef042b)
* mvebu: sysupgrade: sdcard: fix platform_do_upgrade_sdcardKlaus Kudielka2019-08-171-18/+16
| | | | | | | | | | | | Unconditionally execute the final case statement, even if the disk layout changed. This is necessary, to keep the original Turris Omnia flash instructions working: The disk layout WILL change, when switching from TurrisOS to OpenWRT. Without updating the uboot environment at the same time, the user would end up with an unbootable system. Fixes commit 2e5a0b81ec ("mvebu: sysupgrade: sdcard: keep user added ...") Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
* mvebu: Fix platform.sh for non-generic espressobin versionsBrett Mastbergen2019-06-281-2/+4
| | | | | | | | | When the non-generic espressobin targets were added these board checks were not updated. One side effect of this is that config is not saved during an upgrade of -emmc,-v7, or -v7-emmc devices. Signed-off-by: Brett Mastbergen <bmastbergen@untangle.com> (cherry picked from commit 95c1dc5e8678a1fd87234a4d77c8c6643703023c)
* mvebu: fix regression for non-generic ESPRESSObin versionsVladimir Vid2019-06-281-1/+2
| | | | | | | | | | | | | | When targets for multiple ESPRESSObin devices were added, not all files were updated which means any ESPRESSObin version beside generic won't have proper networking, sysupgrade and uboot-env. This patch fixes the issue. * fixup network detection * fixup uboot-env * fixup platform.sh for sysupgrade Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr> (cherry picked from commit bc47285cb3c0125424e628521f905f1f0d7b4cef)
* mtd: base-files: Unify dual-firmware devices (Linksys)Jeff Kletsky2019-05-181-17/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consistently handle boot-count reset and upgrade across ipq40xx, ipq806x, kirkwood, mvebu Dual-firmware devices often utilize a specific MTD partition to record the number of times the boot loader has initiated boot. Most of these devices are NAND, typically with a 2k erase size. When this code was ported to the ipq40xx platform, the device in hand used NOR for this partition, with a 16-byte "record" size. As the implementation of `mtd resetbc` is by-platform, the hard-coded nature of this change prevented proper operation of a NAND-based device. * Unified the "NOR" variant with the rest of the Linksys variants * Added logging to indicate success and failure * Provided a meaningful return value for scripting * "Protected" the use of `mtd resetbc` in start-up scripts so that failure does not end the boot sequence * Moved Linksys-specific actions into common `/etc/init.d/bootcount` For upgrade, these devices need to determine which partition to flash, as well as set certain U-Boot envirnment variables to change the next boot to the newly flashed version. * Moved upgrade-related environment changes out of bootcount * Combined multiple flashes of environment into single one * Current-partition detection now handles absence of `boot_part` Runtime-tested: Linksys EA8300 Signed-off-by: Jeff Kletsky <git-commits@allycomm.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [checkpatch.pl fixes, traded split strings for 80+ chars per line]
* mvebu: use device-tree board detectionTomasz Maciej Nowak2019-05-112-6/+6
| | | | | | | | Convert whole target to Device Tree based board detection instead of identifying devices by dts file name. With this we can drop mvebu.sh translation script and rely on common method for model detection. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: sysupgrade: sdcard: keep user added partitonsTomasz Maciej Nowak2019-04-062-6/+77
| | | | | | | | Currently sysupgrade overwrites whole disk and destroys partitions added by user. Sync the sysupgrade code with the one present in x86 target to remedy this behaviour. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: base-files: autodetect upgrade deviceTomasz Maciej Nowak2019-04-061-6/+13
| | | | | | | Since some boards could be also booted from other mediums than SD card, lets make the upgrade block device autodetected. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: add support for WRT32X (venom)Michael Gray2018-05-142-3/+3
| | | | | | | | | | | | | | | | | | Linksys WRT32X (Venom) is identical in hardware to the WRT3200ACM with a different flash layout and boots zImage rather than uImage. Specification: - Marvell Armada 385 88F6820 (2x 1.8GHz) - 256MB of Flash - 512MB of RAM - 2.4GHz (bgn) and 5GHz (an+ac wave 2) - 4x 1Gbps LAN + 1x 1Gbps WAN - 1x USB 3.0 and 1x USB 2.0/eSATA (combo port) Flash instruction: Apply factory image via web-gui. Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
* mvebu: add support for MACCHIATObin (cortex-a72)Damir Samardzic2018-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add initial support for Marvell MACCHIATObin, cortex-a72 based Marvell ARMADA 8040 Community board. Comes in two forms: Single Shot and Double Shot. Specifications: - Quad core Cortex-A72 (up to 2GHz) - DDR4 DIMM slot with optional ECC and single/dual chip select support - Dual 10GbE (1/2.5/10GbE) via copper or SFP 2.5GbE (1/2.5GbE) via SFP 1GbE via copper - SPI Flash - 3 X SATA 3.0 connectors - MicroSD connector - eMMC - PCI x4 3.0 slot - USB 2.0 Headers (Internal) - USB 3.0 connector - Console port (UART) over microUSB connector - 20-pin Connector for CPU JTAG debugger - 2 X UART Headers - 12V input via DC Jack - ATX type power connector - Form Factor: Mini-ITX (170 mm x 170 mm) More details at http://macchiatobin.net Booting from micro SD card: 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot with boot script: setenv bootcmd "load mmc 1:1 0x4d00000 boot.scr; source 0x4d00000" saveenv or manually: setenv fdt_name armada-8040-mcbin.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr $image_name;ext4load mmc 1:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr - $fdt_addr' saveenv Signed-off-by: Damir Samardzic <damir.samardzic@sartura.hr>
* mvebu: Get rid of RTC hack for Turris Omnia.Rosen Penev2018-03-311-1/+1
| | | | | | As Solidrun's RTC patch got merged, this hack is no longer needed. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* mvebu: new subtarget cortex A53Tomasz Maciej Nowak2018-03-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces new subtarget for Marvell EBU Armada Cortex A53 processor based devices. The first device is Globalscale ESPRESSObin. Some hardware specs: SoC: Marvell Armada 3700LP (88F3720) dual core ARM Cortex A53 processor up to 1.2GHz RAM: 512MB, 1GB or 2GB DDR3 Storage: SATA interface µSD card slot with footprint for an optional 4GB EMMC 4MB SPI NOR flash for bootloader Ethernet: Topaz Networking Switch (88E6341) with 3x GbE ports Connectors: USB 3.0 USB 2.0 µUSB port connected to PL2303SA (USB to serial bridge controller) for UART access Expansion: 2x 46-pin GPIO headers for accessories and shields with I2C, GPIOs, PWM, UART, SPI, MMC, etc MiniPCIe slot Misc: Reset button, JTAG interface Currently booting only from µSD card is supported. The boards depending on date of dispatch can come with various U-Boot versions. For the newest version 2017.03-armada-17.10 no manual intervention should be needed to boot OpenWrt image. For the older ones it's necessary to modify default U-Boot environment: 1. Interrupt boot process to run U-Boot command line, 2. Run following commands: (for version 2017.03-armada-17.06 and 2017.03-armada-17.08) setenv bootcmd "load mmc 0:1 0x4d00000 boot.scr; source 0x4d00000" saveenv (for version 2015.01-armada-17.02 and 2015.01-armada-17.04) setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p2 rw rootwait" setenv bootcmd "ext4load mmc 0:1 ${fdt_addr} armada-3720-espressobin.dtb; ext4load mmc 0:1 ${kernel_addr} Image; booti ${kernel_addr} - ${fdt_addr}" saveenv 3. Poweroff, insert SD card with OpenWrt image, boot and enjoy. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: add support for Turris OmniaRyan Mounce2018-03-102-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds support for the Turris Omnia and builds an eMMC sysupgrade image in the same format as the SolidRun ClearFog. An initramfs image in the simple yet Omnia-specific 'medkit' image format is also built in order to ease the initial flashing process. Notable hardware support omissions are support for switching between SFP cage and copper PHY, and RGB LED control. Due to a current limitation of DSA, only 1/2 CPU switch uplinks are used. Specifications: - Marvell Armada 385 1.6GHz dual-core ARMv7 CPU - 1GB DDR3 RAM - 8GB eMMC Flash - 5x Gigabit LAN via Marvell 88E6176 Switch (2x RGMII CPU ports) - 1x switchable RJ45 (88E1514 PHY) / SFP SGMII WAN - 2x USB 3.0 - 12x dimmable RGB LEDs controlled by independent MCU - 3x Mini PCIe slots - Optional Compex WLE200N2 Mini PCIe AR9287 2x2 802.11b/g/n (2.4GHz) - Optional Compex WLE900VX Mini PCIe QCA9880 3x3 802.11ac (2.4 / 5GHz) - Optional Quectel EC20 Mini PCIe LTE modem Flash instructions: If the U-Boot environment has been modified previously (likely manually via serial console), first use serial to reset the default environment. => env default -a => saveenv Method 1 - USB 'medkit' image w/o serial - Copy openwrt-mvebu-turris-omnia-sysupgrade.img.gz and omnia-medkit-openwrt-mvebu-turris-omnia-initramfs.tar.gz to the root of a USB flash drive formatted with FAT32 / ext2/3/4 / btrfs / XFS. Note that the medkit MUST be named omnia-medkit*.tar.gz - Disconnect other USB devices from the Omnia and connect the flash drive to either USB port. - Power on the Omnia and hold down the rear reset button until 4 LEDs are illuminated, then release. - Wait approximately 2 minutes for the Turris Omnia to flash itself with the temporary image, during which LEDs will change multiple times. - Connect a computer to a LAN port of the Turris Omnia with a DHCP client - (if necessary) ssh-keygen -R 192.168.1.1 - ssh root@192.168.1.1 $ mount /dev/sda1 /mnt $ sysupgrade /mnt/openwrt-mvebu-turris-omnia-sysupgrade.img.gz - Wait another minute for the final OpenWrt image to be flashed. The Turris Omnia will reboot itself and you can remove the flash drive. Method 2 - TFTP w/ serial - Extract omnia-medkit-openwrt-mvebu-turris-omnia-initramfs.tar.gz and copy dtb + zImage to your TFTP server (rename if desired) - Connect Turris Omnia WAN port to DHCP-enabled network with TFTP server - Connect serial console and interrupt U-Boot => dhcp => setenv serverip <tftp_server_ip_here> => tftpboot 0x01000000 zImage => tftpboot 0x02000000 dtb => bootz 0x01000000 - 0x02000000 - OpenWrt will now boot from ramdisk - Download openwrt-mvebu-turris-omnia-sysupgrade.img.gz to /tmp/ $ sysupgrade /tmp/openwrt-mvebu-turris-omnia-sysupgrade.img.gz - Wait another minute for the final OpenWrt image to be flashed. The Turris Omnia will reboot itself. Signed-off-by: Ryan Mounce <ryan@mounce.com.au>
* mvebu: rename clearfog sysupgrade script and functionsTomasz Maciej Nowak2018-03-022-5/+5
| | | | | | | | Cosmetic name change of ClearFog sysupgrade script and its functions to more generic sdcard. This way it won't be confusing for other future device additions. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* mvebu: remove fs declaration in mount commandsTomasz Maciej Nowak2018-03-021-1/+1
| | | | | | | Allows to have other file system for boot partition without breaking sysupgrade. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* treewide: remove obsolete sysupgrade watchdog killMathias Kresin2018-02-161-10/+0
| | | | | | | | | The watchdog kill command was meant for busybox watchdog. Busybox watchdog was replaced by the procd watchdog mid 2013 with commit df7ce9301a25 ("busybox: disable the watchdog utility by default"), which makes the kill command obsolete since quite some time. Signed-off-by: Mathias Kresin <dev@kresin.me>
* mvebu: Fix ClearFog sysupgrade board definitionsRyan Mounce2017-10-151-5/+2
| | | | | | | Remove redundancy for platform_do_upgrade_clearfog Fix platform_copy_config_clearfog to reflect -base/-pro split Signed-off-by: Ryan Mounce <ryan@mounce.com.au>
* treewide: use the generic board_name functionMathias Kresin2017-07-151-9/+3
| | | | | | Use the generic function instead ot the target specific ones. Signed-off-by: Mathias Kresin <dev@kresin.me>
* base-files: automatically handle paths and symlinks for RAMFS_COPY_BINMatthias Schiffer2017-07-111-1/+1
| | | | | | | | | | | | Depending on busybox applet selection, paths of basic utiilties may differ, and may not work as symlinks to busybox. Simply using whatever binary is found in PATH and detecting symlinks automatically is more robust and easier to maintain. The list of binaries is also slightly cleaned up and duplicates are removed. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* mvebu: fix sysupgradeMatthias Schiffer2017-06-012-18/+8
| | | | | | | | | | | | | | | | | mvebu was modifying RAMFS_COPY_BIN and RAMFS_COPY_DATA from a sysupgrade_pre_upgrade hook. As the ramfs is created from stage2, this did not have an effect anymore after the staged sysupgrade changes. As it doesn't really hurt to copy fw_printenv and fw_setenv unconditionally, simply add them in /lib/upgrade/platform.sh, so stage2 will see them. Config copying is moved to a function called by platform_copy_config, where it belongs. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> Fixes: FS#821 Fixes: 30f61a34b4cf "base-files: always use staged sysupgrade"
* mvebu: add ClearFog Base supportMarko Ratkaj2017-05-141-0/+3
| | | | | | | | | | Add support for SolidRun ClearFog Base board. The base model is a smaller version of ClearFog Pro without the DSA switch, replacing it with a second copper gigabit port, and only one PCIe socket. Signed-off-by: Marko Ratkaj <marko.ratkaj@sartura.hr>
* mvebu: ClearFog renamed upstream to ClearFog ProMarko Ratkaj2017-05-141-1/+1
| | | | | | The conventional model is now known as the "Clearfog Pro" Signed-off-by: Marko Ratkaj <marko.ratkaj@sartura.hr>
* mvebu: fix sysupgrade for Linksys WRT3200ACMVignesh Balasubramaniam2016-12-041-1/+1
| | | | | | | | | | | | | | | sysupgrade command fails due to missing U-Boot environment-processing binaries on sysupgrade ramdisk. The missing binaries result in the following output: Switching to ramdisk... Performing system upgrade... ash: /usr/sbin/fw_printenv: not found ash: fw_setenv: not found ash: touch: not found cannot find target partition Signed-off-by: Vignesh Balasubramaniam <vigneshb.hp@gmail.com>
* mvebu: use image metadata for firmware validationFelix Fietkau2016-11-241-21/+2
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mvebu: add support for the Linksys WRT3200ACM (Rango)Imre Kaloz2016-10-241-3/+4
| | | | | Signed-off-by: Imre Kaloz <kaloz@openwrt.org> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* mvebu: fix sysupgradeAaron Curley2016-10-041-0/+2
| | | | | | | | | | | | | | sysupgrade command fails due to missing U-Boot environment-processing binaries on sysupgrade ramdisk. The missing binaries result in the following output: Switching to ramdisk... Performing system upgrade... ash: /usr/sbin/fw_printenv: not found ash: fw_setenv: not found ash: touch: not found cannot find target partition Fixes FS#197. Signed-off-by: Aaron Curley <accwebs@gmail.com>
* mvebu: add sysupgrade support for clearfogJonas Gorski2016-09-263-7/+60
| | | | | | | | Add and enable sysupgrade support for clearfog boards, based on how the brcm2708 target does it. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> Acked-by: Felix Fietkau <nbd@nbd.name>
* mvebu: add support for the Linksys WRT1900ACS (Shelby)Imre Kaloz2015-10-081-2/+2
| | | | | | Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 47164
* mvebu: make flashing more safeImre Kaloz2015-05-271-1/+4
| | | | | | | | | Turn on the auto recovery feature when flashing and turn it off on successful bootup. Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 45792
* mvebu: add support for the Linksys Caiman and CobraImre Kaloz2015-04-161-2/+2
| | | | | | Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 45456
* mvebu: migrate mamba support to the upstreamed codeImre Kaloz2015-04-121-2/+2
| | | | | | Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 45400
* handle sysupgrade tar files on the WRT1900ACImre Kaloz2014-07-142-5/+34
| | | | | | Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 41647
* add sysupgrade supportImre Kaloz2014-07-132-0/+104
Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 41630