aboutsummaryrefslogtreecommitdiff
path: root/target/linux
Commit message (Collapse)AuthorAge
* kernel: bump 6.1 to 6.1.37John Audia2023-07-05
| | | | | | | | | | Manually rebased: generic/hack-6.1/220-arm-gc_sections.patch armsr/patches-6.1/221-armsr-disable_gc_sections_armv7.patch All other patches automatically rebased. Signed-off-by: John Audia <therealgraysky@proton.me>
* kernel: bump 6.1 to 6.1.36John Audia2023-07-05
| | | | | | | | | | | | | All patches automatically rebased. Acknowledgment to @john-tho for the changes to fs.mk to accommodate new paths introduced in https://github.com/gregkh/linux/commit/29429a1f5871dbe54ee0da81bb12db8567f15379 Build system: x86_64 Build-tested: bcm2711/RPi4B Run-tested: bcm2711/RPi4B Signed-off-by: John Audia <therealgraysky@proton.me>
* kernel: modules: add xdp-sockets-diag supportTianling Shen2023-07-05
| | | | | | Support for PF_XDP sockets monitoring interface used by the ss tool. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* ipq-wifi: fix upstream board-2.bin ZTE M289F snafuChristian Lamparter2023-07-04
| | | | | | | | | | | | | | | | | | | | 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>
* x86/64: set CONFIG_NVME_HWMON=yJohn Audia2023-07-04
| | | | | | | CONFIG_NVME_HWMON exposes /sys/class/nvme/nvme0/device/hwmon to allow sensors (and others) to see NVMe drive health Signed-off-by: John Audia <therealgraysky@proton.me>
* kernel: introduce KERNEL_WERROR config optionPetr Štetiar2023-07-04
| | | | | | | | | | | | | In commit b2d1eb717b65 ("generic: 5.15: enable Werror by default for kernel compile") CONFIG_WERROR=y was enabled and all warnings/errors reported with GCC 12 were fixed. Keeping this in sync with past/future GCC versions is going to be uphill battle, so lets introduce new KERNEL_WERROR config option, enable it by default only for tested/known working combinations and on buildbots. References: #12687 Signed-off-by: Petr Štetiar <ynezz@true.cz>
* x86: set CONFIG_X86_AMD_PLATFORM_DEVICEJohn Audia2023-07-03
| | | | | | Needed by AMD processors using Carrizo and later chipsets Signed-off-by: John Audia <therealgraysky@proton.me>
* ramips: mt7621: add TP-Link EAP613 v1Sander Vanheule2023-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 6cbcc34f50a3 ("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>
* ath79: fix broken 02_network scriptWenli Looi2023-07-02
| | | | | | Script was broken by an extraneous space. Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
* mediatek: define NMBM management region for WAX220David Bauer2023-07-02
| | | | | | | | 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>
* realtek: Use MDIO_* constants from <linux/mdio.h>Pascal Ernster2023-07-01
| | | | | | | | | | | | | | | | | | | | To improve code readability in drivers/net/phy/rtl83xx-phy.c, replace constants MMD_AN and MMD_VEND2 from drivers/net/phy/rtl83xx-phy.h with MDIO_MMD_AN and MDIO_MMD_VEND2 from <linux/mdio.h>. Also, replace BIT(0) with MDIO_EEE_2_5GT, BIT(1) with MDIO_EEE_100TX, BIT(2) with MDIO_EEE_1000T, BIT(9) with MDIO_AN_CTRL1_RESTART, BIT(12) with MDIO_AN_CTRL1_ENABLE, 32 with MDIO_AN_10GBT_CTRL, 60 with MDIO_AN_EEE_ADV, and 62 with MDIO_AN_EEE_ADV2 from <linux/mdio.h>. Suggested-by: DENG Qingfang <dqfext@gmail.com> Signed-off-by: Pascal Ernster <git@hardfalcon.net>
* realtek: Use ADVERTISE_* and MII_PHYSID* from <linux/mii.h>Pascal Ernster2023-07-01
| | | | | | | | | | Replace BIT(x) and numerical values in drivers/net/phy/rtl83xx-phy.c with constants from <linux/mii.h> to improve code readability. To make reviewing easier, this commit only addresses ADVERTISE_* and MII_PHYSID* constants. Signed-off-by: Pascal Ernster <git@hardfalcon.net>
* realtek: Use MII_BMCR and BMCR_* constants from <linux/mii.h>Pascal Ernster2023-07-01
| | | | | | | | | | | | Replace numerical values, BIT(x) and (1 << x) in drivers/net/phy/rtl83xx-phy.c with constants from <linux/mii.h> to improve code readability. To make reviewing easier, this commit only addresses MII_BMCR and BMCR_* constants. Suggested-by: DENG Qingfang <dqfext@gmail.com> Signed-off-by: Pascal Ernster <git@hardfalcon.net>
* ramips: Add support for ComFast CF-E390AXUsama Nassir2023-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for ComFast CF-E390AX. It is a 802.11 wifi6 cieling AP, based on MediaTek MT7261AT. Specifications: SoC: MediaTek MT7621AT RAM: 128 MiB Flash: 16 MiB NOR (Macronix mx25l12805d) Wireless: MT7915E (2.4G) 802.11ax/b/g/n MT7915E (5G) 802.11ac/ax/n Ethernet: 2 x 1Gbs Button: 1 x "Reset" button LED: 1x Blue LED + 1x Red LED + 1x green LED Power: PoE Manufacturer Page: http://en.comfast.com.cn/index.php?m=content&c=index&a=show&catid=84&id=75 Flash Layout: 0x000000000000-0x000000030000 : "bootloader" 0x000000030000-0x000000040000 : "config" 0x000000050000-0x000000060000 : "factory" 0x000000090000-0x000001000000 : "firmware" First install: 1. Set device into http firmware fail safe upload mode by pressing the reset button for 10 seconds while powering it on. Once the LED stops flashing, safe mode will be running. 2. Set PC IP address to 192.168.1.2 3. Browse to 192.168.1.1 and upload the factory image using the web interface. Signed-off-by: Usama Nassir <usama.nassir@gmail.com>
* ath79: add support for COMFAST CF-E380AC v2Joao Henrique Albuquerque2023-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | COMFAST CF-E380AC v2 is a ceiling mount AP with PoE support, based on Qualcomm/Atheros QCA9558+QCA9880+AR8035. There are two versions of this model, with different RAM and U-Boot mtd partition sizes: - v1: 128 MB of RAM, 128 KB U-Boot image size - v2: 256 MB of RAM, 256 KB U-Boot image size Version number is available only inside vendor GUI, hardware and markings are the same. Short specification: - 720/600/200 MHz (CPU/DDR/AHB) - 1x 10/100/1000 Mbps Ethernet, with PoE support - 128 or 256 MB of RAM (DDR2) - 16 MB of FLASH - 3T3R 2.4 GHz, with external PA (SE2576L), up to 28 dBm - 3T3R 5 GHz, with external PA (SE5003L1), up to 30 dBm - 6x internal antennas - 1x RGB LED, 1x button - UART (T11), LEDs/GPIO (J7) and USB (T12) headers on PCB - external watchdog (Pericon Technology PT7A7514) COMFAST MAC addresses : Though the OEM firmware has four adresses in the usual locations, it appears that the assigned addresses are just incremented in a different way: Interface address location Lan *:00 0x0 2.4g *:0A n/a (0x0 + 10) 5g *:02 0x6 Unused Addresses found in ART hexdump address location *:01 0x1002 *:03 0x5006 To keep code consistency the MAC address assignments are made based on increments of the one found in 0x0; Signed-off-by: Joao Henrique Albuquerque <joaohccalbu@gmail.com>
* ramips: add support for Sercomm S1500 devicesMikhail Zhilkin2023-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ramips: sercomm.mk: preparation for Sercomm s1500 devices supportMikhail Zhilkin2023-07-01
| | | | | | | | | | | | | 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>
* ath79: DTS improvement for buzzer on RB951G-2HnDPavel Pernička2023-07-01
| | | | | | | | | | 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>
* layerscape: remove Traverse LS1043 boardsMathew McBride2023-07-01
| | | | | | | | | | | | | | | | The Traverse LS1043 boards were not publicly released, all the production has been going to OEM customers who do not use the image format defined in the OpenWrt tree. Only a few samples were circulated outside Traverse and our OEM customers. The public release (then called Five64) of this series was cancelled in favour of our LS1088A based design (Ten64). It is best to remove these boards to avoid wasting OpenWrt project and contributor resources. Signed-off-by: Mathew McBride <matt@traverse.com.au>
* mediatek: filogic: add H3C Magic NX30 Pro supportChukun Pan2023-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* mediatek: add support for Netgear EX6250v2 seriesWenli Looi2023-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ramips: add support for Netgear EAX12 seriesWenli Looi2023-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Netgear EAX12, EAX11v2, EAX15v2 are wall-plug 802.11ax (Wi-Fi 6) extenders that share the SoC, WiFi chip, and image format with the WAX202. Specifications: * MT7621, 256 MiB RAM, 128 MiB NAND * MT7915: 2.4/5 GHz 2x2 802.11ax (DBDC) * Ethernet: 1 port 10/100/1000 * UART: 115200 baud (labeled on board) All LEDs and buttons appear to work without state_default. 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. Revert to stock firmware: * Flash the stock firmware to the bootloader using TFTP/NMRP. References in GPL source: https://www.downloads.netgear.com/files/GPL/EAX12_EAX11v2_EAX15v2_GPL_V1.0.3.34_src.tar.gz * target/linux/ramips/dts/mt7621-rfb-ax-nand.dts DTS file for this device. Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
* image: add additional fields to Netgear encrypted imageWenli Looi2023-07-01
| | | | | | | | | | | | | | | | 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>
* mxs: add testing kernel 6.1Zoltan HERPAI2023-07-01
| | | | | | Runtime-tested on Olinuxino Maxi. Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
* treewide: remove CONFIG_FRAME_WARN from kernel configsRobert Marko2023-07-01
| | | | | | | CONFIG_FRAME_WARN is set dynamically, so there is no need for it to be set in target kernel configs, so lets remove it from all configs. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
* generic: filter out CONFIG_FRAME_WARNRobert Marko2023-07-01
| | | | | | | | | | | | | 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>
* kernel: bump 5.15 to 5.15.119John Audia2023-07-01
| | | | | | | | 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>
* mxs: rework image generationZoltan HERPAI2023-06-30
| | | | | | | | 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>
* ramips/mt7621: disable the cpufreq driverFelix Fietkau2023-06-30
| | | | | | It causes a noticeable performance decrease Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: net: phy: realtek: fix rtl822x_probe on unsupported devicesMartin Schiller2023-06-27
| | | | | | | | 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>
* kernel: phy: motorcomm: Fix compileHauke Mehrtens2023-06-25
| | | | | | Fix compilation on starfive target. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ramips: do not print error log when mdio bus is disabledShiji Yang2023-06-25
| | | | | | | | | The mdio bus is used to control externel switch. In most cases, they are disabled, which is the normal behavior. Treating this as an error makes no sense, so we need to change the notification level from error to info. Fixes: a2acdf960704 ("ramips: mt7620: remove useless GMAC nodes") Signed-off-by: Shiji Yang <yangshiji66@qq.com>
* ramips: backport upstream mt762x PCIe driver error log fixesShiji Yang2023-06-25
| | | | | | | | | | | | | | | | | | | | These patches silence some mt762x PCIe driver error messeges by removing the useless debugging codes and replacing incorrectly used 'dev_err()' with 'dev_info()': PCI: mt7621: Use dev_info() to log PCIe card detection [1] mips: pci-mt7620: do not print NFTS register value as error log [2] mips: pci-mt7620: use dev_info() to log PCIe device detection result [3] Patch [1] has already been merged into the Linux 6.3 branch. Patches [2] and [3] have been merged into the "mips-next" tree, and they will be part of the upcoming Linux 6.5. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v6.4-rc7&id=50233e105a0332ec0f3bc83180c416e6b200471e [2] https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git/commit/?id=9f9a035e6156a57d9da062b26d2a48d031744a1e [3] https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git/commit/?id=89ec9bbe60b61cc6ae3eddd6d4f43e128f8a88de Signed-off-by: Shiji Yang <yangshiji66@qq.com>
* ramips: add support for D-Link DIR-806A B1 routerAlexey Bartenev2023-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | General specification: SoC Type: MediaTek MT7620A (580MHz) ROM: 8 MB SPI-NOR (MX25L6406E) RAM: 64 MB DDR (W9751G6KB-25) Switch: MediaTek MT7530 Ethernet: 5 ports - 5×100MbE (WAN, LAN1-4) Wireless: 2.4 GHz (MediaTek RT5390): b/g/n Wireless: 5 GHz (MediaTek MT7610EN): ac/n Buttons: 2 button (POWER, WPS/RESET) Bootloader: U-Boot 1.1.3 Power: 12 VDC, 0.5 A MACs: | LAN | [Factory + 0x04] - 2 | | WLAN 2.4g | [Factory + 0x04] - 1 | | WLAN 5g | [Factory + 0x8004] - 3 | | WAN | [Factory + 0x04] - 2 | OEM easy installation: 1. Use a PC to browse to http://192.168.0.1. 2. Go to the System section and open the Firmware Update section. 3. Under the Local Update at the right, click on the CHOOSE FILE... 4. When a modal window appears, choose the firmware file and click on the Open. 5. Next click on the UPDATE FIRMWARE button and upload the firmware image. Wait for the router to flash and reboot. OEM installation using the TFTP method (need level converter): 1. Download the latest firmware image. 2. Set up a Tftp server on a PC (e.g. Tftpd32) and place the firmware image to the root directory of the server. 3. Power off the router and use a twisted pair cable to connect the PC to any of the router's LAN ports. 4. Configure the network adapter of the PC to use IP address 192.168.0.180 and subnet mask 255.255.255.0. 5. Connect serial port (57600 8N1) and turn on the router. 6. Then interrupt "U-Boot Boot Menu" by hitting 2 key (select "2: Load system code then write to Flash via TFTP."). 7. Press Y key when show "Warning!! Erase Linux in Flash then burn new one. Are you sure? (Y/N)" Input device IP (192.168.0.1) ==:192.168.0.1 Input server IP (192.168.0.180) ==:192.168.0.180 Input Linux Kernel filename () ==:firmware_name The router should download the firmware via TFTP and complete flashing in a few minutes. After flashing is complete, use the PC to browse to http://192.168.1.1 or ssh to proceed with the configuration. Signed-off-by: Alexey Bartenev <41exey@proton.me>
* layerscape: add patches for SFP support on DPAA2 platformsMathew McBride2023-06-25
| | | | | | | | | | | | | | | | | | This is required for managed operation of the SFP ports on the Ten64 (LS1088A) and other boards. The two issues resolved are: - Validation of 10G SFP link modes fail as Linux did not consider the equivalence of modes like XFI, 10GBase-R - Fix a locking issue that prevented the system rebooting when SFP ports were controlled by the SFP driver. Please note, these patches are replaced by upstream ones in 6.x, see: commit 61ec9a8154a5 ("armvirt: add SFP support patches for NXP Layerscape DPAA2 platforms") in OpenWrt for the relevant patches. Signed-off-by: Mathew McBride <matt@traverse.com.au>
* layerscape: armv8_64b: add Traverse Ten64 NAND variantMathew McBride2023-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The Ten64 board[1] is based around NXP's Layerscape LS1088A SoC. It is capable of booting both standard Linux distributions from disk devices, using EFI, and booting OpenWrt from NAND. See the online manual for more information, including the flash layout[2]. This patchset adds support for generating Ten64 images for NAND boot. For disk boot, one can use the EFI support that was recently added to the armvirt target. We previously supported NAND users by building inside our armvirt/EFI target[3], but this approach is not suitable for OpenWrt upstream. Users who used our supplied NAND images will be able to upgrade to this via sysupgrade. Signed-off-by: Mathew McBride <matt@traverse.com.au> [1] - https://www.traverse.com.au/hardware/ten64 [2] - https://ten64doc.traverse.com.au/hardware/flash/ [3] - Example: https://gitlab.com/traversetech/ls1088firmware/openwrt/-/commit/285e4360e1604eb466880d245d48efd9962143a5
* ipq4019: add support for ZTE MF287+ aka DreiNeoAndreas Böhler2023-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ZTE MF287+ is a LTE router used (exclusively?) by the network operator "3". The MF287 (i.e. non-plus aka 3Neo) is also supported (the only difference is the LTE modem) Specifications ============== SoC: IPQ4018 RAM: 256MiB Flash: 8MiB SPI-NOR + 128MiB SPI-NAND LAN: 4x GBit LAN LTE: ZTE Cat12 (MF287+) / ZTE Cat6 (MF287) WiFi: 802.11a/b/g/n/ac SoC-integrated MAC addresses ============= LAN: from config + 2 WiFi 1: from config WiFi 2: from config + 1 Installation ============ Option 1 - TFTP --------------- TFTP installation using UART is preferred. Disassemble the device and connect serial. Put the initramfs image as openwrt.bin to your TFTP server and configure a static IP of 192.168.1.100. Load the initramfs image by typing: setenv serverip 192.168.1.100 setenv ipaddr 192.168.1.1 tftpboot 0x82000000 openwrt.bin bootm 0x82000000 From this intiramfs boot you can take a backup of the currently installed partitions as no vendor firmware is available for download: ubiattach -m14 cat /dev/ubi0_0 > /tmp/ubi0_0 cat /dev/ubi0_1 > /tmp/ubi0_1 Copy the files /tmp/ubi0_0 and /tmp/ubi0_1 somewhere save. Once booted, transfer the sysupgrade image and run sysupgrade. You might have to delete the stock volumes first: ubirmvol /dev/ubi0 -N ubi_rootfs ubirmvol /dev/ubi0 -N kernel Option 2 - From stock firmware ------------------------------ The installation from stock requires an exploit first. The exploit consists of a backup file that forces the firmware to download telnetd via TFTP from 192.168.0.22 and run it. Once exploited, you can connect via telnet and login as admin:admin. The exploit will be available at the device wiki page. Once inside the stock firmware, you can transfer the -factory.bin file to /tmp by using "scp" from the stock frmware or "tftp". ZTE has blocked writing to the NAND. Fortunately, it's easy to allow write access - you need to read from one file in /proc. Once done, you need to erase the UBI partition and flash OpenWrt. Before performing the operation, make sure that mtd13 is the partition labelled "rootfs" by calling "cat /proc/mtd". Complete commands: cd /tmp tftp -g -r factory.bin 192.168.0.22 cat /proc/driver/sensor_id flash_erase /dev/mtd13 0 0 dd if=/tmp/factory.bin of=/dev/mtdblock13 bs=131072 Afterwards, reboot your device and you should have a working OpenWrt installation. Restore Stock ============= Option 1 - via UART ------------------- Boot an OpenWrt initramfs image via TFTP as for the initial installation. Transfer the two backed-up files to your box to /tmp. Then, run the following commands - replace $kernel_length and $rootfs_size by the size of ubi0_0 and ubi0_1 in bytes. ubiattach -m 14 ubirmvol /dev/ubi0 -N kernel ubirmvol /dev/ubi0 -N rootfs ubirmvol /dev/ubi0 -N rootfs_data ubimkvol /dev/ubi0 -N kernel -s $kernel_length ubimkvol /dev/ubi0 -N ubi_rootfs -s $rootfs_size ubiupdatevol /dev/ubi0_0 /tmp/ubi0_0 ubiupdatevol /dev/ubi0_1 /tmp/ubi0_1 Option 2 - from within OpenWrt ------------------------------ This option requires to flash an initramfs version first so that access to the flash is possible. This can be achieved by sysupgrading to the recovery.bin version and rebooting. Once rebooted, you are again in a default OpenWrt installation, but no partition is mounted. Follow the commands from Option 1 to flash back to stock. LTE Modem ========= The LTE modem is similar to other ZTE devices and controls some more LEDs and battery management. Configuring the connection using uqmi works properly, the modem provides three serial ports and a QMI CDC ethernet interface. Signed-off-by: Andreas Böhler <dev@aboehler.at>
* ipq40xx: Enable gpio-restart in kernel configurationAndreas Böhler2023-06-25
| | | | | | | Some ZTE devices require the gpio-restart driver to support restarting the LTE modem along with OpenWrt Signed-off-by: Andreas Böhler <dev@aboehler.at>
* ramips: add Edimax BR-6208AC V2 supportStefan Weil2023-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | Specifications: - Device: Edimax BR-6208AC V2 - SoC: MT7620A - Flash: 16 MiB - RAM: 64 MiB - Switch: 1 WAN, 3 LAN (10/100 Mbps) - WiFi: MT7620 2.4 GHz + MT7610E 5 GHz - LEDs: 1x POWER (green, not configurable) 1x Firmware (green, configurable) 1x Internet (green, configurable) 1x VPN (green, configurable) 1x 2.4G (green, not configurable) 1x 5G (green, not configurable) Normal installation: - Upload the sysupgrade image via the default web interface Installation with U-Boot and TFTP: - Requires a TFTP server which provides the sysupgrade image - Requires a connection to the serial port of the device, rate 57600 Signed-off-by: Stefan Weil <sw@weilnetz.de>
* ath79: add support for MikroTik RB951G-2HnDMichał Kępień2023-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ath79: mikrotik: extract common bits for RB951x-2HnD devicesMichał Kępień2023-06-25
| | | | | | | | 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>
* ath79: 5.15: fix not exported sym ath79_pll_baseLuiz Angelo Daros de Luca2023-06-25
| | | | | | | | | | ath79_pll_base was declared as extern but no code exported it. Anyone including arch/mips/include/asm/mach-ath79/ath79.h and compiled as a module would break with: ERROR: modpost: "ath79_pll_base" [drivers/net/ethernet/atheros/ag71xx/ag71xx.ko] undefined! Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
* ath79: Add support for MOXA AWK-1137CMaximilian Martin2023-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Device specifications: ====================== * Qualcomm/Atheros AR9344 * 128 MB of RAM * 16 MB of SPI NOR flash * 2x 10/100 Mbps Ethernet * 2T2R 2.4/5 GHz Wi-Fi * 4x GPIO-LEDs (1x wifi, 2x ethernet, 1x power) * 1x GPIO-button (reset) * 2x fast ethernet - lan1 + builtin switch port 1 + used as WAN interface - lan2 + builtin switch port 2 + used as LAN interface * 9-30V DC * external antennas Flashing instructions: ====================== Log in to https://192.168.127.253/ Username: admin Password: moxa Open Maintenance > Firmware Upgrade and install the factory image. Serial console access: ====================== Connect a RS232-USB converter to the maintenance port. Pinout: (reset button left) [GND] [NC] [RX] [TX] Firmware Recovery: ================== When the WLAN and SYS LEDs are flashing, the device is in recovery mode. Serial console access is required to proceed with recovery. Download the original image from MOXA and rename it to 'awk-1137c.rom'. Set up a TFTP server at 192.168.127.1 and connect to a lan port. Follow the instructions on the serial console to start the recovery. Signed-off-by: Maximilian Martin <mm@simonwunderlich.de>
* mediatek: add support for Mercusys MR90X v1Mikhail Zhilkin2023-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ipq40xx: meraki-mr33, meraki-mr74: disable image generationLech Perczak2023-06-25
| | | | | | | | | | | | | After migrating to kernel 5.15, upgrading causes the units to become soft-bricked, hanging forever at the kernel startup. Kernel size limitation of 4000000 bytes is suspected here, but this is not fully confirmed. Disable the images to protect users from inadvertent bricking of units, because recovery of those is painful with Cisco's U-boot, until the root cause is found and fixed. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* kernel: migrate FORCE_MAX_ZONEORDER to ARCH_FORCE_MAX_ORDER for 6.1Stefan Kalscheuer2023-06-25
| | | | | | | | | | The flag FORCE_MAX_ZONEORDER was renamed to ARCH_FORCE_MAX_ORDER in Kernel 6.1 [1]. Rename the flag in generic Kconfig and remove it from target configs. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0192445cb2f7ed1cd7a95a0fc8c7645480baba25 Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
* bcm53xx: add Wavlink Quantum DAX/WL-WN538A8 as alt nameDavide Fioravanti2023-06-25
| | | | | | | As already documented in the wiki (https://openwrt.org/toh/wavlink/quantum_dax_wn538a8), this router is based on the Phicomm K3. Just the flashing method is different Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
* ramips: fix lan leds for Wavlink WL-WN535K1Davide Fioravanti2023-06-25
| | | | | | | | | Previously both lan1 and lan2 leds were wrongly labelled as lan2. Moreover they were connected to the wrong lan port. Fixes 8fde82095ba0 ("ramips: add support for Wavlink WL-WN535K1") Reported-by: Nicolò Maria Semprini <nicosemp@gmail.com> Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
* kernel: bump 6.1 to 6.1.35John Audia2023-06-23
| | | | | | | | | | All patches automatically rebased. Build system: x86_64 Build-tested: bcm2711/RPi4B Run-tested: bcm2711/RPi4B Signed-off-by: John Audia <therealgraysky@proton.me>
* kernel: bump 5.15 to 5.15.118John Audia2023-06-23
| | | | | | | | | | 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>