Whenever a variable is needed to denote a smi_bus it is named
accordingly. Fix the last wrong definition.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22866
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
For some unknown reason carving out the mdio bus from the ethernet
node forgot the TP-Link SG2452P. The notation still reads
ðernet0 {
mdio: mdio-bus {
compatible = "realtek,rtl838x-mdio";
...
Like everywhere else it should be
&mdio_bus0 {
PHY_C22(0, 0)
...
Fix that.
Fixes: 57b270684 ("rearrange mdio-bus below mdio-controller")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22866
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Repurpose a currently unused macro to make it usable for common SFP port
definitions. Do so by changing defined properties, drop the fixed link,
etc.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22827
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The pinmux entry for disabling JTAG includes a comment which points to
which GPIOs are sacrificed for using JTAG. However, this comment so far
was only aware of GPIO6 and GPIO7. From RTL931X application notes and
datasheets we know which GPIOs are actually affected here.
Extend the comment to include GPIOs 3-5 too.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22827
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add a recipe 'rt-loader-bootbase' to build an image with rt-loader for
devices using the Zyxel BootBase/BootExtension chain. They need a plain
bootable image for initramfs (preferably rt-loader with piggy-backed
uImage) and a plain uImage for flashing. The flashable uImage is later
combined with the loader into a signed/checksummed image.
This template recipe can be used directly for GS1920-24HP, making the
initramfs image more flexible due to using uImage instead of plain
image.
Suggested-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22827
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The 6.18 testing kernel for ath79 target is ready now.
Tested on ath79/nand:Netgear R6100
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22771
Signed-off-by: Nick Hainke <vincent@systemli.org>
CONFIG_PAGE_BLOCK_MAX_ORDER was set to 10 as the page size is 4k.
All other kernel symbols are automatically refreshed by
`make kernel_oldconfig CONFIG_TARGET=target` and
`make kernel_oldconfig CONFIG_TARGET=subtarget`.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22771
Signed-off-by: Nick Hainke <vincent@systemli.org>
Copy patches and kernel configs from 6.18 kernel to restore the
default 6.12 kernel support files.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22771
Signed-off-by: Nick Hainke <vincent@systemli.org>
This is a preparation for 6.18 kernel support. It can help us
track the files history by using the Git tool.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22771
Signed-off-by: Nick Hainke <vincent@systemli.org>
Drop support for 6.12 by removing files, patches and kernel configs
since 6.18 is the default now.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22869
Signed-off-by: Nick Hainke <vincent@systemli.org>
Make 6.18 the default kernel version now after the testing phase showed
no big issues.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22869
Signed-off-by: Nick Hainke <vincent@systemli.org>
Add $(Device/uimage-rt-loader) to Device/zyxel_gs1900 to use lzma
compression for the sysupgrade kernel image. This saves approximately
1 MB of flash space compared to the previous gzip compression, leaving
more room for the rootfs overlay.
Signed-off-by: Klaus Rubenstein <klaus.rubenstein@gmail.com>
Tested-by: Sander Vanheule <sander@svanheule.net> # GS1900-{8,48} A1
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Add reset-gpios for both RTL8231 expanders and hog the PHY reset
line on expander@3.
Signed-off-by: Klaus Rubenstein <klaus.rubenstein@gmail.com>
Tested-by: Sander Vanheule <sander@svanheule.net>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Add support for the Zyxel GS1900-48HP A1 managed PoE switch based on
RTL8393 SoC with 48 copper ports (6x RTL8218B), 2 SFP slots and PoE
(170W budget). Includes DTS, image definition, network config and
u-boot-env support.
The device has 48 copper ports but only ports 1-24 are powered by
the PoE PSE controller.
PoE support requires the realtek-poe package from the packages feed
with an additional configuration for PSE ID 7 to address the MCU on
this device.
Signed-off-by: Klaus Rubenstein <klaus.rubenstein@gmail.com>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Move the shared hardware description from rtl8393_zyxel_gs1900-48-a1.dts
into a common rtl8393_zyxel_gs1900-48.dtsi include file. This allows
other GS1900-48 variants to reuse the shared definitions.
Signed-off-by: Klaus Rubenstein <klaus.rubenstein@gmail.com>
Tested-by: Sander Vanheule <sander@svanheule.net>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Restore CONFIG_PAGE_BLOCK_MAX_ORDER=10 in malta 6.18 config fragments
to fix build failures where PAGE_BLOCK_MAX_ORDER was undefined.
Support for Linux 6.18 on malta was added after this OpenWrt change:
ac0cb87a45.
Before that integration, the kernel option CONFIG_PAGE_BLOCK_MAX_ORDER=10
was provided in target/linux/generic/config-6.18 and applied broadly.
After the malta 6.18 integration the generic fragment no longer supplied
this option for malta targets, which caused some backported code paths
and drivers to assume PAGE_BLOCK_MAX_ORDER was defined and led
to compilation failures.
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/22843
Signed-off-by: Robert Marko <robimarko@gmail.com>
In this target, we only use downstream dts files. And it doesn't
seem like there will be significant changes upstream. Move dts files
to the target dts folder to avoid copying them over and over again
during annual kernel upgrades.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22876
Signed-off-by: Robert Marko <robimarko@gmail.com>
This change is needed as we move towards removing rtk init from bootloader
and makes it possible to initialize and configure RTL8224 phy driver
Signed-off-by: Harshal Gohel <hg@simonwunderlich.de>
Link: https://github.com/openwrt/openwrt/pull/22826
Signed-off-by: Robert Marko <robimarko@gmail.com>
In cases where an nvmem definition is applied to the switch ports,
change to apply to the root gmac so that a randomized MAC address does
not get set.
Also remove the aliases. Since nvmem is used, we don't care about the
bootloader.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22857
Signed-off-by: Robert Marko <robimarko@gmail.com>
Drop two confusing macros 'PHY_PAGE_2' and 'PHY_PAGE_4'. Though we
rather want to have meaningful names instead of magic values everywhere,
those two macros do it totally wrong. They still have the old naming
from times where SerDes was treated as a PHY, and they add no real
context to what page they are actually referring. Thus, replace them
with plain values in their two usages each until we have a better
overall solution.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22885
Signed-off-by: Robert Marko <robimarko@gmail.com>
Cleanup some odd macros still existing from older code. Drop the old
RTL931X_ prefix and use RTPCS_931X_ instead, and drop a totally unused
macro.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22885
Signed-off-by: Robert Marko <robimarko@gmail.com>
Give the one-time PCS init hook a shorter and simpler name, using simply
'init' instead of 'init_serdes_common'. Keep it short and sweet.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22885
Signed-off-by: Robert Marko <robimarko@gmail.com>
Shorten the name of the SerDes ops struct from 'rtpcs_serdes_ops' to
'rtpcs_sds_ops' to be consistent with other naming throughout the
driver.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22885
Signed-off-by: Robert Marko <robimarko@gmail.com>
Drop another few sw() macros.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22853
Signed-off-by: Robert Marko <robimarko@gmail.com>
Convert some coding
- from sw() macros to regmap and
- from mdelay() to msleep()
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22853
Signed-off-by: Robert Marko <robimarko@gmail.com>
A previous commit wrongly renamed a patch file omitting the final 'h'
character. Rename it to again have the correct '.patch' suffix.
Fixes: c23b9256f0 ("mediatek: replace patches with upstream version")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
No need to add another aliases node just for the label-mac-device,
luckily DTC was smart enough to combine them together in the final DTB.
Signed-off-by: Robert Marko <robimarko@gmail.com>
The Airoha AN7581 EVB board switched to full UBI support. Update the
partition table to reflect the new implementation.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Generalize the eMMC DTS to common node and add a variant with the Kite WiFi
chip installed. Also rename the eMMC model name and add the Eagle name to
it.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Add specific DTSI for NPU firmware based on the supported WiFi chip and
update the supported device by including the relevant new DTSI.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
The bootloader on this device is old and supports no lzma. So use
lzma-loader to work around this and get the size smaller so that an
image can actuallly be created and flashed. Because of these size
problems, the last usable version of OpenWrt was 23.05.
This UIMAGE_MAGIC seems to be used by other Netgear devices. Add to
avoid
jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at
0x00000000: 0x2705 instead
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22769
Signed-off-by: Robert Marko <robimarko@gmail.com>
Stocks args have
console=ttyS0,9600
rootfstype=squashfs
root=31:03
init=/sbin/init
mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),
1024k(vmlinux.gz.uImage),6208k(rootfs),512k(var),
64k(manufacturing-data),64k(ART)
rootfstype=squashfs,jffs2
which is wrong and interferes with OpenWrt. Keep the non default console
parameter to have console working properly.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22769
Signed-off-by: Robert Marko <robimarko@gmail.com>
For running, have it be the green LED as in stock firmware.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22769
Signed-off-by: Robert Marko <robimarko@gmail.com>
Make clear that the driver instructs the hardware via a port and
its number. To be consistent with other refactoring swap variable
addr for pn in this case.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22830
Signed-off-by: Robert Marko <robimarko@gmail.com>
Now that the driver drives multiple busses adapt the debug output
from port based to bus/phy based.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22830
Signed-off-by: Robert Marko <robimarko@gmail.com>
The dn attribute was used to register the phys of the mdio bus
individually. With the new multiple busses this is not needed
any longer. Drop it.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22830
Signed-off-by: Robert Marko <robimarko@gmail.com>
The mdio controller inside the Realtek switches drives multiple busses.
Until now the driver exposed a flattened single bus (aka port view).
Align to the upstream driver and expose up to 4 busses depending on
the dts definition. For this:
1. Adapt rtmdio_probe() so it calls rtmdio_probe_one() for each child
dts child node that represents a single bus.
2. Adapt rtmdio_probe_one() so it registers a single bus in "full-auto"
mode. No more hacks via fwnode_mdiobus_register_phy() needed.
3. Adapt rtmdio_phy_to_port() so it uses a lookup based on the new
topology.
4. Adapt rtmdio_get_phy_info() for multiple busses.
5. In the DSA driver adapt the mdio controller load check to wait
until all busses have been registered.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22830
Signed-off-by: Robert Marko <robimarko@gmail.com>
Some central controller setup is currently realized in the bus reset
functions. As soon as we have multiple busses this coding will be
called multiple times. Rename the reset() functions to setup_ctrl()
and call that only once before the bus probing.
While we are here harmonize the variable for the bus loops and name
it smi_bus.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22830
Signed-off-by: Robert Marko <robimarko@gmail.com>
All configuration helpers have been converted to look at the
control structure. Do the same for setup_polling(). With
this move the call location out of rtmdio_probe_one() into
the parent rtmdio_probe() where it belongs.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22830
Signed-off-by: Robert Marko <robimarko@gmail.com>
For polling setup the driver looks up the atached phy ids with
function rtmdio_get_phy_info(). This derives the data from a
given bus and a port number. While this works for a single bus
the combination of port and bus makes no sense. One is the global
view the other the bus individual view. Change the signature so
the lookup is done globally via ctrl/port.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22830
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add two attributes to the central control and the channel structure.
chan->smi_bus: The index of the selected channel.
ctrl->bus[].mii_bus: Links to all busses
With this ctrl/chan can lookup each others data more easily.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22830
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently phy and port are basically the same. One bus and each
port has a phy assigned. In the future the driver will make use
of multiple busses. Each of them will have a distinct set of
phys.
To make the iterators clearer use "port" for macros when the
driver must access the hardware independent from the bus. In this
case use "pn" (aka port number) as an iterator variable.
No functional changes.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22830
Signed-off-by: Robert Marko <robimarko@gmail.com>
Adds an initialization sequence for the RTL8224. It relies a lot on magic
values, however it explicitely initializes the SerDes part of the chip.
Signed-off-by: Damien Dejean <dam.dejean@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22609
Signed-off-by: Robert Marko <robimarko@gmail.com>