Skip to content
Snippets Groups Projects
  1. Feb 28, 2021
    • Tony Ambardar's avatar
      bpftools: update to latest stable 5.11.2 · 92409dda
      Tony Ambardar authored
      
      Compile and run-tested on malta/mip32be, using bpftool directly and also
      libbpf (linked with tc) to inspect and load simple eBPF programs.
      
      Signed-off-by: default avatarTony Ambardar <itugrok@yahoo.com>
      92409dda
    • Tony Ambardar's avatar
      iproute2: update to 5.11.0 · b048a305
      Tony Ambardar authored
      The latest iproute2 version brings various improvements and fixes:
      https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/log/?qt=range&q=v5.10.0..v5.11.0
      
      
      
      In particular, ip and tc now use libbpf as the standard way to load BPF
      programs, rather than the old, limited custom loader. This allows more
      consistent and featureful BPF program handling e.g. support for global
      initialized variables.
      
      Also fix a longstanding problem with iproute2 builds where unneeded DSO
      dependencies are added to most utilities, bloating their installation
      footprint. From research and testing, explicitly using a "--as-needed"
      linker flag avoids the issue. Update accordingly and drop extra package
      dependencies from Makefile.
      
      Additional build and packaging updates include:
      
        - install missing development header to iproute2/bpf_elf.h
        - propagate OpenWrt verbose flag during build
        - update and refresh patches
      
      Compile and run tested: QEMU/malta-mips32be on kernels 5.4 & 5.10.
      
      All iproute2 packages were built and installed to the test image. Some
      regression testing using ip-full and tc was successfully performed to
      exercise several kmods, tc modules, and simple BPF programs.
      
      Signed-off-by: default avatarTony Ambardar <itugrok@yahoo.com>
      b048a305
    • Rosen Penev's avatar
      libpcap: update to 1.10.0 · b77f21c9
      Rosen Penev authored
      
      Simplify cmake option handling by putting everything in blocks.
      
      Add openssl patch as there's no easy way to disable.
      
      Rebase the skip manpages patch.
      
      Remove the monitor mode patch as it no longer applies.
      
      Remove flex patch as normal Makefile is no longer used.
      
      Remove USB path patch. While it is deprecated, the codepath is never
      taken. /sys/bus/usb/devices is checked before hand. If it exists, the
      function does stuff and returns. Additionally, this path is used
      elsewhere in the code.
      
      Refresh other patches.
      
      Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
      b77f21c9
    • Rui Salvaterra's avatar
      kernel/zram: remove obsolete symbol · d0d5fcad
      Rui Salvaterra authored
      Zsmalloc page table mappings are dead and gone [1]. Drop the respective kconfig
      symbol.
      
      [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.4.y&id=69dc72f058c9b98f9b66bed184cfab7c2e9f49b0
      
      
      
      Signed-off-by: default avatarRui Salvaterra <rsalvaterra@gmail.com>
      d0d5fcad
    • Alexey Dobrovolsky's avatar
      busybox: sysntpd: option to bind server to iface · e12fcf0f
      Alexey Dobrovolsky authored
      
      NTPD in busybox has option -I to bind server to IFACE.
      However, capabilities of the busybox are limited, the -I option cannot be
      repeated and only one interface can be effectively specified in it.
      This option is currently not configurable via UCI.
      The patch adds an interface option to the system config, ntp section.
      Also sort options for uci_load_validate alphabetically.
      
      Signed-off-by: default avatarAlexey Dobrovolsky <dobrovolskiy.alexey@gmail.com>
      e12fcf0f
    • Ronny Kotzschmar's avatar
      uboot-envtools: adjust compile patch to version v2021.01 · 547a932e
      Ronny Kotzschmar authored
      
      with u-boot v2020.07 some variables have been renamed so this patch needs to be adjusted
      otherwise at least with macOS as build system there are build errors
      
      Signed-off-by: default avatarRonny Kotzschmar <ro.ok@me.com>
      547a932e
    • Mathias Kresin's avatar
      lantiq: ltq-tapi: disable KPI and QOS · 348e0980
      Mathias Kresin authored
      
      The QOS feature depends on KPI2UDP which was removed from the tree with
      commit a95775e4 ("drop unmaintained packages") in 2012.
      
      Since QOS was the last user of the KPI, the feature can be disabled by
      default.
      
      Signed-off-by: default avatarMathias Kresin <dev@kresin.me>
      348e0980
    • Mathias Kresin's avatar
      ltq-vdsl-app: fix -Wundef warnings · e410fb15
      Mathias Kresin authored
      
      The following warnings are shown during build:
      
      /usr/include/vdsl/cmv_message_format.h:33:6: warning: "MEI_SUPPORT_DEBUG_STREAMS" is not defined, evaluates to 0 [-Wundef]
       #if (MEI_SUPPORT_DEBUG_STREAMS == 1)
            ^~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/vdsl/drv_mei_cpe_interface.h:2256:6: warning: "MEI_SUPPORT_OPTIMIZED_FW_DL" is not defined, evaluates to 0 [-Wundef]
       #if (MEI_SUPPORT_OPTIMIZED_FW_DL == 1)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      The headers are provided by the MEI driver, but the defines are never
      set by the vdsl app. While the struct with the
      MEI_SUPPORT_OPTIMIZED_FW_DL conditional isn't used by the vdsl app,
      however CMV_USED_PAYLOAD_8BIT_SIZE which value depends on
      MEI_SUPPORT_DEBUG_STREAMS is.
      
      Since the MEI driver doesn't provide an autogenerated header with
      compile flags, the flags are hardcoded for the vdsl app.
      
      Set them for the MEI driver as well, to indicate a relation to the
      values used for the vdsl app and to be not surprised by a changed
      default in case the MEI driver gets updated. Use the current default
      values defined in the MEI driver.
      
      Signed-off-by: default avatarMathias Kresin <dev@kresin.me>
      e410fb15
    • Daniel Golle's avatar
      selinux-policy: update to version 0.7 · 3ffc30f0
      Daniel Golle authored
      
       a857b45 resolv/locale: eventually this should be more efficient
       11ed281 some more optimization
       764a475 add redundant calls to file.search_conffile_dirs()
       7d4558e fs: treat devtmpfs that same as tmpfs
       81b677e adds irqbalance skeleton
       5506244 irqbalance rules
       cc96cd8 adds usbutil and gtpfdisk skels
       01e2a55 some fsck, gptfdisk, mkfs and usbutil rules
       d6d1e7d usbutil: output to terminal
       da576fa fsck, gptfdisk and usbutil rules
       09b39e9 unbound
       241a029 hotplugcall: allow dac_read_search (is a subset of dac_override)
       af0fe90 adds label for tcsh
       160f79e adds tcpdump
       6d02b96 adds coreutil execfile for busybox alternatives
       ac54884 coreutilexecfile: these are known to require privileges, so exclude
       8cb3b66 adds chrootexecfile
       6d329d3 this saves 9KiB and its a bit more robust
       88e2425 move addpart/delpart/partx to gptfdisk.cil
       261012d ntphotplug: reads ubox data files
       0473ace various
       740e820 work through to genfs_seclabel_symlinks loose ends (Linux 5.10)
       bef21f5 TODO adds a note about how I dont need to upgrade to polver 33 from 31
       cb2e5a3 ubus uses ntpdhotplug fd, and some genfs_seclabel_symlink changes
       07df9b9 luci, rpcd and wpad (mainly genfs_selabel related but not all)
       8d86cab genfs_seclabel loose ends for blockmount, hotplugcall, irqbalance, zram-swap
       b8156cd adds a note about how i forgot to target blockd
       6e82ab8 adds blockd and related
       254ff43 Makefile: exclude blockd from mintesttgt
       4dc6bc2 pppd update related and unbound-odhcp rules
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      3ffc30f0
    • Daniel Golle's avatar
    • Daniel Golle's avatar
      mt7623n-preloader: remove mt7622-preloader · 0246e484
      Daniel Golle authored
      
      mt7622-preloader has been superseeded by arm-trusted-firmware-mediatek.
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      0246e484
    • Daniel Golle's avatar
      uboot-mediatek: rework support for Bananapi BPi-R64 board · 03948995
      Daniel Golle authored
      Provide U-Boot variants for SD-card as well as eMMC boot, so we can
      generate whole-disk images for the device.
      While at it, rename 'mt7622' to 'mt7622-rfb1' to make it less confusing
      now that more boards are being added.
      
      Thanks to Frank Wunderlich (@frank-w) for making that nice SVG image
      explaining the MMC boot process[1] and for providing the necessary
      binary header blobs.
      
      [1]: https://github.com/frank-w/BPI-R64-ATF
      
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      03948995
    • Daniel Golle's avatar
      uboot-envtools: add defaults for linksys-e8450-ubi · 42f3efec
      Daniel Golle authored
      
      Add U-Boot environment configuration for the Linksys E8450 (UBI) to
      allow access to the bootloader environment from OpenWrt via
      'fw_printenv' and 'fw_setenv'.
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      42f3efec
    • Daniel Golle's avatar
      uboot-mediatek: add support for Linksys E8450 · ed500043
      Daniel Golle authored
      
      Build U-Boot for the Linksys E8450 in order to have support for UBI.
      The loader has a default environment with scripts handling the reset
      button as well as fall-back to recovery firmware. If the loader comes
      up without a valid environment found in UBI, it will automatically
      make sure UBI is formatted and create a new environment and proceed
      to load recovery firmware (either from UBI or via TFTP if recovery is
      corrupted or unavailable).
      
      If the button is held down during power-on, the yellow status LED
      turns on and the bootloader environment is reset to factory defaults.
      If the button is released at this point, the recovery firmware (if
      existing) is loaded from UBI and booted.
      If the button is continously held down even beyond the point that
      the yellow LED turned on, the loader will try to load the recovery
      firmware via TFTP from server 192.168.1.254, write it to UBI and
      boot.
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      ed500043
    • Daniel Golle's avatar
      arm-trusted-firmware-mediatek: add patch for Fidelix SPI NAND · c16958e1
      Daniel Golle authored
      
      The Linksys E8450 aka. Belkin RT3200 comes with a rather fresh brand
      of SPI NAND storage. Add support for it to the nandx driver in
      arm-trusted-firmware-mediatek, so we can boot from that chip.
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      c16958e1
    • Daniel Golle's avatar
      base-files: add support for restoring config from tmpfs · 84a339f0
      Daniel Golle authored
      
      Instead of only relying in /sysupgrade.tgz being present in rootfs to
      restore configuration, also grab /tmp/sysupgrade.tar which may have
      magically gotten there during preinit...
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      84a339f0
    • Daniel Golle's avatar
      fstools: update to git HEAD · b7d125f4
      Daniel Golle authored
      
       bad1835 fstools: add partname volume driver
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      b7d125f4
  2. Feb 27, 2021
  3. Feb 26, 2021
    • Ilya Lipnitskiy's avatar
      wireguard-tools: depend on kmod-wireguard · cbcddc9f
      Ilya Lipnitskiy authored
      
      To the vast majority of the users, wireguard-tools are not useful
      without the underlying kernel module. The cornercase of only generating
      keys and not using the secure tunnel is something that won't be done on
      an embedded OpenWrt system often. On the other hand, maintaining a
      separate meta-package only for this use case introduces extra
      complexity. WireGuard changes for Linux 5.10 remove the meta-package.
      So let's make wireguard-tools depend on kmod-wireguard
      to make WireGuard easier to use without having to install multiple
      packages.
      
      Fixes: ea980fb9 ("wireguard: bump to 20191226")
      Signed-off-by: default avatarIlya Lipnitskiy <ilya.lipnitskiy@gmail.com>
      cbcddc9f
    • Ilya Lipnitskiy's avatar
      kernel: fix kmod-wireguard package fields · 0b53d6f7
      Ilya Lipnitskiy authored
      
      Use NETWORK_SUPPORT_MENU like all other modules in netsupport.mk. Drop
      SECTION and CATEGORY fields as they are set by default and to match
      other packages in netsupport.mk. Use better TITLE for kmod-wireguard
      (taken from upstream drivers/net/Kconfig).
      
      Signed-off-by: default avatarIlya Lipnitskiy <ilya.lipnitskiy@gmail.com>
      0b53d6f7
    • Jason A. Donenfeld's avatar
      wireguard-tools: bump to 1.0.20210223 · e0f7f5bb
      Jason A. Donenfeld authored
      
      Simple version bump with accumulated fixes.
      
      Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      e0f7f5bb
    • Ilya Lipnitskiy's avatar
      kernel: migrate wireguard into the kernel tree · 06351f1b
      Ilya Lipnitskiy authored
      
      On Linux 5.4, build WireGuard from backports. Linux 5.10 contains
      wireguard in-tree.
      
      Add in-kernel crypto libraries required by WireGuard along with
      arch-specific optimizations.
      
      Signed-off-by: default avatarIlya Lipnitskiy <ilya.lipnitskiy@gmail.com>
      06351f1b
    • David Bauer's avatar
      download: add mirror alias for Debian · 9a9cf40d
      David Bauer authored
      
      Add an alias for Debian packages and download them from the Debian
      mirror redirector.
      
      Signed-off-by: default avatarDavid Bauer <mail@david-bauer.net>
      9a9cf40d
    • Lech Perczak's avatar
      ramips: add support for ZTE MF283+ · 59d065c9
      Lech Perczak authored
      
      ZTE MF283+ is a dual-antenna LTE category 4 router, based on Ralink
      RT3352 SoC, and built-in ZTE P685M PCIe MiniCard LTE modem.
      
      Hardware highlighs:
      - CPU: MIPS24KEc at 400MHz,
      - RAM: 64MB DDR2,
      - Flash: 16MB SPI,
      - Ethernet: 4 10/100M port switch with VLAN support,
      - Wireless: Dual-stream 802.11n (RT2860), with two internal antennas,
      - WWAN: Built-in ZTE P685M modem, with two internal antennas and two
        switching SMA connectors for external antennas,
      - FXS: Single ATA, with two connectors marked PHONE1 and PHONE2,
        internally wired in parallel by 0-Ohm resistors, handled entirely by
        internal WWAN modem.
      - USB: internal miniPCIe slot for modem,
        unpopulated USB A connector on PCB.
      - SIM slot for the WWAN modem.
      - UART connector for the console (unpopulated) at 3.3V,
        pinout: 1: VCC, 2: TXD, 3: RXD, 4: GND,
        settings: 57600-8-N-1.
      - LEDs: Power (fixed), WLAN, WWAN (RGB),
        phone (bicolor, controlled by modem), Signal,
        4 link/act LEDs for LAN1-4.
      - Buttons: WPS, reset.
      
      Installation:
      As the modem is, for most of the time, provided by carriers, there is no
      possibility to flash through web interface, only built-in FOTA update
      and TFTP recovery are supported.
      
      There are two installation methods:
      (1) Using serial console and initramfs-kernel - recommended, as it
      allows you to back up original firmware, or
      (2) Using TFTP recovery - does not require disassembly.
      
      (1) Using serial console:
      To install OpenWrt, one needs to disassemble the
      router and flash it via TFTP by using serial console:
      - Locate unpopulated 4-pin header on the top of the board, near buttons.
      - Connect UART adapter to the connector. Use 3.3V voltage level only,
        omit VCC connection. Pin 1 (VCC) is marked by square pad.
      - Put your initramfs-kernel image in TFTP server directory.
      - Power-up the device.
      - Press "1" to load initramfs image to RAM.
      - Enter IP address chosen for the device (defaults to 192.168.0.1).
      - Enter TFTP server IP address (defaults to 192.168.0.22).
      - Enter image filename as put inside TFTP server - something short,
        like firmware.bin is recommended.
      - Hit enter to load the image. U-boot will store above values in
        persistent environment for next installation.
      - If you ever might want to return to vendor firmware,
        BACK UP CONTENTS OF YOUR FLASH NOW.
        For this router, commonly used by mobile networks,
        plain vendor images are not officially available.
        To do so, copy contents of each /dev/mtd[0-3], "firmware" - mtd3 being the
        most important, and copy them over network to your PC. But in case
        anything goes wrong, PLEASE do back up ALL OF THEM.
      - From under OpenWrt just booted, load the sysupgrade image to tmpfs,
        and execute sysupgrade.
      
      (2) Using TFTP recovery
      - Set your host IP to 192.168.0.22 - for example using:
      sudo ip addr add 192.168.0.22/24 dev <interface>
      - Set up a TFTP server on your machine
      - Put the sysupgrade image in TFTP server root named as 'root_uImage'
        (no quotes), for example using tftpd:
        cp openwrt-ramips-rt305x-zte_mf283plus-squashfs-sysupgrade.bin /srv/tftp/root_uImage
      - Power on the router holding BOTH Reset and WPS buttons held for around
        5 seconds, until after WWAN and Signal LEDs blink.
      - Wait for OpenWrt to start booting up, this should take around a
        minute.
      
      Return to original firmware:
      Here, again there are two possibilities are possible, just like for
      installation:
      (1) Using initramfs-kernel image and serial console
      (2) Using TFTP recovery
      
      (1) Using initramfs-kernel image and serial console
      - Boot OpenWrt initramfs-kernel image via TFTP the same as for
        installation.
      - Copy over the backed up "firmware.bin" image of "mtd3" to /tmp/
      - Use "mtd write /tmp/firmware.bin /dev/mtd3", where firmware.bin is
        your backup taken before OpenWrt installation, and /dev/mtd3 is the
        "firmware" partition.
      
      (2) Using TFTP recovery
      - Follow the same steps as for installation, but replacing 'root_uImage'
        with firmware backup you took during installation, or by vendor
        firmware obtained elsewhere.
      
      A few quirks of the device, noted from my instance:
      - Wired and wireless MAC addresses written in flash are the same,
        despite being in separate locations.
      - Power LED is hardwired to 3.3V, so there is no status LED per se, and
        WLAN LED is controlled by WLAN driver, so I had to hijack 3G/4G LED
        for status - original firmware also does this in bootup.
      - FXS subsystem and its LED is controlled by the
        modem, so it work independently of OpenWrt.
        Tested to work even before OpenWrt booted.
        I managed to open up modem's shell via ADB,
        and found from its kernel logs, that FXS and its LED is indeed controlled
        by modem.
      - While finding LEDs, I had no GPL source drop from ZTE, so I had to probe for
        each and every one of them manually, so this might not be complete -
        it looks like bicolor LED is used for FXS, possibly to support
        dual-ported variant in other device sharing the PCB.
      - Flash performance is very low, despite enabling 50MHz clock and fast
        read command, due to using 4k sectors throughout the target. I decided
        to keep it at the moment, to avoid breaking existing devices - I
        identified one potentially affected, should this be limited to under
        4MB of Flash. The difference between sysupgrade durations is whopping
        3min vs 8min, so this is worth pursuing.
      
      In vendor firmware, WWAN LED behaviour is as follows, citing the manual:
      - red - no registration,
      - green - 3G,
      - blue - 4G.
      Blinking indicates activity, so netdev trigger mapped from wwan0 to blue:wwan
      looks reasonable at the moment, for full replacement, a script similar to
      "rssileds" would need to be developed.
      
      Behaviour of "Signal LED" in vendor firmware is as follows:
      - Off - no signal,
      - Blinking - poor coverage
      - Solid - good coverage.
      
      A few more details on the built-in LTE modem:
      Modem is not fully supported upstream in Linux - only two CDC ports
      (DIAG and one for QMI) probe. I sent patches upstream to add required device
      IDs for full support.
      The mapping of USB functions is as follows:
      - CDC (QCDM) - dedicated to comunicating with proprietary Qualcomm tools.
      - CDC (PCUI) - not supported by upstream 'option' driver yet. Patch
        submitted upstream.
      - CDC (Modem) - Exactly the same as above
      - QMI - A patch is sent upstream to add device ID, with that in place,
        uqmi did connect successfully, once I selected correct PDP context
        type for my SIM (IPv4-only, not default IPv4v6).
      - ADB - self-explanatory, one can access the ADB shell with a device ID
        added to 51-android.rules like so:
      
      SUBSYSTEM!="usb", GOTO="android_usb_rules_end"
      LABEL="android_usb_rules_begin"
      SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1275", ENV{adb_user}="yes"
      ENV{adb_user}=="yes", MODE="0660", GROUP="plugdev", TAG+="uaccess"
      LABEL="android_usb_rules_end"
      
      While not really needed in OpenWrt, it might come useful if one decides to
      move the modem to their PC to hack it further, insides seem to be pretty
      interesting. ADB also works well from within OpenWrt without that. O
      course it isn't needed for normal operation, so I left it out of
      DEVICE_PACKAGES.
      
      Signed-off-by: default avatarLech Perczak <lech.perczak@gmail.com>
      [remove kmod-usb-ledtrig-usbport, take merged upstream patches]
      Signed-off-by: default avatarAdrian Schmutzler <freifunk@adrianschmutzler.de>
      59d065c9
  4. Feb 24, 2021
    • David Bauer's avatar
      rtl8812au-ct: fix PKG_MIRROR_HASH · a7ff66e2
      David Bauer authored
      
      Signed-off-by: default avatarDavid Bauer <mail@david-bauer.net>
      a7ff66e2
    • Daniel Golle's avatar
      arm-trusted-firmware-mediatek: correct location of PKG_LICENSE · f38c54c6
      Daniel Golle authored
      
      As PKG_LICENSE is originally set by include/trusted-firmware-a.mk it
      can only be appended after that. Hence move that line below the
      include to actually make sense.
      (cosmetical change, already slipped into openwrt-21.02 branch)
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      f38c54c6
    • Adrian Schmutzler's avatar
      imx-bootlets: refresh patches · 702147b7
      Adrian Schmutzler authored
      
      Tidy this up a little.
      
      Signed-off-by: default avatarAdrian Schmutzler <freifunk@adrianschmutzler.de>
      702147b7
    • Adrian Schmutzler's avatar
      zlib: properly split patches · 221eefaf
      Adrian Schmutzler authored
      
      This package had two patches (with two headers etc.) in one file,
      which would have quilt merging them during a refresh.
      
      Separate these patches into two files, as the original intent seems
      to be having them separate.
      
      Signed-off-by: default avatarAdrian Schmutzler <freifunk@adrianschmutzler.de>
      221eefaf
    • Daniel Golle's avatar
      base-files: remove unneeded '$' signs in nand.sh · 287bd78e
      Daniel Golle authored
      
      When using Shell arithmetric evaluation via $((..)) the variables in
      the expression do not need to be prefixed by the '$' sign.
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      287bd78e
    • Daniel Golle's avatar
      sysupgrade-nand: allow limiting rootfs_data by setting env variable · 5c10f26c
      Daniel Golle authored
      
      Check if firmware environment variable 'rootfs_data_max' exists and is
      set to a numerical value greater than 0. If so, limit rootfs_data
      volume to that size instead of using the maximum available size.
      
      This is useful on devices with lots of flash where users may want to
      have eg. a volume for persistent logs and statistics or for external
      applications/containers. Persistence on rootfs overlay is limited by
      the size of memory available during the sysugprade process as that
      data needs to be copied to RAM while the volume is being recreated
      during sysupgrade. Hence it is unsuitable for keeping larger amounts
      of data accross upgrade which makes additional volume(s) for
      application data desirable.
      
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      5c10f26c
    • Daniel Golle's avatar
      image: add support for building FIT image with filesystem · e6aac8d9
      Daniel Golle authored
      
      Allow for single (external-data) FIT image to hold kernel, dtb and
      squashfs. In that way, the bootloader verifies the system integrity
      including the rootfs, because what's the point of checking that the
      hash of the kernel is correct if it won't boot in case of squashfs
      being corrupted? Better allow bootloader to check everything needed
      to make it at least up to failsafe mode. As a positive side effect
      this change also makes the sysupgrade process on nand potentially
      much easier as it is now.
      In short: mkimage has a parameter '-E' which allows generating FIT
      images with 'external' data rather than embedding the data into the
      device-tree blob itself. In this way, the FIT structure itself remains
      small and can be parsed easily (rather than having to page around
      megabytes of image content). This patch makes use of that and adds
      support for adding sub-images of type 'filesystem' which are used to
      store the squashfs. Now U-Boot can verify the whole OS and the new
      partition parsers added in the Linux kernel can detect the filesystem
      sub-images, create partitions for them, and select the active rootfs
      volume based on the configuration in FIT (passing configuration via
      device tree could be implemented easily at a later stage).
      
      This new FIT partition parser works for NOR flash (on top of mtdblock),
      NAND flash (on top of ubiblock) as well as classic block devices
      (ie. eMMC, SDcard, SATA, NVME, ...).
      It could even be used to mount such FIT images via `losetup -P` on a
      user PC if this patch gets included in Linux upstream one day ;)
      
      Signed-off-by: default avatarJohn Crispin <john@phrozen.org>
      Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
      e6aac8d9
  5. Feb 23, 2021
Loading