Commit Graph

58133 Commits

Author SHA1 Message Date
Daniel Golle
d85438f454 mediatek: copy patches and files for Linux 6.1
First step only copies patches-5.15 and files-5.15 to
patches-6.1 and files-6.1 respectively.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2023-07-07 14:01:39 +02:00
Daniel Golle
0c5605b70c mediatek: prepare old rtk switch driver for use with Linux 6.1
The old RealTek RTL8367S switch driver which is used for some MT7622
devices needs to be modified to no longer free the GPIO after reset
has completed.
This is due to Linux 5.19 removing devm_gpio_free via commit
2b038e786f83 ("gpiolib: devres: Get rid of unused devm_gpio_free()")

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2023-07-07 14:01:39 +02:00
Daniel Golle
e386b279fd generic: 6.1: fix uImage.FIT partitions on mtdblock and ubiblock
When refreshing the hack patches for Linux 6.1 the part of the uImage.FIT
partition parser patch which takes care of allowing mtdblock and ubiblock
devices to have partitions has been dropped, supposedly by accident.
Re-add a that part to the patch, so devices using a uImage.FIT filesystem
sub-image as rootfs can work with Linux 6.1.

Fixes: 19a246bb65 ("generic: 6.1: manually refresh hack patches")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2023-07-07 14:01:39 +02:00
Koen Vandeputte
bc91784f26 kernel: add support for tw686x frame grabbers
Adds support for Intersil/Techwell tw686x frame grabbers.

By default, this module uses MEMCPY to transfer data.
Let's switch to "Contiguous DMA" which is the fastest
performing method available.

[   10.074349] tw6869: PCI 0000:07:00.0, IRQ 33, MMIO 0x1200000 (contig mode)
[   10.081381] tw686x 0000:07:00.0: enabling device (0140 -> 0142)

Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
2023-07-07 08:20:59 +02:00
Koen Vandeputte
a9a872b9d4 kernel: add support for imx pxp
This adds support for the i.MX Pixel Pipeline IP block
which is available on some imx6 flavours [1]

This allows to use hardware offloading for operations like:
- Colour conversion
- Scaling
- Rotation

[1] https://en.wikipedia.org/wiki/I.MX#i.MX_6_series

Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
2023-07-07 08:20:59 +02:00
Koen Vandeputte
7a726297a7 kernel: add support for imx vpu
This adds support for the Video Processing Unit IP block
which is present in certain i.MX SOC's.

The vpu used in imx6 is the coda960 which supports:
- h264 enc
- h264 dec
- jpeg enc
- jpeg dec

Please note that the required firmware needs to be added
by yourself as it's not available currently in linux-firmware upstream.

The firmware package can be found on the internet
and it will decompress itself exposing all binaries
after accepting the EULA.

The binaries should be placed at exactly these paths:

- /lib/firmware/vpu_fw_imx6d.bin
- /lib/firmware/vpu_fw_imx6q.bin

Following output will be printed at boottime if all is well:

[    9.769638] coda 2040000.vpu: Firmware code revision: 46076
[    9.775277] coda 2040000.vpu: Initialized CODA960.
[    9.780082] coda 2040000.vpu: Firmware version: 3.1.1
[    9.785312] coda 2040000.vpu: coda-jpeg-encoder registered as video0
[    9.791859] coda 2040000.vpu: coda-jpeg-decoder registered as video1
[    9.798375] coda 2040000.vpu: coda-video-encoder registered as video2
[    9.805013] coda 2040000.vpu: coda-video-decoder registered as video3

gstreamer will automatically detect and use all encoders/decoders.

Please note that a FILES catch-all is required for the videobuf-dma objects
as some modules enabling this could require (and thus generating) only 1 of them.

Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
2023-07-07 08:20:59 +02:00
Koen Vandeputte
f1a9240f0b kernel: add support for videobuf-dma
This adds support for videobuf2-dma driver.

This module contains following flavors:
- Contiguous
- Scatter/Gather

Drivers using this can enable 1 of the, or both, depending on their needs.

Due to this, a FILES catch-all is required for the videobuf-dma objects
as depending on requirements, only 1 of them could get generated.

Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
2023-07-07 08:20:59 +02:00
Koen Vandeputte
0295a29f1d kernel: add support for mem2mem devices
This allows addition of devices which use these kernel
modules.

This also adds a package for handling dma within video2buf.
These are only build when selected by a caller

Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
2023-07-07 08:20:59 +02:00
Koen Vandeputte
0a0b1fd159 kernel: add missing symbols in 6.1
Found these while playing with video pci media adapter support

Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
2023-07-07 08:20:59 +02:00
Koen Vandeputte
02c1acbfba kernel: add missing symbols in 5.15
Found these while playing with video pci media adapter support

Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
2023-07-07 08:20:59 +02:00
Jonas Gorski
c22931b653 kernel-headers: install isa-rev.h on mips to fix lzma-lader on linux 6.1
Since kernel 5.17+ the mips asm.h includes isa-rev.h, which itself was
added 4.17. Without it, lzma-loader will fail to build:

     make[3] -C target/linux compile
    make[5]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
    In file included from head.S:22:
    .../staging_dir/toolchain-mips_mips32_gcc-12.3.0_musl/include/asm/asm.h:22:10: fatal error: asm/isa-rev.h: No such file or directory
       22 | #include <asm/isa-rev.h>
          |          ^~~~~~~~~~~~~~~
    compilation terminated.
    make[6]: *** [Makefile:64: head.o] Error 1
    make[5]: *** [Makefile:345: compile] Error 2
    make[4]: *** [Makefile:24: compile] Error 2
    make[3]: *** [Makefile:11: compile] Error 2
        ERROR: target/linux failed to build.

So add the file to the files to install. We can do that unconditionally,
since the oldest supported kernel 5.15 already includes it, even it if
does not need it.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
2023-07-06 21:03:11 +02:00
John Audia
a20735da21 kernel: add CONFIG_LOCK_MM_AND_FIND_VMA
6.1.37 introduces a new symbol[1]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/x86/Kconfig?id=v6.1.37&id2=v6.1.36

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-07-05 20:32:37 +02:00
John Audia
79a82d7e87 kernel: bump 6.1 to 6.1.37
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>
2023-07-05 20:32:37 +02:00
John Audia
b8b4906614 kernel: bump 6.1 to 6.1.36
All patches automatically rebased.

Acknowledgment to @john-tho for the changes to fs.mk to accommodate new paths
introduced in 29429a1f58

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-07-05 20:32:37 +02:00
Tianling Shen
06e64f9b36 kernel: modules: add xdp-sockets-diag support
Support for PF_XDP sockets monitoring interface used by the ss tool.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-07-05 20:02:12 +02:00
Andre Heider
32ed976446
build: add support to use the mold linker for packages
If CONFIG_USE_MOLD is set, all target packages will use the mold linker.
Except the ones which opted-out via setting PKG_BUILD_FLAGS:=no-mold.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-07-04 20:25:41 +02:00
Andre Heider
42ef375cb6
treewide: opt-out of tree-wide mold usage
These use linker scripts, which mold doesn't support.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-07-04 20:25:41 +02:00
Andre Heider
3cae2db2d1
toolchain: add mold as additional linker
Install it as $tripple-ld.mold in order to use -fuse-ld=mold.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-07-04 20:25:41 +02:00
Andre Heider
b1fa9e3d2b
tools: add mold, a modern linker
mold is a faster drop-in replacement for existing Unix linkers.

A single binary is able to link various targets, which is why this lives
in tools/.

All toolchain builds then just need to copy the linker over, hence avoiding
multiple builds with the same outcome.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-07-04 20:25:40 +02:00
Andre Heider
65a716bb95
config: add a knob to use the mold linker for packages
Building it requires gcc >= 10.2 or clang >= 12.

Using sstrip with its -z argument can produce non-working binaries, like
a segfaulting `getrandom`, so don't allow that combination.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-07-04 20:25:40 +02:00
Andre Heider
d026b19cdc
build: replace SSTRIP_ARGS with SSTRIP_DISCARD_TRAILING_ZEROES
sstrip only has one functional arg. Make that a bool option, which can
easily depend on other knobs then.

This is required to be disabled for the mold linker.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-07-04 20:25:40 +02:00
Andre Heider
ca788d615f
meson: prepare to use different linkers
This sets the default linker for cross compilation.

No functional change intended.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-07-04 20:25:40 +02:00
Andre Heider
21ab20bc64
rules: prepare to use different linkers
This explicitely adds the default linker to the target LDFLAGS.

No functional change intended.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-07-04 20:25:36 +02:00
David Bauer
d9070f8d23 mac80211: partly revert force-mac80211 loss detection
This patch will only force mac80211 loss detection upon ath10k by
masking the driver-specific loss-detection bit.

Ref: commit ed816f6ba8 ("mac80211: always use mac80211 loss detection")

Signed-off-by: David Bauer <mail@david-bauer.net>
2023-07-05 12:40:34 +02:00
Christian Svensson
10616779f1 kernel: add kmod-i2c-mux-reg support
Add package for register-based I2C bus mux/switching devices.

Signed-off-by: Christian Svensson <blue@cmd.nu>
2023-07-04 23:00:11 +02:00
Christian Svensson
b025df645e kernel: add kmod-hwmon-jc42 support
Add package for Jedec JC42.4 compliant temperature sensor.

Signed-off-by: Christian Svensson <blue@cmd.nu>
2023-07-04 23:00:11 +02:00
Christian Svensson
0ea8264189 kernel: add kmod-hwmon-max6697 support
Add package for Maxim MAX6697 I2C based temperature sensor.

Signed-off-by: Christian Svensson <blue@cmd.nu>
2023-07-04 23:00:11 +02:00
Christian Lamparter
75505c5ec7 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>
2023-07-04 22:06:59 +02:00
John Audia
a41bded032 x86/64: set CONFIG_NVME_HWMON=y
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>
2023-07-04 19:37:41 +02:00
John Thomson
b3448b3fdb 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>
2023-07-04 19:29:41 +02:00
Petr Štetiar
ce8c639a6c
kernel: introduce KERNEL_WERROR config option
In commit b2d1eb717b ("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>
2023-07-04 07:14:22 +02:00
Felix Fietkau
816933bee6 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>
2023-07-04 06:17:11 +02:00
John Audia
946100ba41 x86: set CONFIG_X86_AMD_PLATFORM_DEVICE
Needed by AMD processors using Carrizo and later chipsets

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-07-03 09:22:03 -04:00
Felix Fietkau
531fea72ad netifd: update to the latest version
e94f7a81a039 bridge: fix config reload on 32 bit systems

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-07-03 11:53:37 +02:00
Sander Vanheule
11588c52b4 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>
2023-07-02 22:14:05 +02:00
Sander Vanheule
0cdcf03382 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>
2023-07-02 22:13:34 +02:00
Felix Fietkau
a3e173e00e mt76: fix download hash
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-07-02 10:38:04 +02:00
Wenli Looi
f2f33f77c4 ath79: fix broken 02_network script
Script was broken by an extraneous space.

Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
2023-07-02 01:21:27 +02:00
David Bauer
92eec257dd 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>
2023-07-02 01:06:08 +02:00
Felix Fietkau
86ebaef5d4 mt76: update to the latest version
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>
2023-07-01 22:11:01 +02:00
Pascal Ernster
87a2f03b86 realtek: Use MDIO_* constants from <linux/mdio.h>
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>
2023-07-01 20:25:48 +02:00
Pascal Ernster
171e67e2f7 realtek: Use ADVERTISE_* and MII_PHYSID* from <linux/mii.h>
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>
2023-07-01 20:25:48 +02:00
Pascal Ernster
8b2f654d4c realtek: Use MII_BMCR and BMCR_* constants from <linux/mii.h>
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>
2023-07-01 20:25:48 +02:00
Usama Nassir
f24c9b9d86 ramips: Add support for ComFast CF-E390AX
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>
2023-07-01 16:18:55 +02:00
Joao Henrique Albuquerque
935a63c59d ath79: add support for COMFAST CF-E380AC v2
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>
2023-07-01 16:11:27 +02:00
Mikhail Zhilkin
2d6784a033 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>
2023-07-01 16:05:01 +02:00
Mikhail Zhilkin
f560be583a 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>
2023-07-01 16:05:01 +02:00
Pavel Pernička
dac0a133cf 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>
2023-07-01 15:51:26 +02:00
Mathew McBride
8e7ba6fbae layerscape: remove Traverse LS1043 boards
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>
2023-07-01 15:47:08 +02:00
Chukun Pan
e78d1a06c8 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>
2023-07-01 15:13:08 +02:00