mvebu: improve sysupgrade for FortiGate/FortiWiFi devices
authorINAGAKI Hiroshi <musashino.open@gmail.com>
Mon, 16 Sep 2024 20:43:58 +0000 (05:43 +0900)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 22 Sep 2024 13:29:16 +0000 (15:29 +0200)
commit06fed85948b1cb4e44664fdd31dba3d7f1f1b0fd
treea5133434889f0fffe72f3347e8a9726351f43e84
parent27535ead7213898c316ef75e1d585aa192539a61
mvebu: improve sysupgrade for FortiGate/FortiWiFi devices

Update sysupgrade script (fortinet.sh) for Fortinet devices in
mvebu/cortexa9 and fix the following issues,

- Some individuals of FortiGate/FortiWiFi 30E/5xE devices has wrong
  kernel/rootfs offsets in "firmware-info" partition and they are not
  updated with the current sysupgrade script for Fortinet devices
  (fortinet.sh).
  As a result, the bootloader tries to load kernel data from the wrong
  address and boot with it after OpenWrt installation.
  The new script handles offsets in addition to length values.

and improve the following points.

- Only 2 bytes are handled with the current sysupgrade script
  (fortinet.sh) for kernel/rootfs length. The new script handles 4 bytes
  instead.

- The image names of image0/image1 are not handled and not updated when
  sysupgrade. The new sysupgrade script handles it and update to
  "<dist> <version> <revision>" if firmware metadata is available.
  (ex.: "OpenWrt SNAPSHOT r27440-25384026")

log of new sysupgrade script (fortinet.sh):

Tue Sep 17 10:29:16 UTC 2024 upgrade: Performing system upgrade...
Image Index: 0
Image Name : "OpenWrt SNAPSHOT r27440-25384026"
             --> "OpenWrt SNAPSHOT r27441-b3a0806a05"

  kernel:
    old: 0x003c4e00@0x00200000
    new: 0x003c4e00@0x00200000

  rootfs:
    old: 0x005c0200@0x00800000
    new: 0x005c0200@0x00800000

Unlocking kernel ...

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16409
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/mvebu/cortexa9/base-files/lib/upgrade/fortinet.sh
target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh