Commit Graph

57744 Commits

Author SHA1 Message Date
Andre Heider
8d7d9aa4a4 hostapd: update to 2023-06-22
Removed, merged upstream:
- 170-wpa_supplicant-fix-compiling-without-IEEE8021X_EAPOL.patch

Manually refreshed:
- 040-mesh-allow-processing-authentication-frames-in-block.patch
- 600-ubus_support.patch
- 761-shared_das_port.patch

Fixes: #12661
Fixes: 304423a4 ("hostapd: update to 2023-03-29")
Signed-off-by: Andre Heider <a.heider@gmail.com>
(cherry picked from commit cd804c1ebb)
2023-07-20 08:04:11 +02:00
John Audia
57e7188e63 linux-firmware: update to 20230625
Change from git log --oneline:

ee91452d (tag: 20230625) Makefile, copy-firmware: support xz/zstd compressed firmware
ad2ce8be copy-firmware: silence the last shellcheck warnings
67bf50e7 copy-firmware: drop obsolete backticks, quote
77f31a80 copy-firmware: tweak sed invocation
40fa2b20 copy-firmware: quote deskdir and dirname
77f92e0b check_whence: error if symlinks are in-tree
f2671b1f check_whence: error if File: is actually a link
4b539e7a check_whence: strip quotation marks
32693d3b linux-firmware: wilc1000: update WILC1000 firmware to v16.0
109b23c5 ice: update ice DDP wireless_edge package to 1.3.10.0
ade163aa amdgpu: DMCUB updates for DCN 3.1.4 and 3.1.5
045b2136 amdgpu: update DMCUB to v0.0.172.0 for various AMDGPU ASICs
5a1842ce Merge branch 'rb3-update' of https://github.com/lumag/linux-firmware
2f81bd9f fix broken cirrus firmware symlinks
01a7a844 qcom: Update the microcode files for Adreno a630 GPUs.
94120467 qcom: sdm845: rename the modem firmware
1c599488 qcom: sdm845: update remoteproc firmware
1cd1c871 rtl_bt: Update RTL8852A BT USB firmware to 0xDAC7_480D
55e74485 rtl_bt: Update RTL8852C BT USB firmware to 0x040D_7225
9dbd8ec2 amdgpu: DMCUB updates for various AMDGPU asics
9a47adc7 Merge branch 'mtl_huc_v8.5.0' of git://anongit.freedesktop.org/drm/drm-firmware
eb3ae841 linux-firmware: update firmware for MT7922 WiFi device
5ce06b9e linux-firmware: update firmware for MT7921 WiFi device
2c50361c linux-firmware: update firmware for mediatek bluetooth chip (MT7922)
185f49df linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
05f94af7 Merge branch 'v2.0.21478' of https://github.com/yunfei-mtk/linux_fw_scp
5de33fb4 i915: Add HuC v8.5.0 for MTL
795aea91 mediatek: Update mt8195 SCP firmware to support hevc
fc90c59b Merge branch 'db410c' of https://github.com/lumag/linux-firmware
9d4c9a52 qcom: apq8016: add Dragonboard 410c WiFi and modem firmware
1f9667eb Merge branch 'for-upstream' of http://git.chelsio.net/pub/git/linux-firmware
b544e2b0 Merge branch 'for-upstream' of https://github.com/CirrusLogic/linux-firmware
244d6b5c cirrus: Add firmware for new Asus ROG Laptops
d11ae984 brcm: Add symlinks from Pine64 devices to AW-CM256SM.txt
1c513ec7 amdgpu: Update GC 11.0.1 and 11.0.4
8449fcd0 Merge https://github.com/pkshih/linux-firmware
c10facaf rtw89: 8851b: add firmware v0.29.41.0
1ba3519e Merge branch 'dev-queue' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/firmware
2e775450 amdgpu: update yellow carp firmware for amd.5.5 release
5eccb3c1 amdgpu: update navi14 firmware for amd.5.5 release
c70d3c3b amdgpu: update navi12 firmware for amd.5.5 release
0e4f17cc amdgpu: update vega20 firmware for amd.5.5 release
413348f3 amdgpu: update vega12 firmware for amd.5.5 release
c167587d amdgpu: update navi10 firmware for amd.5.5 release
3c98630a amdgpu: update vega10 firmware for amd.5.5 release
d13ef0cb amdgpu: update PSP 13.0.11 firmware for amd.5.5 release
31f8f526 amdgpu: update GC 11.0.4 firmware for amd.5.5 release
f0ce7026 amdgpu: update SDMA 6.0.1 firmware for amd.5.5 release
47424464 amdgpu: update PSP 13.0.4 firmware for amd.5.5 release
60dc78a7 amdgpu: update GC 11.0.1 firmware for amd.5.5 release
ba70041c amdgpu: update 13.0.8 firmware for amd.5.5 release
9c48881f amdgpu: update GC 10.3.7 firmware for amd.5.5 release
bb4d7250 amdgpu: update vangogh firmware for amd.5.5 release
102a4138 amdgpu: update VCN 4.0.4 firmware for amd.5.5 release
a7fe4aa1 amdgpu: update SMU 13.0.7 firmware for amd.5.5 release
80b2d561 amdgpu: update PSP 13.0.7 firmware for amd.5.5 release
a5d7b4df amdgpu: update GC 11.0.2 firmware for amd.5.5 release
c1db00c5 amdgpu: update renoir firmware for amd.5.5 release
683c91f7 amdgpu: update VCN 4.0.0 firmware for amd.5.5 release
39d6fcc7 amdgpu: update SMU 13.0.0 firmware for amd.5.5 release
56832557 amdgpu: update PSP 13.0.0 firmware for amd.5.5 release
ffe1a41e amdgpu: update GC 11.0.0 firmware for amd.5.5 release
72d525d7 amdgpu: update green sardine firmware for amd.5.5 release
ceba765d amdgpu: update beige goby firmware for amd.5.5 release
95eb53c9 amdgpu: update dimgrey cavefish firmware for amd.5.5 release
909cef98 amdgpu: update arcturus firmware for amd.5.5 release
91251d16 amdgpu: update vcn 3.1.2 firmware for amd.5.5 release
9eaff866 amdgpu: update psp 13.0.5 firmware for amd.5.5 release
44772528 amdgpu: update GC 10.3.6 firmware for amd.5.5 release
3bffc9f8 amdgpu: update navy flounder firmware for amd.5.5 release
3b920773 amdgpu: update sienna cichlid firmware for amd.5.5 release
84d5550e amdgpu: update aldebaran firmware for amd.5.5 release
dcd30473 amdgpu: DMCUB updates for various AMDGPU asics
c9e4034a ice: update ice DDP comms package to 1.3.40.0
601c1813 Merge https://github.com/pkshih/linux-firmware
08b854f0 rtlwifi: Add firmware v6.0 for RTL8192FU
b72c69dd rtlwifi: Update firmware for RTL8188EU to v28.0
51290942 (tag: 20230515) Merge branch 'main' of https://github.com/CirrusLogic/linux-firmware

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit a5005508f0)
2023-07-15 22:24:50 +02:00
Carsten Spieß
345bce75a1 octeon: ubnt-edgerouter-4/6p: devicetree cleanup
removed redundant eeprom partition nodes from
cn7130_ubnt_edgerouter-4.dts and cn7130_ubnt_edgerouter-6p.dts
as they are identically defined in cn7130_ubnt_edgerouter-e300.dtsi.

Signed-off-by: Carsten Spieß <mail@carsten-spiess.de>
(integrated eeprom referenced node in the .dtsi)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 700f11aaad)
2023-07-15 22:24:50 +02:00
Carsten Spieß
abe659efba octeon: ubnt-edgerouter-e300: fix missing MTD partition
The MAC addresses should be read from 3rd MTD partition,
but only two MTD partitions are populated.

To fix it, a partitions node has to surround the partition
nodes in device tree.

Tested with Edgerouter 6P

Signed-off-by: Carsten Spieß <mail@carsten-spiess.de>
(fixed checkpatch complains)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 2b1d7965c7)
2023-07-15 22:24:50 +02:00
Carsten Spieß
00d4a3190b octeon: ubnt-edgerouter-e300: fix LED settings
LEDs on Edgerouter 6P didn't work correctly:
blue /white LED swapped, on/off state inverted

Fixed in device tree:
swap the GPIO ports for power:blue and power:white LEDs
change LED activity from LOW to HIGH

Tested on Edgerouter 6P

Signed-off-by: Carsten Spieß <mail@carsten-spiess.de>
(cherry picked from commit 9009672930)
2023-07-15 22:24:50 +02:00
Tomasz Maciej Nowak
b58955e924 ib: split out processing user provided packages
Some device recipes remove default target packages. If user tries to add
them back they will be ignored, since packages list is processed in one
go. Process the device recipe packages first and do user ones later, so
additions won't get filtered out.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
(cherry picked from commit e40b9a7fa0)
2023-07-15 22:24:50 +02:00
Tomasz Maciej Nowak
b52cfba97a sdk: rename README + update Makefile
'help' target fails not finding a file, so follow up on a change[2] made
as a fix for main README[1].

1. d0113711a3 ("README: port to 21st century")
2. 751486b31f ("build: fix README.md reference after rename")

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
(cherry picked from commit 2d5f7035cf)
(cherry picked from commit e9911f10e4)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2023-07-15 22:24:50 +02:00
Adones Pitogo
4ab8abfbf7 build: fix generation of large .vdi images
Instead of loading the whole image into the memory when generating the
sha256 sum, we load the file in chunks and update the hash incrementally
to avoid MemoryError in python. Also remove a stray empty line.

Fixes: #13056
Signed-off-by: Adones Pitogo <pitogo.adones@gmail.com>
(mention empty line removal, adds Fixes from PR)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit bdb4b78210)
2023-07-15 22:24:50 +02:00
Christian Lamparter
62496e9a1a armsr: v8: fix NVMEM_IMX_OCOTP_ELE build error
there's a new symbol NVMEM_IMX_OCOTP_ELE that needs to be defined.
otherwise the build will fail:

|  i.MX On-Chip OTP Controller support (NVMEM_IMX_OCOTP_ELE) [N/m/y/?] (NEW)
| make[6]: *** [scripts/kconfig/Makefile:77: syncconfig] Error 1
| make[5]: *** [Makefile:628: syncconfig] Error 2

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2023-07-15 22:17:42 +02:00
Rafał Miłecki
b32a4bc33f bcm53xx: backport DT changes queued for v6.6
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 37ff916af7)
2023-07-14 13:53:31 +02:00
Daniel Golle
50507f5af3 scripts/mkits.sh: DT overlays don't need a loadaddr
DT overlays do not need relocation in order to be applied, so drop
defining the load address for dtbos.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit cff3786bd5)
2023-07-13 12:05:28 +01:00
Daniel Golle
5bd5be03bb uboot-mediatek: support classic uImage.FIT with internal images in imszb
The side-effect and main motivation is to also drop the FIT structure size
limit because with multiple device tree overlays it may easily grow beyond
the previous 4kB limit in the future.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 98e3f82c3f)
2023-07-13 12:05:28 +01:00
Daniel Golle
40a26239ff mediatek: replace hack for MaxLinear 2.5G PHY
Replace hack with proper patch also for Linux 5.15.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 712fa3eff8)
2023-07-13 12:05:28 +01:00
Daniel Golle
f94cda0187 mediatek: dts: mt7988a: remove boottrap hack
The PHY driver now uses regmap created from pio syscon, we no longer
need the boottrap device.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit f321a49fd5)
2023-07-13 12:05:28 +01:00
Daniel Golle
6092c39c13 mediatek: use backported Ethernet PHY driver also for 5.15
Backport in-SoC Gigabit Ethernet PHY driver instead of carrying the
driver in files-5.15.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 9fac590096)
2023-07-13 12:05:28 +01:00
Daniel Golle
0af05cd32a mediatek: dts: mt7988a: wire-up mediatek,pio for PHY LEDs
The PHY driver needs to read a register containing the values of the
bootstrap pins (which happen to be the PHY LEDs) to determine the LED
polarities. Allow regmap access to first pinctrl bank by adding the
'syscon' compatible, and reference the pinctrl in the MDIO bus where
the PHY driver will look for it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 1f1e0b1144)
2023-07-13 12:05:28 +01:00
Chukun Pan
cf81850cce mediatek: filogic: add H3C Magic NX30 Pro support
Hardware specification:
  SoC: MediaTek MT7981B 2x A53
  Flash: W25N01GVZEIG 128MB
  RAM: NT5CB128M16JR-FL 256MB
  Ethernet: 4x 10/100/1000 Mbps
  Switch: MediaTek MT7531AE
  WiFi: MediaTek MT7976C
  Button: Reset, WPS
  Power: DC 12V 1A

Flash instructions:
  1. PC run command: "telnet 192.168.124.1 99"
     Username: H3C, password is the web login
     password of the router.
  2. Download preloader.bin and bl31-uboot.fip
  3. PC run command: "python3 -m http.server 80"
  4. Download files in the telnet window:
     "wget http://192.168.124.xx/xxx.bin"
     Replace xx with your PC's IP and
     the preloader.bin and bl31-uboot.fip.
  5. Flushing openwrt's uboot:
     "mtd write xxx-preloader.bin BL2"
     "mtd write xxx-bl31-uboot.fip FIP"
  6. Connect to the router via the Lan port,
     set a static ip of your PC.
     (ip 192.168.1.254, gateway 192.168.1.1)
  7. Download initramfs image, reboot router,
     waiting for tftp recovery to complete.
  8. After openwrt boots up, perform sysupgrade.

Note:
  1. The u-boot-env partition on mtd is empty,
     OEM stores their env on ubi:u-boot-env.
  2. Back up all mtd partitions before flashing.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
(cherry picked from commit e78d1a06c8)
2023-07-13 12:05:28 +01:00
Chukun Pan
f7daeec3bd uboot-mediatek: add H3C Magic NX30 Pro support
The OEM uboot limit brush into 3rd-party firmware.
So add a custom uboot build to support openwrt.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
(cherry picked from commit 437e79ad6d)
2023-07-13 12:05:28 +01:00
Wenli Looi
23d6474e45 mediatek: add support for Netgear EX6250v2 series
Netgear EX6250v2, EX6400v3, EX6410v2, EX6470 are wall-plug 802.11ac
(Wi-Fi 5) extenders. Like other MT7629 devices, Wi-Fi does not work
currently as there is no driver.

Related: https://github.com/openwrt/openwrt/pull/5084

For future reference, 2.4GHz MAC = LAN+1, 5GHz MAC = LAN+2.

Specifications:
* MT7629, 256 MiB RAM, 16 MiB SPI NOR
* MT7761N (2.4GHz) / MT7762N (5GHz) - no driver
* Ethernet: 1 port 10/100/1000
* UART: 115200 baud (labeled on board)

Installation:
* Flash the factory image through the stock web interface, or TFTP to
  the bootloader. NMRP can be used to TFTP without opening the case.
* After installation, perform a factory reset. Wait for the device to
  boot, then hold the reset button for 10 seconds. This is needed
  because sysupgrade in the stock firmware will attempt to preserve its
  configuration using sysupgrade.tgz.
  See https://github.com/openwrt/openwrt/pull/4182

Revert to stock firmware:
* Flash the stock firmware to the bootloader using TFTP/NMRP.

Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
(cherry picked from commit 73de41898f)
2023-07-13 12:05:28 +01:00
Wenli Looi
977ee439d7 image: add additional fields to Netgear encrypted image
These fields are used for EAX12 and EX6250v2 series, and perhaps other
devices. Compatibility is preserved with the WAX202 and WAX206.

In addition, adds the related vars to DEVICE_VARS so that the variables
work correctly with multiple devices.

References in GPL source:
https://www.downloads.netgear.com/files/GPL/EAX12_EAX11v2_EAX15v2_GPL_V1.0.3.34_src.tar.gz

* tools/imgencoder/src/gj_enc.c
  Contains code that generates the encrypted image.

Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
(cherry picked from commit 0a1ebccc87)
2023-07-13 12:05:28 +01:00
Pavel Pernička
b7fac1bf8c ath79: DTS improvement for buzzer on RB951G-2HnD
Mikrotik RB951 router has a buzzer on the board, which makes annoying noises
due to the interference caused by PoE input or Wifi transmission
when no GPIO pin state is set.
I added buzzer node to device's DTS in order to set deault level to 1
and to provide easier access for it.

Signed-off-by: Pavel Pernička <pernicka.pa@gmail.com>
(cherry picked from commit dac0a133cf)
2023-07-12 20:46:53 +02:00
Michał Kępień
98b397d4fb ath79: add support for MikroTik RB951G-2HnD
MikroTik RB951G-2HnD is a wireless SOHO router that was previously
supported by the ar71xx target, see commit 7a709573d7 ("ar71xx: add
kernel support for the Mikrotik RB951G board").

Specifications
--------------

  - SoC: Atheros AR9344 (600 MHz)
  - RAM: 128 MB (2x 64 MB)
  - Storage: 128 MB NAND flash (various manufacturers)
  - Ethernet: Atheros AR8327 switch, 5x 10/100/1000 Mbit/s
      - 1x PoE in (port 1, 8-30 V input)
  - Wireless: Atheros AR9340 (802.11b/g/n)
  - USB: 2.0 (1A)
  - 8x LED:
      - 1x power (green, not configurable)
      - 1x user (green, not configurable)
      - 5x GE ports (green, not configurable)
      - 1x wireless (green, not configurable)
  - 1x button (restart)

Unlike on the RB951Ui-2HnD, none of the LEDs on this device seem to be
GPIO-controllable, which was also the case for older OpenWRT versions
that supported this board via a mach file.  The Ethernet port LEDs are
controlled by the switch chip.

See https://mikrotik.com/product/RB951G-2HnD for more details.

Flashing
--------

TFTP boot initramfs image and then perform sysupgrade.  Follow
common MikroTik procedures at https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Michał Kępień <openwrt@kempniu.pl>
(cherry picked from commit db02cecd6a)
2023-07-12 20:45:43 +02:00
Michał Kępień
7bb616d300 ath79: mikrotik: extract common bits for RB951x-2HnD devices
Mikrotik RouterBOARD 951Ui-2HnD and Mikrotik RouterBOARD RB951G-2HnD are
very similar devices.  Extract the DTS bits that are identical for these
two boards to a separate DTSI file.

Signed-off-by: Michał Kępień <openwrt@kempniu.pl>
(cherry picked from commit c6ef417094)
2023-07-12 20:45:43 +02:00
Rafał Miłecki
a4792d79e8 bcm53xx: backport DT changes from v6.5
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 8674b41c0d)
2023-07-11 10:53:45 +02:00
Rafał Miłecki
a210fced85 kernel: bgmac: fix regressed support for BCM53573 SoCs
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit d54f3b2cfd)
2023-07-10 12:54:53 +02:00
Rafał Miłecki
e341d51e06 bcm47xx: fix bgmac MTU patch filename
Fixes: 4970dd027b ("bcm47xx: revert bgmac back to the old limited max frame size")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 83aeb0bbd4)
2023-07-10 12:54:53 +02:00
Rafał Miłecki
ef7d800333 kernel: backport NVMEM patches queued for the v6.5
This includes some driver changes and support for fixed cells layout.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 07bdc55515)
2023-07-10 12:54:53 +02:00
Martin Schiller
f4e1f99961 kernel: net: phy: realtek: fix rtl822x_probe on unsupported devices
Calling rtl822x_probe() on phy devices which uses the rtl822x_read_mmd()
and rtl822x_write_mmd() functions makes no sense and the probe ends with
an EOPNOTSUPP error.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
(cherry picked from commit 5af7d47cd7)
2023-07-08 15:48:28 +02:00
Felix Fietkau
c49654f4f0 ramips/mt7621: disable the cpufreq driver
It causes a noticeable performance decrease

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit dc38199b96)
2023-07-08 15:46:54 +02:00
Aleksander Jan Bajkowski
ac2d6cf573 kernel: sort generic configuration
This was done by executing these commands:

$ ./scripts/kconfig.pl '+' target/linux/generic/config-5.15 /dev/null > target/linux/generic/config-5.15-new
$ mv target/linux/generic/config-5.15-new target/linux/generic/config-5.15

$ ./scripts/kconfig.pl '+' target/linux/generic/config-6.1 /dev/null > target/linux/generic/config-6.1-new
$ mv target/linux/generic/config-6.1-new target/linux/generic/config-6.1

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
(cherry picked from commit 4f197f9134)
2023-07-08 15:45:12 +02:00
John Audia
5678bb801e kernel: bump 5.15 to 5.15.120
All patches automatically rebased.

Build system: x86_64
Build-tested: ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod
Run-tested: ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 0dc0504fc8)
2023-07-08 15:43:59 +02:00
Nick Hainke
f2a98977c4 wolfssl: update to 5.6.3
Release Notes:
- https://github.com/wolfSSL/wolfssl/releases/tag/v5.6.0-stable
- https://github.com/wolfSSL/wolfssl/releases/tag/v5.6.2-stable
- https://github.com/wolfSSL/wolfssl/releases/tag/v5.6.3-stable

Refresh patch:
- 100-disable-hardening-check.patch

Backport patch:
- 001-fix-detection-of-cut-tool-in-configure.ac.patch

Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 0e83b5e6cc)
2023-07-08 15:43:59 +02:00
John Thomson
27f68a39fd kernel: fix KernelPackage when all KCONFIG are versioned
If a kernel package was defined where all KCONFIG symbols were dynamic,
and versioned, no FILES would be installed, as the foreach evaluation was
providing the value of the variable defined by the KCONFIG symbol name
including the version test

Fix this by calling the version_filter function on the list of KCONFIG
variable names run through by foreach

Example, kernel 6.1:
KCONFIG:=CONFIG_OLD@lt6.1 CONFIG_NEW@ge6.1
filter-out any KCONFIG settings forced by package:
CONFIG_OLD@lt6.1 CONFIG_NEW@ge6.1
there are dynamic settings, so for each of them,
get the value of the make variable defined by symbol name:
    CONFIG_OLD@lt6.1 is not set
    CONFIG_NEW@ge6.1 is not set
  versus
    CONFIG_OLD is not set
    CONFIG_NEW=m
test if any of these are m, or y
if yes, install files, otherwise, nothing to install

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
(cherry picked from commit b3448b3fdb)
2023-07-08 15:43:59 +02:00
John Audia
e4d7917be6 x86: set CONFIG_X86_AMD_PLATFORM_DEVICE
Needed by AMD processors using Carrizo and later chipsets

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 946100ba41)
2023-07-08 15:43:59 +02:00
Zoltan HERPAI
4a79a94e37 mxs: rework image generation
Migrate to "new" image generation method. Device profiles will be generated
based on image/Makefile instead of profiles/ , which will also allow to
automatically build images for all supported devices via buildbot.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2023-07-06 17:04:13 +02:00
Christian Lamparter
894b2086fd ipq-wifi: fix upstream board-2.bin ZTE M289F snafu
The upstream board-2.bin file in the linux-firmware.git
repository for the QCA4019 contains a packed board-2.bin
for this device for both 2.4G and 5G wifis. This isn't
something that the ath10k driver supports.

Until this feature either gets implemented - which is
very unlikely -, or the upstream boardfile is mended
(both, the original submitter and ath10k-firmware
custodian have been notified). OpenWrt will go back
and use its own bespoke boardfile. This unfortunately
means that 2.4G and on some revisions the 5G WiFi is
not available in the initramfs image for this device.

Fixes: #12886
Reported-by: Christian Heuff <christian@heuff.at>
Debugged-by: Georgios Kourachanis <geo.kourachanis@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 75505c5ec7)
2023-07-04 22:11:08 +02:00
Felix Fietkau
a70d030fb3 mt76: update to the latest version
f704e4f83c6f mt76: mt7915: fix copy&paste issue on capability check rework

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 816933bee6)
2023-07-04 06:22:07 +02:00
Sander Vanheule
cd878b1b55 ramips: mt7621: add TP-Link EAP613 v1
The TP-Link EAP613 v1 is a ceiling-mount 802.11ax access point. It can
be powered via PoE or a DC barrel connector (12V). Connecting to the
UART requires fine soldering and careful manipulation of any soldered
wires.

Device details:
  * SoC: MT7621AT
  * Flash: 16 MiB SPI NOR
  * RAM: 256 MiB DDR3L
  * Wi-Fi:
    * MT7905DA + MT7975D: 2.4 GHz + 5 GHz (DBDC), 2x2:2
    * Two stamped metal antennas (ANT1, ANT2)
    * One PCB antenna (ANT3)
    * One unpopulated antenna (ANT4)
  * Ethernet:
    * 1× 10/100/1000 Mbps port with PoE
  * LEDs:
    * Array of four blue LEDs with one control line
  * Buttons:
    * Reset
  * Board test points:
    * UART: next to CPU RF-shield and power circuits
    * JTAG: under CPU RF-shield (untested)
  * Watchdog: 3PEAK TPV706 (not implemented)

  Althought three antennas are populated, the MT7905DA does not support
  the additional Rx chain for background DFS detection (or Bluetooth)
  according to commit 6cbcc34f50 ("ramips: disable unsupported
  background radar detection").

MAC addresses:
  * LAN: 48:22:54:xx:xx:a2 (device label)
  * WLAN 2.4 GHz: 48:22:54:xx:xx:a2
  * WLAN 5 GHz: 48:22:54:xx:xx:a3

  The radio calibration blob stored in flash also contains valid MAC
  addresses for both radio bands (OUI 00:0c:43).

Factory install:
  1. Enable SSH on the device via web interface
  2. Log in with SSH, and run `cliclientd stopcs`
  3. Upload -factory.bin image via web interface. It may be necessary to
     shorten the filename of the image to e.g. 'factory.bin'.

Recovery:
  1. Open the device by unscrewing four screws from the backside
  2. Carefully remove board from the housing
  3. Connect to UART (3.3V):
    * Find test points labelled "VCC", "GND", "UART_TX", "UART_RX"
    * Solder wires to test points or connect otherwise. Be careful not
      to damage the PCB e.g. by pulling on soldered wires.
    * Open console with 115200n8 settings
  4. Interrupt bootloader and use tftpboot to start an initramfs:
        setenv ipaddr $DEVICE_IP
        setenv serverip $SERVER_IP
        tftpboot 84000000 openwrt-initramfs-kernel.bin
        bootm

  DO NOT use saveenv to store modified u-boot environment variables. The
  environment is saved at flash offset 0x30000, which erases part of the
  (secondary) bootloader.

  The device uses two bootloader stages. The first stage will load the
  second stage from a uImage stored at flash offset 0x10000. In case of
  a damaged second stage, the first stage should allow uploading a new
  image via y-modem (untested).

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 11588c52b4)
2023-07-03 21:07:33 +02:00
Sander Vanheule
2cece6e2b0 firmware-utils: bump to git HEAD
Add support for a number of new TP-Link devices.

9e2de8515be1 tplink-safeloader: add EAP610 v3 and EAP613 v1
bb12cf5c3fa9 tplink-safeloader: Add support for TP-Link Deco M5
a2d49fb1e188 tplink-safeloader: add RU support-list entry for Archer C6U v1

Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 0cdcf03382)
2023-07-03 21:07:33 +02:00
David Bauer
fa1822a8e9 mediatek: define NMBM management region for WAX220
The NETGEAR WAX220 employs NMBM on SPI-NAND. In order to avoid dealing
with invalid factory data, enable NMBM in the area preceding the UBI
volume.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 92eec257dd)
2023-07-02 15:31:03 +02:00
Hauke Mehrtens
f9fadb8de2 libnl-tiny: update to latest git HEAD
d433990 Make struct nla_policy and struct nlattr const

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 513bcfdf78)
2023-07-02 15:31:03 +02:00
Mathew McBride
c54ec81c99 linux-firmware: ibt-firmware: install sfi/ddc files for AX210 card
When using an Intel AX210 card, the Bluetooth hci interface failed
to start due to a missing "ibt-0041-0041.sfi" file.

Bluetooth: hci0: Failed to load Intel firmware file intel/ibt-0041-0041.sfi (-2)

A device specific configuration file (DDC) is also required:
Bluetooth: hci0: Found device firmware: intel/ibt-0041-0041.sfi
Bluetooth: hci0: Waiting for firmware download to complete
...
Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-0041-0041.ddc
Bluetooth: hci0: Applying Intel DDC parameters completed
Bluetooth: hci0: Firmware timestamp 2023.13 buildtype 1 build 62562

Fixes: #8558
Signed-off-by: Mathew McBride <matt@traverse.com.au>
(cherry picked from commit fff6833d4c)
2023-07-02 15:31:03 +02:00
Robert Marko
0d324c682c generic: filter out CONFIG_FRAME_WARN
CONFIG_FRAME_WARN value is set by config/Config-kernel.in based on the
target type dynamically since commit:
16a2051 ("kernel: Set CONFIG_FRAME_WARN depending on target").

However, CONFIG_FRAME_WARN was not set to get filtered out so it ended up
in multiple target configs during refreshes.
So, lets filter out CONFIG_FRAME_WARN as its set dynamically to prevent it
ending up in more target configs.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
(cherry picked from commit 7a9a4168bb)
2023-07-02 15:31:03 +02:00
Joshua O'Leary
fbb4aac69b zbt-wd323: add GPIO WDT support
Watchdog has not been properly configured for this router - the PCB has a
hardware watchdog connected to one of the GPIO pin 21 [1]
This commit provides this fix [2]

Without this fix, the ZBT-WD323 is unusable in OpenWRT because it power
cycles every 30 seconds due to the watchdog tripping

[1] https://forum.openwrt.org/t/zbt-wd323-router-power-cycles-every-30-seconds/77535/7
[2] https://forum.openwrt.org/t/zbt-wd323-images-unusable-proposed-workaround/162145/5

Signed-off-by: Joshua O'Leary <josh.oleary@mobile-power.co.uk>
(cherry picked from commit 008cc836fe)
2023-07-02 15:31:03 +02:00
Mikhail Zhilkin
436ef37728 ramips: add support for Sercomm S1500 devices
This commit adds support for following wireless routers:
 - Beeline SmartBox PRO (Serсomm S1500 AWI)
 - WiFire S1500.NBN (Serсomm S1500 BUC)

This commit is based on this PR:
 - Link: https://github.com/openwrt/openwrt/pull/4770
 - Author: Maximilian Weinmann <x1@disroot.org>
The opening of this PR was agreed with author.

My changes:
- Sorting, minor changes and some movings between dts and dtsi
- Move leds to dts when possible
- Recipes for the factory image
- Update of the installation/recovery/return to stock guides
- Add reset GPIO for the pcie1

Common specification
--------------------
SoC:        MediaTek MT7621AT (880 MHz, 2 cores)
Switch:     MediaTek MT7530 (via SoC MT7621AT)
Wireless:   2.4 GHz, MT7602EN, b/g/n, 2x2
Wireless:   5 GHz, MT7612EN, a/n/ac, 2x2
Ethernet:   5 ports - 5×GbE (WAN, LAN1-4)
Mini PCIe:  via J2 on PCB, not soldered on the board
UART:       J4 -> GND[], TX, VCC(3.3V), RX
BootLoader: U-Boot SerComm/Mediatek

Beeline SmartBox PRO specification
----------------------------------
RAM (Nanya NT5CB128M16FP): 256 MiB
NAND-Flash (ESMT F59L2G81A): 256 MiB
USB ports: 2xUSB2.0
LEDs: Status (white), WPS (blue), 2g (white), 5g (white) + 10 LED Ethernet
Buttons: 2 button (reset, wps), 1 switch button (ROUT<->REP)
Power: 12 VDC, 1.5 A
PCB Sticker: 970AWI0QW00N256SMT Ver. 1.0
CSN: SG15********
MAC LAN: 94:4A:0C:**:**:**
Manufacturer's code: 0AWI0500QW1

WiFire S1500.NBN specification
------------------------------
RAM (Nanya NT5CC64M16GP): 128 MiB
NAND-Flash (ESMT F59L1G81MA): 128 MiB
USB ports: 1xUSB2.0
LEDs: Status (white), WPS (white), 2g (white), 5g (white) + 10 LED Ethernet
Buttons: 2 button (RESET, WPS)
Power: 12 VDC, 1.0 A
PCB Sticker: 970BUC0RW00N128SMT Ver. 1.0
CSN: MH16********
MAC WAN: E0:60:66:**:**:**
Manufacturer's code: 0BUC0500RW1

MAC address table (PRO)
-----------------------
use   address   source
LAN   *:23      factory 0x1000 (label)
WAN   *:24      factory $label +1
2g    *:23      factory $label
5g    *:25      factory $label +2

MAC addresses (NBN)
-------------------
use   address   source
LAN   *:0e      factory 0x1000
WAN   *:0f      LAN +1 (label)
2g    *:0f      LAN +1
5g    *:10      LAN +2

OEM easy installation
---------------------
1. Remove all dots from the factory image filename (except the dot
   before file extension)
2. Upload and update the firmware via the original web interface
3. Two options are possible after the reboot:
   a. OpenWrt - that's OK, the mission accomplished
   b. Stock firmware - install Stock firmware (to switch booflag from
      Sercomm0 to Sercomm1) and then OpenWrt factory image.

Return to Stock
---------------
1. Change the bootflag to Sercomm1 in OpenWrt CLI and then reboot:
   printf 1 | dd bs=1 seek=7 count=1 of=/dev/mtdblock2
   reboot
2. Install stock firmware via the web OEM firmware interface

Recovery
--------
Use sercomm-recovery tool.
Link: https://github.com/danitool/sercomm-recovery

Tested-by: Pavel Ivanov <pi635v@gmail.com>
Tested-by: Denis Myshaev <denis.myshaev@gmail.com>
Tested-by: Oleg Galeev <olegingaleev@gmail.com>
Tested-By: Ivan Pavlov <AuthorReflex@gmail.com>
Co-authored-by: Maximilian Weinmann <x1@disroot.org>
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit 2d6784a033)
2023-07-02 15:19:34 +02:00
Mikhail Zhilkin
5399d0362f ramips: sercomm.mk: preparation for Sercomm s1500 devices support
This commit moves a part of the code from the "sercomm-factory-cqr" recipe
to the separate "sercomm-mkhash" recipe. This simplifies recipes and
allows insert additional recipes between these code blocks (required for
the future support for Beeline SmartBox PRO router).

dd automatically fills the file by 0x00 if the filesize is less than
offset where we start writing. We drop such dd command so we need to add
--extra-padding-size 0x190 to the sercomm-pid.py call.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit f560be583a)
2023-07-02 15:19:34 +02:00
John Audia
c719dfd29f kernel: bump 5.15 to 5.15.119
Build system: x86_64
Build-tested: x86_64/ACEMAGICIAN T8PLUS, ramips/tplink_archer-a6-v3
Run-tested: x86_64/ACEMAGICIAN T8PLUS, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit 42cb0f0f26)
2023-07-02 10:59:25 +02:00
Felix Fietkau
7be76a9735 mt76: fix download hash
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit a3e173e00e)
2023-07-02 10:38:50 +02:00
Felix Fietkau
649d9e3590 mt76: update to the latest version
2c9c8ffe9d8c wifi: mt76: mt7615: fix possible race in mt7615_mac_sta_poll
3365c80f4202 wifi: mt76: connac: fix stats->tx_bytes calculation
b69d82130b47 wifi: mt76: connac: do not check WED status for non-mmio devices
1f9cd65b55d7 wifi: mt76: mt7921e: fix probe timeout after reboot
42dace9ce247 wifi: mt76: mt7921: Fix use-after-free in fw features query.
540adbb38205 wifi: mt76: mt7921: add Netgear AXE3000 (A8000) support
150e2d0ffc0c wifi: mt76: mt7996: fix possible NULL pointer dereference in mt7996_mac_write_txwi()
5b7519be2bf6 wifi: mt76: mt7996: fix endianness of MT_TXD6_TX_RATE
40f6e433f747 wifi: mt76: mt76x02: remove WEP support
84ea1a24f5b5 mt76: mt7921: don't assume adequate headroom for SDIO headers
5c28e17f8c78 wifi: mt76: mt7996: fix header translation logic
2386cec860fa wifi: mt76: mt7996: enable BSS_CHANGED_MU_GROUPS support
748d4a2bfebd wifi: mt76: mt7615: enable BSS_CHANGED_MU_GROUPS support
458ad0af21be wifi: mt76: enable UNII-4 channel 177 support
7fb046011293 wifi: mt76: mt7915: fix background radar event being blocked
d2a77a9954bb wifi: mt76: mt7915: report tx retries/failed counts for non-WED path
f76b102b09ca wifi: mt76: mt7915: rework tx packets counting when WED is active
5637d9e37d9e wifi: mt76: mt7915: rework tx bytes counting when WED is active
34bdc7fcb4c0 wifi: mt76: report non-binding skb tx rate when WED is active
d71aa7b992a3 wifi: mt76: mt7915: drop return in mt7915_sta_statistics
251c363c3087 wifi: mt76: mt7996: drop return in mt7996_sta_statistics
150bb95cb153 wifi: mt76: mt7921: do not support one stream on secondary antenna only
d480c3281f21 wifi: mt76: mt7921: remove macro duplication in regs.h
18b1027e5b6e wifi: mt76: mt7915: move mib_stats structure in mt76.h
25ec4b91020e wifi: mt76: mt7996: rely on mib_stats shared definition
6541afa88b3b wifi: mt76: mt7921: rely on mib_stats shared definition
eeb60eb9a5a0 wifi: mt76: mt7915: add support for MT7981 [sync with upstream]
d5b7e6a3d735 wifi: mt76: mt7921e: report tx retries/failed counts in tx free event
f0f19cea6646 wifi: mt76: mt7921: fix skb leak by txs missing in AMSDU
edd8a830f6e3 wifi: mt76: add tx_nss histogram to ethtool stats
e48235308b3e wifi: mt76: mt7915: accumulate mu-mimo ofdma muru stats
a729242363d9 wifi: mt76: mt7921: fix non-PSC channel scan fail
8d52436ee0cd wifi: mt76: mt7921: Support temp sensor
d152c8688c14 wifi: mt76: mt7915: disable WFDMA Tx/Rx during SER recovery
d07785c344ac wifi: mt76: mt7996: disable WFDMA Tx/Rx during SER recovery
2a19784137f9 wifi: mt76: mt7921: make mt7921_mac_sta_poll static
da8e33a15e71 wifi: mt76: mt7915: fix command timeout in AP stop period
cc58d5c4a9c9 mt76: mt7996: rely on mt76_sta_stats in mt76_wcid
98a37c82a373 wifi: mt76: mt7921: get rid of MT7921_RESET_TIMEOUT marco
ece724cf562b wifi: mt76: mt7996: move radio ctrl commands to proper functions
527cbbc5ede7 wifi: mt76: connac: add support for dsp firmware download
44e323340637 wifi: mt76: mt7996: fix bss wlan_idx when sending bss_info command
63f0053df07a wifi: mt76: mt7996: enable VHT extended NSS BW feature
e1bb4ef7b2bb wifi: mt76: connac: add support to set ifs time by mcu command
080ca19cc686 wifi: mt76: mt7996: use correct phy for background radar event
2c163f1812a3 wifi: mt76: mt7996: fix WA event ring size
b511a437ace4 wifi: mt76: mt7996: add muru support
ece67c98dc1c wifi: mt76: mt7996: increase tx token size
7c2515d85117 wifi: mt76: mt7921e: fix init command fail with enabled device
30706095c566 wifi: mt76: mt7915: move sta_poll_list and sta_poll_lock in mt76_dev
b06ed10ee271 wifi: mt76: mt7603: rely on shared sta_poll_list and sta_poll_lock
b59bdae339de wifi: mt76: mt7615: rely on shared sta_poll_list and sta_poll_lock
6da2e0e4ef54 wifi: mt76: mt7996: rely on shared sta_poll_list and sta_poll_lock
b19d3ad88e8b wifi: mt76: mt7921: rely on shared sta_poll_list and sta_poll_lock
595b033275a3 wifi: mt76: mt7915: move poll_list in mt76_wcid
16fcad171849 wifi: mt76: mt7603: rely on shared poll_list field
e19f84091d2e wifi: mt76: mt7615: rely on shared poll_list field
b87e4dad1e84 wifi: mt76: mt7996: rely on shared poll_list field
6d7950e258d0 wifi: mt76: mt7921: rely on shared poll_list field
f5c5eece5038 wifi: mt76: move ampdu_state in mt76_wcid
7e44467469fe mt76: connac: move more mt7921/mt7915 mac shared code in connac lib
39a70710ddcd wifi: mt76: move rate info in mt76_vif
0dc4326991df wifi: mt76: connac: move connac3 definitions in mt76_connac3_mac.h
29cfabbb4b90 wifi: mt76: connac: add connac3 mac library
d60b401867f4 linux-firmware: update firmware for MT7922 WiFi device
9404601a6c97 linux-firmware: update firmware for MT7922 WiFi device
2f851902d6b1 linux-firmware: update firmware for MT7921 WiFi device
f36b921692b9 Revert "wifi: mt76: mt76x02: remove WEP support
c50be0b54cdd wifi: mt76: mt7915: fix capabilities in non-AP mode
d7d7479b00e9 wifi: mt7915: fix beaconing in mesh mode
1377f586c6f5 wifi: mt7915: move capability check to start_ap

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 01885bc6a3)
(cherry picked from commit 86ebaef5d4)
2023-07-01 22:11:58 +02:00
Mikhail Zhilkin
7ff95775a2 mediatek: add support for Mercusys MR90X v1
This commit adds support for Mercusys MR90X(EU) v1 router.

Device specification
--------------------
SoC Type:   MediaTek MT7986BLA, Cortex-A53, 64-bit
RAM:        MediaTek MT7986BLA (512MB)
Flash:      SPI NAND GigaDevice GD5F1GQ5UEYIGY (128 MB)
Ethernet:   MediaTek MT7531AE + 2.5GbE MaxLinear GPY211C0VC (SLNW8)
Ethernet:   1x2.5Gbe (WAN/LAN 2.5Gbps), 3xGbE (WAN/LAN 1Gbps, LAN1, LAN2)
WLAN 2g:    MediaTek MT7975N, b/g/n/ax, MIMO 4x4
WLAN 5g:    MediaTek MT7975P(N), a/n/ac/ax, MIMO 4x4
LEDs:       1 orange and 1 green status LEDs, 4 green gpio-controlled
            LEDs on ethernet ports
Button:     1 (Reset)
USB ports:  No
Power:      12 VDC, 2 A
Connector:  Barrel
Bootloader: Main U-Boot - U-Boot 2022.01-rc4. Additionally, both UBI
            slots contain "seconduboot" (also U-Boot 2022.01-rc4)

Serial console (UART)
---------------------
                            V
+-------+-------+-------+-------+
| +3.3V |  GND  |  TX   |  RX   |
+---+---+-------+-------+-------+
    |
    +--- Don't connect

The R3 (TX line) and R6 (RX line) are absent on the PCB. You should
solder them or solder the jumpers.

Installation (UART)
-------------------
1. Place OpenWrt initramfs image on tftp server with IP 192.168.1.2
2. Attach UART, switch on the router and interrupt the boot process by
   pressing 'Ctrl-C'
3. Load and run OpenWrt initramfs image:
      tftpboot initramfs-kernel.bin
      bootm
4. Once inside OpenWrt, set / update env variables:
      fw_setenv baudrate 115200
      fw_setenv bootargs "ubi.mtd=ubi0 console=ttyS0,115200n1 loglevel=8 earlycon=uart8250,mmio32,0x11002000 init=/etc/preinit"
      fw_setenv fdtcontroladdr 5ffc0e70
      fw_setenv ipaddr 192.168.1.1
      fw_setenv loadaddr 0x46000000
      fw_setenv mtdids "spi-nand0=spi-nand0"
      fw_setenv mtdparts "spi-nand0:2M(boot),1M(u-boot-env),50M(ubi0),50M(ubi1),8M(userconfig),4M(tp_data)"
      fw_setenv netmask 255.255.255.0
      fw_setenv serverip 192.168.1.2
      fw_setenv stderr serial@11002000
      fw_setenv stdin serial@11002000
      fw_setenv stdout serial@11002000
      fw_setenv tp_boot_idx 0
5. Run 'sysupgrade -n' with the sysupgrade OpenWrt image

Installation (without UART)
---------------------------
1.  Login as root via SSH (router IP, port 20001, password - your web
    interface password)
2.  Open for editing /etc/hotplug.d/iface/65-iptv (e.g., using WinSCP and
    SSH settings from the p.1)
3.  Add a newline after "#!/bin/sh":
       telnetd -l /bin/login.sh
4.  Save "65-iptv" file
5.  Toggle "IPTV/VLAN Enable" checkbox in the router web interface and
    save
6.  Make sure that telnetd is running:
       netstat -ltunp | grep 23
7.  Login via telnet to router IP, port 23 (no username and password are
    required)
8  Upload OpenWrt "initramfs-kernel.bin" to the "/tmp" folder of the
    router (e.g., using WinSCP and SSH settings from the p.1)
9.  Stock busybox doesn't contain ubiupdatevol command. Hence, we need to
    download and upload the full version of busybox to the router. For
    example, from here:
    https://github.com/xerta555/Busybox-Binaries/raw/master/busybox-arm64
    Upload busybox-arm64 to the /tmp dir of the router and run:
    in the telnet shell:
       cd /tmp
       chmod a+x busybox-arm64
10. Check "initramfs-kernel.bin" size:
       du -h initramfs-kernel.bin
11. Delete old and create new "kernel" volume with appropriate size
    (greater than "initramfs-kernel.bin" size):
       ubirmvol /dev/ubi0 -N kernel
       ubimkvol /dev/ubi0 -n 1 -N kernel -s 9MiB
12. Write OpenWrt "initramfs-kernel.bin" to the flash:
       ./busybox-arm64 ubiupdatevol /dev/ubi0_1 /tmp/initramfs-kernel.bin
13. u-boot-env can be empty so lets create it (or overwrite it if it
    already exists) with the necessary values:
       fw_setenv baudrate 115200
       fw_setenv bootargs "ubi.mtd=ubi0 console=ttyS0,115200n1 loglevel=8 earlycon=uart8250,mmio32,0x11002000 init=/etc/preinit"
       fw_setenv fdtcontroladdr 5ffc0e70
       fw_setenv ipaddr 192.168.1.1
       fw_setenv loadaddr 0x46000000
       fw_setenv mtdids "spi-nand0=spi-nand0"
       fw_setenv mtdparts "spi-nand0:2M(boot),1M(u-boot-env),50M(ubi0),50M(ubi1),8M(userconfig),4M(tp_data)"
       fw_setenv netmask 255.255.255.0
       fw_setenv serverip 192.168.1.2
       fw_setenv stderr serial@11002000
       fw_setenv stdin serial@11002000
       fw_setenv stdout serial@11002000
       fw_setenv tp_boot_idx 0
14. Reboot to OpenWrt initramfs:
       reboot
15. Login as root via SSH (IP 192.168.1.1, port 22)
16. Upload OpenWrt sysupgrade.bin image to the /tmp dir of the router
17. Run sysupgrade:
       sysupgrade -n /tmp/sysupgrade.bin

Recovery
--------
1. Press Reset button and power on the router
2. Navigate to U-Boot recovery web server (http://192.168.1.1/) and
   upload the OEM firmware

Recovery (UART)
---------------
1. Place OpenWrt initramfs image on tftp server with IP 192.168.1.2
2. Attach UART, switch on the router and interrupt the boot process by
   pressing 'Ctrl-C'
3. Load and run OpenWrt initramfs image:
      tftpboot initramfs-kernel.bin
      bootm
4. Do what you need (restore partitions from a backup, install OpenWrt
   etc.)

Stock layout
------------
0x000000000000-0x000000200000 : "boot"
0x000000200000-0x000000300000 : "u-boot-env"
0x000000300000-0x000003500000 : "ubi0"
0x000003500000-0x000006700000 : "ubi1"
0x000006700000-0x000006f00000 : "userconfig"
0x000006f00000-0x000007300000 : "tp_data"

ubi0/ubi1 format
----------------
U-Boot at boot checks that all volumes are in place:
+-------------------------------+
| Volume Name: uboot   Vol ID: 0|
| Volume Name: kernel  Vol ID: 1|
| Volume Name: rootfs  Vol ID: 2|
+-------------------------------+

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| label   | 00:eb:xx:xx:xx:be | label     |
| LAN     | 00:eb:xx:xx:xx:be | label     |
| WAN     | 00:eb:xx:xx:xx:bf | label+1   |
| WLAN 2g | 00:eb:xx:xx:xx:be | label     |
| WLAN 5g | 00:eb:xx:xx:xx:bd | label-1   |
+---------+-------------------+-----------+
label MAC address was found in UBI partition "tp_data", file
"default-mac". OEM wireless eeprom is also there (file
"MT7986_EEPROM.bin").

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
(cherry picked from commit e4fe3097ef)
[Fix merging conflict]
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
2023-07-01 15:16:17 +00:00