Following the initial support of the Cudy WR3000H with PHY C22 for the 2.5G WAN
interface, several improvements fixing issues with RealTek RTL8221B PHYs have
been merged.
Therefore we can now bring the DT in line with other equipment and declare the
2.5G WAN PHY as C45.
Fixes: 9d66b8b ("mediatek: filogic: Add support for cudy wr3000h")
Signed-off-by: Juan Pedro Paredes Caballero <juanpedro.paredes@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17739
[reword commit description]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit dcc5587374)
Link: https://github.com/openwrt/openwrt/pull/19124
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The manufacturer Cudy usually releases signed openwrt firmware, to
facilitate the migration from the proprietary version to the official
versions of openwrt. In contact with the manufacturer tells me that only
releases the firmware of the WR3000H if and only if
there is an official version. With this proposal I pretend to have an
initial operative version so that they do their part, and facilitate to
the users the possibility of using openwrt. In the present state, it is
only possible to use this firmware by uploading and installing it with
UART connection.
AX3000 2.5G Dual Band Wi-Fi 6 Mesh Router (WR3000H)
Hardware
--------
MediaTek MT7981 WiSoC
256MB DDR3 RAM
128MB SPI-NAND (XMC XM25QH128C)
MediaTek MT7981 2x2 DBDC 802.11ax 2T2R (2.4 / 5)
4 LAN MediaTek MT7531 PHY
1 WAN RTL8221B-VB-CG 2.5Gbps PHY (C22)
2 Radios MT7976CN
UART: 115200 8N1 3.3V
MAC:
LAN MAC: label mac
WAN MAC: label mac + 1
2.4G MAC: label mac
5G MAC: label mac + 1 with LA bit set
Installation
------------
1. Connect to the serial port as described in the "Hardware" section.
2. Power on the device + press reset pin. Keep pressing reset pin to
enter the U-Boot shell (The recovery.bin image load process must fail).
3. Download the OpenWrt initramfs image. Place it on an TFTP server
connected to the Cudy LAN ports. Make sure the server is reachable at
192.168.1.88. Rename the image to "cudy3000h.bin"
4. Download and boot the OpenWrt initramfs image.
$ tftpboot 0x46000000 cudy3000h.bin; bootm 0x46000000
5. IMPORTANT: Make backup from original firmware. System -> Backup
/Flash Firmware -> Save mtdblock contents. All mtdblock one by one,
keep unaltered (BL2, u-boot-env, Factory, bdinfo, FIP, and ubi).
6. Transfer the OpenWrt sysupgrade image to the device using scp.
Install with sysupgrade.
Warning for BL2 and U-BOOT developers
-------------------------------------
The nand partition layout from vendor is slightly diferent from "standard".
The FIP partition starts at 0x3c0000 be carefull with BL2 to BL31.
The UBI partition start at 0x5c0000 be carefull.
DO NOT OVERWRITE bdinfo partition it contains hardware MAC definition
Layout is start-end (not start size)
- 0x000000000000-0x000007800000 : "nmbm0"
- 0x000000000000-0x000000100000 : "bl2"
- 0x000000100000-0x000000180000 : "u-boot-env"
- 0x000000180000-0x000000380000 : "factory"
- 0x000000380000-0x0000003c0000 : "bdinfo"
- 0x0000003c0000-0x0000005c0000 : "fip"
- 0x0000005c0000-0x0000045c0000 : "ubi"
ALLWAYS for U-BOOT operations check this
setenv mtdids nmbm0=nmbm0
setenv mtdparts nmbm0:1024k(bl2),512k(u-boot-env),2048k(factory),256k(bdinfo),2048k(fip),65536k(ubi)
Signed-off-by: Juan Pedro Paredes Caballero <juanpedro.paredes@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17458
(cherry picked from commit 9d66b8b312)
Link: https://github.com/openwrt/openwrt/pull/19124
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
drop upstream patches
$ git log --no-merges --oneline v2.7.6..v2.8
48ceda8 Version 2.8
b3d0c93 Regression in commit abe92e8010ab affecting MariaDB tests
29fced6 Count traditional diff pattern lines correctly
b5d2124 patch: fix --no-backup-if-mismatch regression
86ac7e2 Fix dodgy assert with side-effects in insert_cached_dirfd
7d87652 Declare an expected test failure on Haiku.
86baf97 build: update gnulib submodule to latest
1ba2c1b Fix two test failures on Haiku.
1da6bf8 Check for newlines only when creating a file name
30ee610 Gnulib renamed some modules
6dbc381 maint: update bootstrap from gnulib
05ac924 build: update gnulib submodule to latest
95e0092 maint: make update-copyright
5bac274 Set --no-backup-if-mismatch when in --posix mode
910fecf Add missing feature tests to the test suite
be8b3c6 Disable release-prep
c61485b Fix "make release" to handle alpha releases
499916f Add announce-gen module for "make release"
adb1ebc Pacify gcc -fsanitize=address
6bdae94 Fix memory leak when malformed unidiff patch
72a146c Port to clang address sanitizer
e2e6820 Refactor argc+argv processing
606c091 Omit needless get_some_switches code
ee3cc40 Revert "Remove obsolete require_gnu_diff function"
8cae4fc Remove obsolete require_gnu_diff function
164b529 savebuf can return a null pointer
91c1e4f Spelling fixes
a03e1ba Port other reject-format test to non-GNU diff
9ba5eb0 Don’t be fooled by NUL bytes in diff directives
79dd5e7 Don’t be fooled by "\000" in file name
8492a6a Port to quasi-GNU diff
f6f2c6f In previous patch, make w_q static
0525681 Pacify -Wunterminated-string-initialization
301411d Spelling fixes
4615206 Remove double semicolon
923e0ef Prefer angle bracket headers
5d17ca0 Update more old copyright notices
5f4edd3 Simplify memory allocation of files to delete
802511c Report patch read errors more immediately
a93b50d Port fflush usage to OpenBSD 7.5
55e224b Update old copyright notices
33a7fd8 Fix gl_gcc_warnings typo in ‘configure’
2313b37 build: update gnulib submodule to latest
37fec39 Remove some dependencies no longer needed
cc87173 Update NEWS as per recent changes
7887622 Update POSIX citations
18f4dd6 Use “Gruenbacher” in international contexts
638675c Adjust libs to match recent Gnulib
53400a1 Pacify clang -Wbitwise-conditional-parentheses
e8e1bcb Remove “support” for nested critical sections
b963510 Simplify critical section code in util fns
85949fb Shrink critical sections
448ff9b Defer signals by hand with sigatomic_t
b95a603 output_file_later avoid a malloc+free pair
2663228 Defend against closed stdin/stdout/stderr
fc77964 Stop using Gnulib ‘execute’ module
470699c Move defer_signals up
f696e4e Make sigs, NUM_SIGS local
4d3a4ab Rename block_signals
b3bb925 Trade a bit of space for time in parse_c_string
070d859 Allocate first patchbuf statically
f46a90f Use bigger buffer size by default
2e64cfd Preinitialize fatal_act.sa_hander
45de0d9 Prefer EXIT_SUCCESS etc. to literal integers
82c4940 Fix some signal handling races
eceea61 Fix --set-utc TZ setting
9c55d3f Improve logic for when rename removes source
61c72f0 Fix signal race when renaming file
705c9bc Simplify traverse_another_path via last_component
77f21a6 Stop using Gnulib dirname module
fe8ffd9 Fix implausible overflow when reading symlinks
5e84bda Access checks should use effective, not real
8d4ca49 Don’t assume AT_FDCWD != -1
fe5d4a0 Copy input to output attributes via fd if possible
ca4c431 Simplify timestamp epoch checking
0ad4347 Check for ftello failures
c49a16d Remove format_linenum
22efdee Fix "with multiple words" line number
5a70a1b Drop Plan B
c0d465f Prefer ximemdup0 to xmemdup0
b91aab2 Refactor ifetch API
55c8a5c Do not attempt huge I/Os
e0e121e Use outfd when setting file attributes
241e57e Don’t assume Linux-like S_IFREG
0f8c628 Use STDOUT_FILENO etc
f2c3676 Fix unlikely glitch with ed diffs
cec6407 Use fds to copy attrs in create_backup_copy
6b7b01b Be more careful about (time_t) -1
0433553 X == -1 → X < 0
0a66dee Let set_file_attributes use fds not names
36ff2c9 Port to narrow unsigned uid_t
3951496 Check for output errors more systematically
6429630 Report input error right away
03cb187 Simplify EOF testing
cc7cde7 Prefer other types to ‘int’
4c6650b Detect unlikely integer overflow in size calcs
abe92e8 Prefer idx_t, ptrdiff_t to lin
30449e2 Fix compatibility issue with blanks in patches
9228a8c pch_swap return type cleanup
c1c438d Fix unlikely int overflow in hunk counts
5d3f41f Use char for char in plan_a
fb056f2 Cache cwd_is_root dev, ino
84b5f34 Avoid ‘unsigned’ in safe.c
d2e113e Simplify get_sha1
f73718b Avoid casts in patch.c
79eef3e Prefer idx_t in util.c
11588d0 Prefer idx_t in pch.c
e16037d Prefer idx_t in patch.c
388926f Prefer idx_t in list.h
3582fdb Prefer idx_t in inp.c
4a47c00 build: update gnulib submodule to latest
4f8c4b8 Don’t limit strip counts etc. to INT_MAX
0a810b6 Fix unlikely integer overflows in patch.c
bac3b6d Fix unlikely integer overflows in pch.c
8fb784b Fix unlikely integer overflows in inp.c
e10f3ca Promote minmax.h to common.h
57e2165 Avoid some memory allocation by not using ‘const’
eb18b39 Remove unnecessary char * casts in inp.c
d60cb72 Pacify gcc -Wunused-parameter when !USE_XATTR
05ef886 Pacify gcc -Wunused-parameter when !USE_XATTR
1f8d192 maint: stop using alloca
ba92722 Don’t assume O_RDONLY == 0
0f98e03 Avoid syscall when nested signal block
1235ccc Add signal comment
43ee674 build: update gnulib submodule to latest
e381947 Update NEWS, README-prereq
2c2a83b Omit _Noreturn when easy
a13c2ea Replace __attribute__ with attribute.h
6eb2d13 Switch from ctype.h to c-ctype.h
d1a6847 Simplify warning configuration
d6631b3 Prefer ATTRIBUTE_* to _GL_ATTRIBUTE_*
bc6899d Pacify gcc -Wno-unused-parameter
da25985 Improve ‘git diff’ output if desired
248ef13 Prefer strerror to perror
6cb321a A bit more long-string fixing
47bc09d Prefer nullptr to NULL
7608746 More fixing of printing of very long strings
323da0d Don’t assume string sizes fit in int when printing
53d1014 Avoid fprintf INT_MAX overflow when merging
59681c8 Avoid sprintf INT_MAX overflow
4278b91 Reject output file names containing '\n'
34b45bc Update man page a bit.
d18c05d Update copyright notices
af828e5 Fix some races involving signals
b3a6c95 Don’t attempt to remove files we didn’t create
9abc949 Omit goto in try_safe_open
90e62d5 Pacify clang re obsolete O_CREAT test
2b87c1e Allow nested block/unblock of signals
7aa1c3b Adjust to new Gnulib bootstrap post imports
99c0c0b maint: remove generated file lib/Makefile.am
1c087d6 Rely on Gnulib inttypes module
7214f8d Update main locals more consistently
6785b2c Use struct outfile * in function args
72d7ed0 Refactor temp names into struct
abf6fb1 Simplify by using Gnulib sigaction
d3816ac Avoid unnecessary freeing in output_files
346d3ac Clean up cleanup
ff2317b Port better to GNU/Hurd
c2d9792 Don’t say empty backups are unreadable
8c27a03 Spelling fixes
d46d729 Change manywarnings usage to be more like coreutils
924698b Pacify clang, which dislikes n + "y"
8939519 Pacify -Wstrict-overflow in pch.c
531cc2b Pacify -Wsuggest-attribute=format in util.c
ff13fea Port to non-VLA C compilers
3d5c0d1 Rename vars to pacify gcc -Wshadow
56788ce Stop including stdbool.h
c10da77 Recommend 64-bit time_t on 32-bit platforms
1e21767 Remove pch_sha1
39005cf Move skip_spaces
755712d Remove pch_timestamp function
04f0eeb Prefer extern inline to static inline for list.h
f06c123 maint: pacify gcc 14 -Wcast-align
aab6e7b maint: pacify -Wanalyzer-null-argument
d1d32c9 maint: work around GCC bug 109839
7575694 maint: pacify gcc -Wmissing-variable-declarations
8f78b09 maint: pacify gcc -Winline
bb841fd maint: port _FORTIFY_SOURCE to Ubuntu
4887683 maint: assume STDC_HEADERS
5b8ecde maint: spruce up our .m4 files a bit
009a424 maint: omit obsolete macro calls
299167f maint: simplify .gitignore
3ec44a4 build: update gnulib submodule to latest
68cb529 build: update gnulib submodule to latest
f144b35 build: Enable the 'subdir-objects' Automake option.
faafc79 build: update gnulib submodule to latest
c835ecc Pass the correct stat to backup files
24f81be maint: modernize README-{hacking,prereq}
7623b2d Fix test for presence of BASH_LINENO[0]
0993940 gnulib: update to latest
78ed9de Add missing-section tests to context-format test case
76e7758 Fix failed assertion 'outstate->after_newline'
15b158d Avoid invalid memory access in context format diffs
dce4683 Don't follow symlinks unless --follow-symlinks is given
61d7788 Don't crash when RLIMIT_NOFILE is set to RLIM_INFINITY
b7b028a Abort when cleaning up fails
a5b442c Skip "ed" test when the ed utility is not installed
2b584ae Improve support for memory leak detection
9c98635 Fix swapping fake lines in pch_swap
ff81775 Make the (debug & 2) output more useful
369dccc Don't leak temporary file on failed multi-file ed-style patch
1959988 Don't leak temporary file on failed ed-style patch
f322a7e Request 'alloca' module from gnulib.
458ac51 Fix 'ed-style' test failure.
1e9104c Fix check of return value of fwrite().
ae81be0 maint: avoid warnings from GCC8
2a32bf0 Minor cleanups in do_ed_script
ff1d3a6 Use gnulib execute module
3fcd042 Invoke ed directly instead of using the shell
123eaff Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)
b5a91a0 Allow input files to be missing for ed-style patches
f290f48 Fix segfault with mangled rename patch
074e239 Test suite: fix Korn shell incompatibility
f6bc5b1 Test suite compatibility fixes
3bbebbb Avoid set_file_attributes sign conversion warnings
Signed-off-by: Russell Senior <russell@personaltelco.net>
Link: https://github.com/openwrt/openwrt/pull/18479
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f45df2167b)
TF-A LTS releases have an lts- prefix in their version tag. Introduce a
PKG_LTS variable to support these.
As the non-LTS tarbals do not contain the version prefix in the
directory, we need different PKG_BUILD_DIR for each variant:
➜ tar --list --file dl/trusted-firmware-a-v2.12.tar.gz | head -n1
trusted-firmware-a-2.12/
➜ tar --list --file dl/trusted-firmware-a-lts-v2.12.1.tar.gz | head -n1
trusted-firmware-a-lts-v2.12.1/
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
cherry picked from commit 06c4e8a262
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/19076
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Multiple users have reported a regression [1] in OpenWRT 24.10 with the
ramips/mt7621 target, which has the MT7530 PHYs: the Ethernet link is
periodically going down for a brief period of time:
mt7530-mdio mdio-bus:1f lan1: Link is Down
br-lan: port 1(lan1) entered disabled state
mt7530-mdio mdio-bus:1f lan1: Link is Up - 1Gbps/Full - flow control rx/tx
The symptoms stop after disabling EEE and it was reported by Mediatek in
2021 that EEE is unstable for the MT7530 PHYs [2]:
> EEE of the 10-year-old MT7530 internal gephy has many IOT problems, so
> it is recommended to disable its EEE.
EEE is enabled by default for these devices in OpenWRT 24.10 whereas in the
previous version (OpenWRT 23.05, Linux 5.15) it was not. It was determined
that in Linux 6.6, the PHY driver tries to disable EEE in
mtk_gephy_config_init() in drivers/net/phy/mediatek-ge.c, but this is later
overridden by a subsequent execution of the genphy_c45_write_eee_adv()
function, which enables every EEE mode supported.
The best way forward for now seems to be to mark EEE as broken directly in
the devicetree, which affects the genphy_c45_write_eee_adv() function.
There are some devices, like GnuBee GB-PC2, that define additional PHYs,
for example ethernet-phy@5 or ethernet-phy@7. As reported by Chester A.
Unal, these are not MT7530 PHYs and they are not affected.
This would need to be cherrypicked for the OpenWRT 24.10 branch.
[1] https://github.com/openwrt/openwrt/issues/17351
[2] https://lore.kernel.org/all/0adde34f936a2dafca40b06b408d82afe0852327.camel@mediatek.com/
Tested-by: Darren Tucker
Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Closes: https://github.com/openwrt/openwrt/issues/17351
Link: https://github.com/openwrt/openwrt/pull/18585
(cherry picked from commit b7fa9d92ae)
Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Tested-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Link: https://github.com/openwrt/openwrt/pull/19150
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
61ae5732adea iprule: amend ipproto netlink nla_put_u32 to nla_put_u8
d610d68c71b8 device: add support for configuring vrf
a1b6386a20a6 device: fix bonding primary port selection
e8bbf246ce2e system-linux: fix sysfs name for all_ports_active flag
723c699e84f4 Restore disable_ipv6 sysctl after removing a device from bridge or bond
d476e18e8d43 iprule: resolve ipproto by name
7901e66c5f27 netifd: iprule add sport and dport
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 15c2ca0a83)
Link: https://github.com/openwrt/openwrt/pull/19125
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
A previous commit backported the ipq-wifi update to fix support for the
TP-Link Archer C6 v2 by adding the device to the package. However, it
missed adding the required TARGET_ath79 dependency, causing the
ipq-tplink_archer-c6-v2 build to fail.
The dependency was previously added in commit 4990ce613b ("ipq-wifi:
update to 2024-02-17") when several ath79 devices were introduced.
However, since this backport only fixes support for the Archer C6 v2, it
is not feasible to backport all related changes. Therefore, this commit
adds only the missing dependency to resolve the build issue without
pulling in unrelated updates.
Fixes: 0c43acc349 ("ipq-wifi: update to Git HEAD (2025-05-30)")
Signed-off-by: Nick Hainke <vincent@systemli.org>
Link: https://github.com/openwrt/openwrt/pull/19120
Signed-off-by: Robert Marko <robimarko@gmail.com>
Hold a reference to the defer resource as long as it is still needed
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 87bfde67f2)
567207a9bf16 fs: implement fileno() on directory handles
eb1d93235509 fs: support passing directory handle or fd in chdir()
38a2254337f1 build: detect whether toolchain employs default source fortification
6eddfc9dff17 resolv: fix fd leak in send_queries
3d36856b2dc5 uci: fix memory leak on cursor() error
aafde95f1ecf uci: add cursor() flags argument
d8cebc5a6bfd Revert "WIP: lib: support map() over objects"
2599cf80736b zlib: incorporate latest PR changes
830f316a7e49 socker: let sock.peercred() clear error on success
4cbac141406e types: rename u64_to_constant flag to ext_flag
d802fe5da5cd types: add support for resources with embedded data/values
71b4fdc6f60b types: add support for setting resource persistent flag
141f799eba08 uloop: use container_of instead of direct pointer casts
1396f8f2988d uloop: use uc_fn_thisval
9a121fc7440c uloop: drop object_registry
11b804d97086 socket: do not clear last_error in socket.error()
d5b3a9dc1091 socket: add strerror() method
Fixes: https://github.com/jow-/ucode/issues/285
Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit 2a9316fbfb)
The I2C and SPI packages required for each RPi generation is different.
Therefore, in order to avoid confusion let's select them by default.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 9117ff7b39)
Add kernel package for Broadcom Settop/DSL I2C controller.
This controller is used on RPi devices.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 59f8312400)
Add kernel package for DesignWare I2C platform controller.
This controller is used on the RP1 SoC found on RPi 5 devices.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 84922a1e34)
The ENC28J60 is a 10 Mbps half-duplex Ethernet controller interfaced via SPI.
It achieves real-world bandwidth up to 5Mbit/s on devices like the RPi Zero due
to SPI limits.
Commonly used with Raspberry Pi Zero boards for wired network connectivity.
Signed-off-by: Albrecht Lohofener <albrechtloh@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19048
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 4987239913)
Add kernel packages for DesignWare SPI core and MMIO controllers.
This is needed for the RP1 SoC found on RPi 5 devices.
Tested with a Microchip ENC28J60 Ethernet controller on a RPi 5.
Signed-off-by: Albrecht Lohofener <albrechtloh@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19049
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 82d20a0fbd)
Xcode 16.3 defines TARGET_OS_MAC, it was not defined in prior versions.
zutil.h conditionally defines fdopen as NULL when this macro is defined,
resulting in the following build error:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:318:7: e>
318 | FILE *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen));
| ^
./zutil.h:147:33: note: expanded from macro 'fdopen'
147 | # define fdopen(fd,mode) NULL /* No fdopen() */
In Xcode 16.2 and earlier, TARGET_OS_MAC was not defined so this entire
block was ignored, gcc and gdb used to compile and work fine.
This may have been used for compatibility with older versions of macOS,
but is no longer needed. By pure luck, the build worked fine for a long
time, because it did not properly detect macOS.
Fixed by removing the check for TARGET_OS_MAC.
Note that since Xcode 16.3, an entire set of TARGET_OS macros
are now defined, most of which are set to 0:
TARGET_OS_LINUX 0
TARGET_OS_MAC 1
TARGET_OS_OSX 1
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18467
(cherry picked from commit d3bb23946e)
Link: https://github.com/openwrt/openwrt/pull/19096
Signed-off-by: Robert Marko <robimarko@gmail.com>
Xcode 16.3 defines TARGET_OS_MAC, it was not defined in prior versions.
zutil.h conditionally defines fdopen as NULL when this macro is defined,
resulting in the following build error:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:318:7: error: expected identifier or '('
318 | FILE *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen));
| ^
./zutil.h:147:33: note: expanded from macro 'fdopen'
147 | # define fdopen(fd,mode) NULL /* No fdopen() */
In Xcode 16.2 and earlier, TARGET_OS_MAC was not defined so this entire
block was ignored, gcc and gdb used to compile and work fine.
This may have been used for compatibility with older versions of macOS,
but is no longer needed. By pure luck, the build worked fine for a long
time, because it did not properly detect macOS.
Fixed by removing the check for TARGET_OS_MAC.
Note that since Xcode 16.3, an entire set of TARGET_OS macros
are now defined, most of which are set to 0:
TARGET_OS_LINUX 0
TARGET_OS_MAC 1
TARGET_OS_OSX 1
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18467
(cherry picked from commit dfb8115d0c)
Link: https://github.com/openwrt/openwrt/pull/19096
Signed-off-by: Robert Marko <robimarko@gmail.com>
Rework the generation of the index.json version of the package
indexes to match the original intent (i.e., for use by the ASU
server and other downstream projects). The current file contains
package names that have ABI versioning, making them unusable by ASU,
so we now remove the ABI suffixes.
Also adds a 'version' field to the json, so downstream utilities
can detect the new semantics of the package name fields.
Links: 218ce40cd7
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19051
(cherry picked from commit 2b0b16f1d1)
Link: https://github.com/openwrt/openwrt/pull/19097
Signed-off-by: Robert Marko <robimarko@gmail.com>
lldpd can send several hardware inventory TLV fields. Extend the init
script to provide these when the existing flag 'lldpmed_no_inventory' is
disabled. Five new methods provide default values for some of them,
taken from /etc/os-release and /etc/board.json.
There is no homogeneous method to determine the hardware serial number,
so it can be provided manually, as can asset ID.
Note: properties >= 32 characters are truncated at send time (by lldpd),
and some (Cisco) equipment displays junk after strings >= 32 characters.
So truncate to 31.
Tested on: 24.10.0 (known compatible with 22 and 23 also)
===
Example
===
The following lldpd config lines:
configure inventory hardware-revision "v0"
configure inventory software-revision "r28427-6df0e3d02a"
configure inventory firmware-revision "OpenWrt 24.10.0"
configure inventory serial-number "ABCDEF-123456"
configure inventory manufacturer "glinet"
configure inventory model "GL.iNet GL-MT6000"
# 32 characters:
configure inventory asset "abcdefghijklmnopqrstuvwxyz 12345"
Produce the following TLV (decoded by Wireshark):
Telecommunications Industry Association TR-41 Committee - Inventory - Hardware Revision
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0000 0110 = TLV Length: 6
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Hardware Revision (0x05)
Hardware Revision: v0
Telecommunications Industry Association TR-41 Committee - Inventory - Firmware Revision
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0001 0011 = TLV Length: 19
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Firmware Revision (0x06)
Firmware Revision: OpenWrt 24.10.0
Telecommunications Industry Association TR-41 Committee - Inventory - Software Revision
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0001 0101 = TLV Length: 21
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Software Revision (0x07)
Software Revision: r28427-6df0e3d02a
Telecommunications Industry Association TR-41 Committee - Inventory - Serial Number
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0001 0100 = TLV Length: 20
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Serial Number (0x08)
Serial Number: ABCDEF-123456
Telecommunications Industry Association TR-41 Committee - Inventory - Manufacturer Name
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0000 1010 = TLV Length: 10
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Manufacturer Name (0x09)
Manufacturer Name: glinet
Telecommunications Industry Association TR-41 Committee - Inventory - Model Name
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0001 0101 = TLV Length: 21
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Model Name (0x0a)
Model Name: GL.iNet GL-MT6000
Telecommunications Industry Association TR-41 Committee - Inventory - Asset ID
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0010 0011 = TLV Length: 35
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Asset ID (0x0b)
Asset ID: abcdefghijklmnopqrstuvwxyz 1234
The Cisco DUT displays:
Hardware Revision: v0
Firmware Revision: OpenWrt 24.10.0
Software Revision: r28427-6df0e3d02a
Serial Number: ABCDEF-123456
Manufacturer Name: glinet
Model Name: GL.iNet GL-MT6000
Asset ID: abcdefghijklmnopqrstuvwxyz 1234
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18354
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 412c850f07)
Link: https://github.com/openwrt/openwrt/pull/18469
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Since the early beginning of the Realtek DSA driver there is an uncovered
locking issue between the standard (parent) mdio bus and the DSA (child)
mdio bus. This comes from the fact that the DSA bus simply links to the
parent read and write functions and calls them directly. This leads to
the following lock issue.
- Child bus calls phy_read/write functions and uses its internal lock
- Parent bus calls phy_read/write functions and uses its internal lock
It becomes clear that critical section can be accessed twice without
knowing that a operation from the other bus is currently active. This
can lead to critical malfunctions because the mdio driver needs a lot of
internal magic to get page selection done right. Effects are:
- The original page is lost after a phy_write/read_paged() call
- dmesg like "Realtek RTL8218B (external) rtl838x slave mii-0:00:
Expected external RTL8218B, found PHY-ID 6b23"
Other DSA drivers simply use the read/write functions from the parent bus
and thus avoid locking issues. Do it the same way.
Fixes: 2b88563ee5 ("realtek: update the tree to the latest refactored version")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18824
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 461fc06f9d)
Link: https://github.com/openwrt/openwrt/pull/18755
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Cleanup the code of the RTL83xx packet receive interrupt handler. Not
only for better readability but to avoid inconsistencies and stalls on
the RTL839x targets.
The current implementation seems to come from the GPL source code.
Calling the existing cleanup() function inside the interrupt context
without any locks conflicts with SMP & NAPI polling and makes things
worse instead of giving any benefit. Simply ignore RX buffer overruns
and let the device handle packet dropping itself.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18855
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8dde1e4638)
Link: https://github.com/openwrt/openwrt/pull/18755
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The RTL8214FC currently uses generic PHY functions. That makes it look like a copper
device. Switching to/from fibre works fortunately but the autonegotiation handling
still works on MII_LPA (PHY register 5) as if a copper link is used. Fix that by
- advertising a superset of TP/FIBRE features
- using clause 37 functions when on fibre
Additionally enhance the code of the driver to assist further development.
- log the speed of the inserted module to detect wrongly inserted 10gbase-r modules
- order phy driver functions alphabetically (keep match/name on top)
- remove genphy_loopback as the kernel uses it if not provided
Remark! The driver internally uses PORT_MII for the TP port. Align with that and
report MII to ethtool instead of TP. Other drivers do the same and it can be
changed in the future if needed.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18724
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 4cfd1c4501)
Link: https://github.com/openwrt/openwrt/pull/18755
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The Arcadyan WE410443 is a WiFi AC access point distributed by various ISPs
under various names, including KPN SuperWifi and BT Whole Home Wi-Fi. It
features one ethernet port, dual MT7615N radios and four internal antennas.
Hardware:
- SoC: Mediatek MT7621AT
- Flash: 32 MB
- RAM: 128 MB
- Ethernet: 1x 10/100/1000 Mbps, built into the SoC
- WLAN: 2x MediaTek MT7615N
- Buttons: 1 Reset button, 1 WPS button
- LEDs: 1x Green, 1x Blue, 1x Red, all unmarked
- Power: 12 VDC, 1.5A barrel plug
Installation:
The bootloader is locked with a password, so the image needs to be written
directly to the SPI flash chip. To do this, you need to open up the case,
remove the heatsink and connect the flash chip to a Raspberry Pi. Use the
following connections:
Flash chip --> Raspberry Pi
VCC --> 3v3
RESET --> 3v3
/CS --> GPIO 8
DO --> GPIO 9
CLK --> GPIO 11
DI --> GPIO 10
GND --> Ground
You can solder wires to the flash chip, or use a SOIC16 clip. More details on
the Raspberry Pi and SPI chip pinouts are available on the wiki [1]
When you have the Raspberry Pi connected to the flash chip, boot your Pi and
follow the instructions:
1) Make sure your Pi has SPI enabled with sudo raspi-config
2) Install necessary tools: sudo apt install xxd libubootenv-tool mtd-utils
3) Upload overlay and execute:
sudo dtc -@ -I dts -O dtb -o
/boot/overlays/we410443.dtbo we410443-overlay.dts
4) Enable in /boot/firmware/config.txt by adding a new line containing
dtoverlay=we410443
5) Reboot your Pi and verify the mtd partitions with
cat /proc/mtd, you should see:
dev: size erasesize name
mtd0: 02000000 00001000 "all"
mtd1: 00030000 00001000 "u-boot"
mtd2: 00010000 00001000 "u-boot-env"
mtd3: 00010000 00001000 "factory"
mtd4: 01f60000 00001000 "firmware"
mtd5: 00010000 00001000 "glbcfg"
mtd6: 00010000 00001000 "config"
mtd7: 00010000 00001000 "glbcfg2"
mtd8: 00010000 00001000 "config2"
6) Optionally (but recommended), make a backup:
sudo dd if=/dev/mtd0 of=backup.bin
It can be restored with: sudo flashcp backup.bin /dev/mtd0
7) Set the variables for the bootloader:
echo '/dev/mtd2 0x0 0x1000 0x1000' > fw_env.config
sudo fw_setenv -c fw_env.config bootpartition 0
8) Finally, flash the image:
sudo flashcp openwrt-ramips-mt7621-arcadyan_we410443-
squashfs-sysupgrade.bin /dev/mtd4
MAC addresses
The label address is stored in ASCII in the config partition
Use --> Address
Device --> label
Ethernet --> label
WLAN 2g --> + 1
WLAN 5g --> + 2
References:
[1] https://openwrt.org/toh/arcadyan/astoria/we410443
Signed-off-by: Sander van Deijck <sander@vandeijck.com>
Link: https://github.com/openwrt/openwrt/pull/17981
(cherry picked from commit b6a07dd091)
Link: https://github.com/openwrt/openwrt/pull/19068
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Some modems and SIM cards take a bit longer to initialize after UIM has been
powered off. Waiting too little time can cause the qmi protocol to end up
in a loop repeatedly power-cycling the SIM card.
Avoid that by
a) increasing the time we unconditionally sleep after --uim-power-on
b) increasing the time we allow uqmi to wait for response for --uim-get-sim-state
Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18772
(cherry picked from commit d63663601d)
Signed-off-by: Felix Baumann <felix.bau@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18965
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Group 'local' declarations and 'json_get_vars', sort alphabetically within groups, and split off more generic parameters.
- delegate and sourcefilter were not declared as local variables
Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
(cherry picked from commit bf768867dc)
Signed-off-by: Felix Baumann <felix.bau@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18965
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Commit 7cace002ba added a generic kernel patch that exposes a new
symbol REALTEK_PHY_HWMON when REALTEK_PHY and HWMON are enabled. The new
symbol was added to kmod-phy-realtek, but the kmod is not used in the
rockchip target.
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/18921
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Now that we have a board file, add calibration variant for TP-Link
Archer C6 v2 and add ipq-wifi package for it.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 427c4aa266)
Signed-off-by: Leopoldo Pla <leopoldoplasempere@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19035
Signed-off-by: Nick Hainke <vincent@systemli.org>
Enable activity on the WiFi LEDs of the Teltonika RUTX50
like other boards in the ipq40xx target.
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 54463f1e2e)
The Teltonika RUTX50 mac-addresses on its wired interfaces are currently
random on every boot.
Setting the mac-addresses from device-tree using nvmem does not work, as
the vendor bootloader mangles the mtd partitions, removing the
nvmem-cells property.
To remedy the random mac-addresse, set the correct ones in preinit.
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 08c93512fe)
Turn on the 5G modem of the RUTX50 on by default.
This allows to make the modem detectable on a fresh
installation OOTB without further intervention.
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit ac1ad1a7ad)