summaryrefslogtreecommitdiff
path: root/target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh
Commit message (Collapse)AuthorAgeFilesLines
* ipq806x: switch to full dual-boot for the nbg6817 sysupgrade supportStefan Lippers-Hollmann2018-02-131-3/+23
| | | | | | | | | | | | | | Instead of writing to the currently booted partition set, this implements full dual-boot support for sysupgrade by always writing to the other, currently inactive, partition set and toggling the dualflag after a successful flash. The currently active/ booted partition set is determined by parsing /proc/cmdline for its rootfs parameter (supplied by the DTS), instead of reading from the 0:DUAL_FLAG mtd, in order to prevent (potentially) bricking both partition sets. Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* ipq806x: request the first free loop device dynamically for the nbg6817 ↵Stefan Lippers-Hollmann2018-02-131-4/+5
| | | | | | | | | | | | sysupgrade Instead of hardcoding /dev/loop0, it's safer to query for the first free loop device and assign that dynamically. While /dev/loop0 is a reasonable assumption immediately following "losetup --detach-all", detaching the mounted overlay is no longer strictly necessary once dual-boot support has been added for the nbg6817. Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* ipq806x: use absolute the device path in $kernel for the nbg6817 sysupgradeStefan Lippers-Hollmann2018-02-131-4/+4
| | | | | | | Harmonize the variable usage for $kernel and $rootfs to always contain the full device path, instead of just its basename. Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* ipq806x: fix ZyXEL NBG6817 sysupgradeMathias Kresin2018-01-181-7/+10
| | | | | | | | | | | Use the first found directory in the tar archive instead of relying on a directory named according to the userspace boardname. It allows to change the boardname without adding another compatibility layer to the zyxel sysupgrade. Fixes: 33f09cf15178 ("ipq806x: convert to dt-based board-detection") Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x: convert to dt-based board-detectionLuis Araneda2018-01-131-1/+1
| | | | | | | | | | | | | | | | | Use the generic board detection method: - Board name: First compatible string from the device tree - Board model: Model property from the device tree Change occurrences of board name in userspace by the compatible string, and removed target specific board detection script Replace the definition of SUPPORTED_DEVICES in Device/Default to extract the dt compatible string from each device definition. Additionally, for devices supported by lede-17.01, append the value of BOARD_NAME to SUPPORTED_DEVICES in the device definition. Signed-off-by: Luis Araneda <luaraneda@gmail.com>
* ip806x: nbg6817: sysupgrade support both targets for kernel/ rootfs partitionsStefan Lippers-Hollmann2017-10-291-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this commit and the previous "nbg6817: don't hardcode the rootfs location by using append-rootblock instead" applied, it is possible to boot- and sysupgrade from both dual-boot sets (the primary mmcblk0p4+mmcblk0p5 or the alternative mmcblk0p7+mmcblk0p8). However the sysupgrade support does not toggle between both dual-boot sets between firmware upgrades so far. The partition map of the eMMC used in the nbg6817 is: Found valid GPT with protective MBR; using GPT. Disk /dev/mmcblk0: 7471104 sectors, 3.6 GiB Logical sector size: 512 bytes Disk identifier (GUID): XXX Partition table holds up to 12 entries First usable sector is 34, last usable sector is 7471070 Partitions will be aligned on 2-sector boundaries Total free space is 1 sectors (512 bytes) Number Start (sector) End (sector) Size Code Name 1 34 8225 4.0 MiB FFFF rootfs_data 2 8226 16417 4.0 MiB FFFF romd 3 16418 18465 1024.0 KiB FFFF header 4 18466 26657 4.0 MiB FFFF kernel 5 26658 157729 64.0 MiB FFFF rootfs 6 157730 159777 1024.0 KiB FFFF header_1 7 159778 167969 4.0 MiB FFFF kernel_1 8 167970 299041 64.0 MiB FFFF rootfs_1 9 299042 823329 256.0 MiB FFFF bu1 10 823330 7471069 3.2 GiB FFFF bu2 rootfs_data is the ext4 formatted overlay of the OEM firmware, LEDE ignores it due to its (too) small size. romd/ bu1 are initialized with zeroes (0x00) and unused. bu2 is formatted with ext4 and used for streamboost and other optional functionality by the OEM firmware, it is reformatted during factory resets of the OEM firmware. header/ header_1 contains version information for the corresponding vendor firmwares installed to kernel/rootfs or kernel_1/ rootfs_1, the format hasn't been completely reverse engineered so far and remains left untouched by LEDE: V1.00(ABCS.2)C0: 00000000 00 00 a7 74 01 32 f0 00 56 31 2e 30 30 28 41 42 |...t.2..V1.00(AB| 00000010 43 53 2e 32 29 43 30 00 ff ff ff ff ff ff ff ff |CS.2)C0.........| 00000020 ff ff ff ff ff ff ff ff 00 00 d5 dc 4e 42 47 36 |............NBG6| 00000030 38 31 37 00 ff ff ff ff ff ff ff ff ff ff ff ff |817.............| 00000040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00000060 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 22 a3 |..............".| 00000070 00 1c 70 00 ff ff ff ff ff ff ff ff ff ff ff ff |..p.............| 00000080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00000800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00100000 V1.00(ABCS.5)C0: 00000000 00 00 bf 94 01 46 d8 00 56 31 2e 30 30 28 41 42 |.....F..V1.00(AB| 00000010 43 53 2e 35 29 43 30 00 ff ff ff ff ff ff ff ff |CS.5)C0.........| 00000020 ff ff ff ff ff ff ff ff 00 00 d6 5a 4e 42 47 36 |...........ZNBG6| 00000030 38 31 37 00 ff ff ff ff ff ff ff ff ff ff ff ff |817.............| 00000040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00000060 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 c0 2c |...............,| 00000070 00 1c 58 00 ff ff ff ff ff ff ff ff ff ff ff ff |..X.............| 00000080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00100000 Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* treewide: use only board_name function to get nameMathias Kresin2017-07-151-1/+1
| | | | | | | | | | | | Do not parse /tmp/sysinfo/board_name, /proc/cpuinfo or the device tree compatible string directly. Always use the board_name function to get the board name. The admswconfig package still reads /proc/cpuinfo directly. The code looks somehow broken and the whole adm5120 which uses this package looks unmaintained. Leave it as it is for now. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x/nbg6817: add sysupgrade supportAndré Valentin2016-10-261-0/+87
Add new way of flashing to mmc devices based on rootfs split with loop devices. Signed-off-by: André Valentin <avalentin@marcant.net>