The original set of stock partitions was kept in the TR4400 v2 port,
with the same partition numbers but their names prefixed with 'stock_'.
This allowed scripts (installation, back to stock, etc) to run on both
stock and OpenWrt firmware. But this triggers warnings in the device
tree compiler, as partitions of the old and new schemes overlap.
This commit fixes the dtc warnings by deleting the stock partitions,
also renumbering some of the remaining MTD partitions in the process.
Additionally, the 'fw_env' partition is set to read-only.
These changes can break existing scripts as well as user configurations
that utilize the 'extra' partition. Users wanting to run old scripts can
do so by reverting to the 23.05 series releases.
Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16958
Signed-off-by: Robert Marko <robimarko@gmail.com>
The broadcom PHY driver only has to depend upon PTP_1588_CLOCK_OPTIONAL
if NETWORK_PHY_TIMESTAMPING is enabled. The PTP functionality is stubbed
in this case.
Reflect this circumstance in the dependence condition. This allows to
build the driver as a built-in module even if PTP is built as a module.
This is required to include the broadcom PHY module regardless of the
built-setting of the PTP subsystem. On ath79 (and probably more)
targets with Broadcom PHY, Gigabit operation is currently broken as the
PHY driver is only built as a module in case all kernel-packages are
built. Due to this circumstance, affected devices fall back to using the
generic PHY driver.
Signed-off-by: David Bauer <mail@david-bauer.net>
Sync patch with upstream version and tag them.
Minor changes done to Pinctrl patch to support older kernel.
Patch automatically refreshed with make target/linux/refresh.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
DEFAULT_PACKAGES handling was moved in commit 40be892a02
("imagebuilder: move handling of DEFAULT_PACKAGES into shareable place")
to `include/default-packages.mk`, but they weren't removed from
ImageBuilder's Makefile, so lets remove it now.
Once removed, I've noticed, that it stopped working as there is
target.mk included later in that file, overriding the DEFAULT_PACKAGES
again, so moved it after this target.mk include.
Fixes: 40be892a02 ("imagebuilder: move handling of DEFAULT_PACKAGES into shareable place")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Robert reported, that in firmware images generated by ASU, there is
`apk` package manager missing after the commit 44598c233d ("build:
remove broken dependency of metadata on toplevel .config variables").
That is happening, because apk got removed from `default_packages` list in
`profiles.json`, which is being generated by `json_overview_image_info` Make
target, which uses `scripts/json_overview_image_info.py` helper script,
which gets the information from `DEFAULT_PACKAGES` Make variable.
So lets fix it by providing `DEFAULT_PACKAGES` variable when its needed.
The reason why we didn't added those packages as a dependency to
base-files like any other packages, was to allow disabling them (in
order to save space).
Fixes: #16969
Fixes: openwrt/asu/issues/1084
Fixes: 44598c233d ("build: remove broken dependency of metadata on toplevel .config variables")
Reported-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Link: https://github.com/openwrt/openwrt/pull/16986
Signed-off-by: Robert Marko <robimarko@gmail.com>
It seems, that handling of DEFAULT_PACKAGES is needed in more places, so
lets move it into dedicated include file so it can be easily shared.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Link: https://github.com/openwrt/openwrt/pull/16986
Signed-off-by: Robert Marko <robimarko@gmail.com>
CONFIG_FB_INTEL is now visible on x86 since i915 driver is packaged as kmod
now and it stops compilation, so add it to the generic config.
Signed-off-by: Robert Marko <robimarko@gmail.com>
These get dynamically set based on compiler version. Not relevant for
targets.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16770
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This symbol is no longer present.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16770
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Move settings CONFIG_INTEL_MEI_GSC_PROXY, CONFIG_INTEL_MEI_HDCP
and CONFIG_INTEL_MEI_PXP to target generic.
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/16971
Signed-off-by: Robert Marko <robimarko@gmail.com>
All ipq807x devices that were using the legacy 'mmc_do_upgrade' eMMC
sysupgrade code were ported to the replacement 'emmc_do_upgrade' code.
Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16505
Signed-off-by: Robert Marko <robimarko@gmail.com>
Alphabetically sort devices in platform.sh
Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16505
Signed-off-by: Robert Marko <robimarko@gmail.com>
Note that the old ad-hoc method did not explicitly align backup data
to 64 KiB boundaries.
Also note that the qnap 301w has a 'rootfs_data' partition in the eMMC
that is being ignored by fstools during boot, presumably due to a bug.
This is why the partition is also ignored in the sysupgrade code and
there is no definition of CI_DATAPART="rootfs_data".
Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16505
Signed-off-by: Robert Marko <robimarko@gmail.com>
Note that the old ad-hoc method did not explicitly align backup data
to 64 KiB boundaries.
Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16505
Signed-off-by: Robert Marko <robimarko@gmail.com>
Since the start of the Realtek target OpenWrt works with RTL83XX as the
target architecture. Upstream is using MACH_REALTEK_RTL instead. To
simplify further development align that.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16963
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit fixes and closes#16313.
Switch the x86 kernel's timer to tickless operation which is
more power efficient since it is not woken up by periodic timer
interrupts when idle. Also add several other options for CPU
idle governors particularly the upstream default for tickless
kernels, CONFIG_CPU_IDLE_GOV_MENU. Without this commit, my AMD
Ryzen 7 5800U can only achieve a minimum core frequency of 1,384
MHz which is over 3x higher than the processor's minimum
frequency of 400 MHz which is accessible with this modification.
In addition to the lower clock rate, I have seen a concomitant
reduction in both idle temps and at-the-wall power consumption.
Summary:
* Idle CPU freqs dropped from 1,384 MHz to 400 Mhz.
* Idle power consumption dropped from 7 W avg to 5 W.
* Idle temps have dropped from 50C on avg to 43C.
There are other well known reasons to switch to a tickless
timer including: reduced interrupt overhead, better use of CPU
resources, and reduced latency to name a few.
Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/16317
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
i915 driver requires to load correct firmware to work on latest x86
GPU, it is more reasonable to make it as a kernel module, so that
initramfs is not required, and it can also save some space from the
kernel image comparing being a built-in driver
Signed-off-by: Joe Zheng <joe.zheng@intel.com>
Link: https://github.com/openwrt/openwrt/pull/16276
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add a new utility, `omnia-eeprom`, which can be used to print / set
EEPROM fields on Turris Omnia.
One example when this utility might be useful is if the board
experiences random crashes due to newer versions of the DDR training
algorithm in newer U-Boot. The user can change the DDR speed from 1600K
to 1333H to solve these issues, with
```
omnia-eeprom set ddr_speed 1333H
```
Signed-off-by: Marek Behún <kabel@kernel.org>
Link: https://github.com/openwrt/openwrt/pull/16264
Signed-off-by: Robert Marko <robimarko@gmail.com>
This reverts commit e1043a746a, that
attempts to nest partitions that overlap but are not nested. This
causes the 'ubi' partition to be truncated, making rootfs inaccessible
and bricking the device.
Also, had this commit worked, it would have renumbered MTD partitions
in a way that would have broken documented scripts for installation and
update of main and recovery OSes, making backups, return to stock, etc,
and broken user configurations that put the 'extra' partition to use.
Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16944
Signed-off-by: Robert Marko <robimarko@gmail.com>
The GatoNetworks GDSP is a re-branded version of the R5000 5G Industrial
router from Yinghua Technologies.
The re-branded device comes with OpenWrt preinstalled, and an OpenWrt-based
U-Boot bootloader version. While the flash layout has been kept compatible
with the OpenWrt version found on the stock device (see [5]), the image format
changed, making a bootloader upgrade necessary.
Specifications:
SoC: Mediatek MT7981BA
RAM: 256MB
Flash: SPI-NOR 32 MiB (Winbond W25Q256)
WLAN: MT7976CN DBDC AX Wi-Fi
Switch: MT7531AE (4x LAN Gigabit ports, 1x WAN Gigabit port)
5G: Quectel RM520N modem
Watchdog: an external WDT connected to GPIO 6 is present and always running;
the built-in Mediatek watchdog is also present and effective, but
not used at the moment.
This porting has been tested only with 1x 5G modems installed (the device
supports up to two).
Installation:
Installation is possible via sysupgrade both in the stock device and
re-branded version. However, in the former case, updating the bootloader is
required.
OpenWrt-based U-Boot Bootloader installation
--------------------------------------------
The firmware flashed in the re-branded device at manifacturing time will
flash an OpenWrt-based U-Boot bootloader with some extra recovery features
(see [1]) at first boot.
To update the bootloader, you need to install the mtd-rw module and
insmod it:
insmod mtd-rw i_want_a_brick=1
Then update relevant flash partitions:
mtd erase u-boot-env
mtd erase BL2
mtd erase FIP
mtd write openwrt-mediatek-filogic-gatonetworks_gdsp-preloader.bin BL2
mtd write openwrt-mediatek-filogic-gatonetworks_gdsp-bl31-uboot.fip FIP
And reboot, making sure all previous commands ran succesfully.
If something goes wrong, you can recover your device via the mtk_uartboot
tool.
In my testing, it was possible to start the process even without (un)-plugging
the device, may be handy for remote recovery.
Installation from stock device and firmware
-------------------------------------------
To install vanilla OpenWrt in the stock device (R5000 5G Industrial router
from Yinghua Technologies) running the stock vendor firmware, you will need
to update your bootloader as described in previous section. Remember to use
-F (force upgrade) and -n (not keeping settings).
U-Boot Recovery
---------------
This procedure has been tested only with the OpenWrt-based U-boot bootloader.
Assign your system static IP address 192.168.1.1 and start a TFTP server. The
device will look for an initramfs image named
openwrt-mediatek-filogic-gatonetworks_gdsp-initramfs-kernel.bin
(so you may use openwrt/bin/targets/mediatek/filogic as root dir for your
TFTP server).
Power on the device while keeping the reset button pressed, until you see
a TFTP request from 192.168.1.10. Your environment will be restored to it's
default state.
MAC addresses assignment
------------------------
MAC addresses are assigned slightly differently than in stock firmware. In
particular, the 5 GHz Wi-Fi uses 2.4 GHZ MAC + 1, rather than reusing it with
LA bit set as done in stock firmware. This MAC address is allocated to the
device, so it can be used.
The 2.4 GHz Wi-Fi MAC address is the label MAC. LAN MAC is used to set the
special U-Boot environment ethaddr variable.
device MAC address U-Boot env variable factory partition offset
2.4 GHz Wi-Fi :84 wifi_mac 0x4
5.8 GHz Wi-Fi :85 not present not present
WAN :86 wan_mac 0x24
LAN :87 lan_mac 0x2A
Notes
-----
[1]: the OpenWrt-based U-Boot bootloader you will find installed in the
re-branded device is configured to request for the initramfs image via
TFTP for $gdsp_tftp_tries times before trying normal boot from NOR flash.
Setting this U-Boot environment variable to 0x0 will disable the feature,
which is not implemented in this patch.
[2]: the exposed UART port is connected to ttyS1; the ttyS0 console port is
not exposed.
[3]: the provided bootloader environment has no provision for operating on
BL2 and the FIP partitions. This is an intentional choice to make it
(slightly) more difficult to brick the device.
[4]: it seems GPIO 6 is used both for the "SYS" LED and external WDT.
[5] BL2 expects to find FIP payload at a fixed offset, so some constraints
apply.
Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
Make keys directory for APK instead of OPKG while adding local key.
Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
Link: https://github.com/openwrt/openwrt/pull/16942
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Since the image builder pulls package lists from metadata directly,
add procd and busybox as depdendencies to base-files.
As for the package manager itself, since it can be disabled it needs
to be added directly in the image builder makefile
Fixes: 44598c233d ("build: remove broken dependency of metadata on toplevel .config variables")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
It seems that despite NSS not being supported in OpenWrt the memory it
usually uses needs to be reserved anyway for stability reasons.
Link: https://github.com/openwrt/openwrt/pull/16928
Signed-off-by: Robert Marko <robimarko@gmail.com>
mutex_destroy is missing in remove.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16926
Signed-off-by: Robert Marko <robimarko@gmail.com>
Missing u caused the regulator to fail probe.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16925
Signed-off-by: Robert Marko <robimarko@gmail.com>
i2c_add_numbered_adapter is the wrong function to use here. It requires
setting nr to some value, otherwise it behaves the same as
i2c_add_adapter. nr is not set.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16825
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
In 451e2ce006 the code would only move packages separated by dashes,
however OPKG uses underscores to split between package name and version.
Result was the lack of such packages in the packed ImageBuilder.
Use dashes or underscores depending on the select package manger.
Fixes: 451e2ce006 "imagebuilder: fix package inclusion and APK index"
Signed-off-by: Paul Spooren <mail@aparcar.org>
What seems to be happening is that the kernel requests an ACTIVE_LOW
gpio initially and sets it to high later based on gpios in dts.
This seems to break some devices where the bootloader sets it to high.
Fixes: e612900ae0 ("ramips: mt7621: convert usb power to regulators")
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16877
Signed-off-by: Robert Marko <robimarko@gmail.com>
The `--initdb` command creates basic folders required by APK,
previoiusly it would only run a single time when package_index is
actually called. Since the function isn't called if nothing changes,
`--initdb` doesn't initialize the rootfs again.
This commit moves it to package_reload, which runs every time.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Previously three different ways to include packages in an ImageBuilder
existed:
* buildbot: include libc, kernel (and base-files) in $(IB_LDIR)
* not buildbot, standalone: include all packages in ./packages/
* not buildbot, not standalone: include libc, kernel (and base-files) in
./packages/
First of, the separation between *buildbot* and *not buildbot, not
standalone* is not required, we can just always copy packages to
./packages instead of ever using the special place $(IB_LDIR).
Doing so drops the need to handle the extra case and also allows to
clean up the OPKG package installation, which no longer requries the
`firstword` logic, things are now always at ./packages.
Signed-off-by: Paul Spooren <mail@aparcar.org>
We need to exclude packages from the APK index which must not be
upgraded. To do so, the packages `libc`, `kernel` and `base-files` are
excluded to APK never suggestes them as upgradable.
The previous logic would however match packages like `libcomerr0`,
causing build failures. Make the copying and excluding logic more
precise by adding a single dash.
Signed-off-by: Paul Spooren <mail@aparcar.org>
This commit solves multiple issues. First of just install the three
special packages base-files, libc and kernel directly from the index. In
upstream indexes, those will never appear to prevent accidental upgrades
may breaking the system.
Next, enable caching for the ImageBuilder, which speeds up consecutive
builds from ~33 seconds to ~5 seconds. Using cache however makes APK
create the folder `/var/cache/apk/` which conflicts with the base-files
installation, which ships a symlink from `/var` to `/tmp`, so specify
`--no-cache` for the rootfs initialization.
Lastly, drop the use of `apk update` since APK automatically does that.
Signed-off-by: Paul Spooren <mail@aparcar.org>
The Sophos AP15C uses the same hardware as the AP15, but has a reset button.
Based on:
commit 6f1efb2898 ("ath79: add support for Sophos AP100/AP55 family")
author Andrew Powers-Holmes <andrew@omnom.net>
Fri, 3 Sep 2021 15:53:57 +0200 (23:53 +1000)
committer Hauke Mehrtens <hauke@hauke-m.de>
Sat, 16 Apr 2022 16:59:29 +0200 (16:59 +0200)
Unique to AP15C:
- Reset button
- External RJ45 serial console port
Flashing instructions:
This firmware can be flashed either via a compatible Sophos SG or XG
firewall appliance, which does not require disassembling the device, or via
the U-Boot console available on the internal UART header.
To flash via XG appliance:
- Register on Sophos' website for a no-cost Home Use XG firewall license
- Download and install the XG software on a compatible PC or virtual
machine, complete initial appliance setup, and enable SSH console access
- Connect the target AP device to the XG appliance's LAN interface
- Approve the AP from the XG Web UI and wait until it shows as Active
(this can take 3-5 minutes)
- Connect to the XG appliance over SSH and access the Advanced Console
(Menu option 5, then menu option 3)
- Run `sudo awetool` and select the menu option to connect to an AP via
SSH. When prompted to enable SSH on the target AP, select Yes.
- Wait 2-3 minutes, then select the AP from the awetool menu again. This
will connect you to a root shell on the target AP.
- Copy the firmware to /tmp/openwrt.bin on the target AP via SCP/TFTP/etc
- Run `mtd -r write /tmp/openwrt.bin astaro_image`
- When complete, the access point will reboot to OpenWRT.
To flash via U-Boot serial console:
- Configure a TFTP server on your PC, and set IP address 192.168.99.8 with
netmask 255.255.255.0
- Copy the firmware .bin to the TFTP server and rename to 'uImage_AP15C'
- Open the target AP's enclosure and locate the 4-pin 3.3V UART header [4]
- Connect the AP ethernet to your PC's ethernet port
- Connect a terminal to the UART at 115200 8/N/1 as usual
- Power on the AP and press a key to cancel autoboot when prompted
- Run the following commands at the U-Boot console:
- `tftpboot`
- `cp.b $fileaddr 0x9f070000 $filesize`
- `boot`
- The access point will boot to OpenWRT.
Signed-off-by: David Lutz <kpanic@hirnduenger.de>
IMAGE_SIZE was previously set to kernel1 + ubi size = 256768k, now
kernel1 is 6MB adjust this value to add 3072k to total image size.
Signed-off-by: Tim Lunn <tim@feathertop.org>
Link: https://github.com/openwrt/openwrt/pull/15194
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Edgerouter-X factory images have not built automatically since 19.x due
to images being over 3MB. While it was possible to build custom images
with very stripped down config, this is no longer possible with the size
increases of linux 6.1 and 6.6.
Drop code for generation of factory images, if some dev later wishes to
try custom images they can revert this commit.
Signed-off-by: Tim Lunn <tim@feathertop.org>
Link: https://github.com/openwrt/openwrt/pull/15194
Signed-off-by: Petr Štetiar <ynezz@true.cz>
With the new layout providing 6MB for kernel there will be no issues
with kernel size affecting build of images.
Re-enable image builds for Edgerouter-X and X-SFP.
Signed-off-by: Tim Lunn <tim@feathertop.org>
Tested-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Link: https://github.com/openwrt/openwrt/pull/15194
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Use compat version to indicate that the new layout for larger kernels
is in place. This handled by the patch to ubnt.sh to always select
the kernel1 slot for flashing and as active kernel slot.
Signed-off-by: Tim Lunn <tim@feathertop.org>
Tested-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Link: https://github.com/openwrt/openwrt/pull/15194
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Refer user to the wiki page for instructions on how to migrate to the
new kernel layout.
Signed-off-by: Tim Lunn <tim@feathertop.org>
Tested-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Link: https://github.com/openwrt/openwrt/pull/15194
Signed-off-by: Petr Štetiar <ynezz@true.cz>
With the updated partition layout set in dts, set the KERNEL_SIZE
parameter to 6MB allowing builds of Linux 6.1 and later to fit.
Signed-off-by: Tim Lunn <tim@feathertop.org>
Tested-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Link: https://github.com/openwrt/openwrt/pull/15194
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Uboot selects which kernel slot to boot based on a flag in the factory
mtd partition. Patch ubnt.sh to ensure always flash to kernel1 slot and
update flag if required.
Signed-off-by: Tim Lunn <tim@feathertop.org>
Tested-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Link: https://github.com/openwrt/openwrt/pull/15194
Signed-off-by: Petr Štetiar <ynezz@true.cz>
The OEM layout for Edgerouter X provides for two 3MB kernel slots.
As of linux 6.1 the kernel images no longer fit and as such
Edgerouter X builds have been disabled in Main.
Revise the layout to make kernel1 slot 6MB and drop kernel2 slot.
This patch applies the required changes to the dts file.
Signed-off-by: Tim Lunn <tim@feathertop.org>
Tested-by: Mauri Sandberg <maukka@ext.kapsi.fi>
Link: https://github.com/openwrt/openwrt/pull/15194
Signed-off-by: Petr Štetiar <ynezz@true.cz>
The last "syscfg" partition of the OEM firmware turns out to be a
UBIFS used to store user data, just as the "rootfs_data" of OpenWrt,
so it should be reasonable to absorb it into the "ubi" partition.
Factory installations via either OEM firmware or tftp, or by forcibly
flashing factory image to mtd5 (firmware) partition with mtd tool are
confirmed working, but the UBI remaining inside "syscfg" partition
could break upgrade. Fortunately, installing kmod-mtd-rw and erasing
"syscfg" partition before upgrade is confirmed working, in which case,
"ubi" will automatically expand to the blank space once occupied by
the former mtd8 (syscfg), with the total block number increased, but
the UBIFS for rootfs_data will not automatically claim the newly
available space (since it is created when mtd8 still exists, and
sysupgrade does not set "autoresize" flag to rootfs_data). These space
will be claimed during the next upgrade, when rootfs_data is removed
and created again.
Fixes: 50f727b773 ("ath79: add support for Linksys EA4500 v3")
Signed-off-by: Edward Chow <equu@openmail.cc>
Link: https://github.com/openwrt/openwrt/pull/14791
Signed-off-by: Robert Marko <robimarko@gmail.com>
Mass production units will get 16 assigned MAC addresses. This allows each phy
to spawn up to 7 VAPs which will each have unique MAC without needing the
private bit.
Signed-off-by: John Crispin <john@phrozen.org>
Mass production units will get 16 assigned MAC addresses. This allows each phy
to spawn up to 7 VAPs which will each have unique MAC without needing the
private bit.
Signed-off-by: John Crispin <john@phrozen.org>
A factory image for DNA EX400 depends on an initramfs image and they
were explicitly removed from the imagebuilder recently. Now the factory
image creation fails miserably and it also affects custom image creation
with the firmware selector.
Add the initramfs kernel to the staging so that it's shipped with the
imagebuilder. Also remove a image build target added solely for DNA EX400.
Tested by creating a factory and syspupgrade images locally with
the imagebuilder and verified their functionality.
Related work
c85348d9ab ("imagebuilder: remove initramfs image files")
Fixes: fea2264d9f ("ramips: mt7621: Add DNA Valokuitu Plus EX400")
Signed-off-by: Mauri Sandberg <maukka@ext.kapsi.fi>
---
v4: use append-image-stage, remove Build/kernel-initramfs-bin
v3: adjust commit subject
v2: remove fix for inconsistent line ending elsewhere in the file
Link: https://github.com/openwrt/openwrt/pull/16659
Signed-off-by: Robert Marko <robimarko@gmail.com>
Upstream stable is slow at picking this up and several systems
are regressing. Add the patch locally in OpenWrt.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Specifying GPIO_ACTIVE_HIGH on the GPIO for the voltage regulator doesn't
suffice. The regulator itself requires enable-active-high to be set.
Fixes: #16292
Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
Link: https://github.com/openwrt/openwrt/pull/16839
Signed-off-by: Robert Marko <robimarko@gmail.com>
No need for a custom function that does the same thing.
Oversight from devm conversion.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16748
Signed-off-by: Robert Marko <robimarko@gmail.com>
Oversight from devm conversion. No need for a custom static inline
function.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16747
Signed-off-by: Robert Marko <robimarko@gmail.com>
These things are regulators. Should silence dmesg messages about using
dummy regulators.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16804
Signed-off-by: Robert Marko <robimarko@gmail.com>
The mediatek target requires refreshing after recent additions.
Fixes: cfe8e6e75f ("mediatek: add support for Realtek RTL8261n 10G PHYs")
Fixes: ddfae94a14 ("mediatek: add support for swapping the polarity on usxgmii interfaces")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Assign pwm function of PWM0 pin to the pwm-fan.
This is mostly just cosmetics as it basically reflects the default
setting of that pin.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Add additionals possible pinctrl group for pwm2~7 on pins
pin 4 (GPIO_A) pwm7
pin 58 (JTAG_JTDI) pwm2
pin 59 (JTAG_JTDO) pwm3
pin 60 (JTAG_JTMS) pwm4
pin 61 (JTAG_JTCLK) pwm5
pin 62 (JTAG_JTRST_N) pwm6
They can be useful e.g. on the BPi-R4 as in that way pwm2~6 can be exposed
on the 26-pin header (pwm6 always, pwm2~5 instead of the full UART).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Avoids having to call mutex_destroy in remove.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16755
Signed-off-by: Robert Marko <robimarko@gmail.com>
The clocks for SPI busses were named wrongly which resulted in the
spi-mt65xx driver not requesting them. This has apparently been
worked around by marking the clocks required for SPI0 which is used
for SPI-NOR and SPI-NAND flash chips as critical.
Fix the device tree for all 3 generic SPI host controllers and no
longer mark clocks as critical.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Fix in commit 25eead21c5 ("ath79: fix 5GHz on QCA9886 variant of ZTE MF286")
was incomplete. A user of such variant popped up, and in the boot log
after installation, we discovered that QCA9886 expects different
pre-calibration data size, than the older QCA9880 variant:
ath10k_pci 0000:00:00.0: qca9888 hw2.0 target 0x01000000 chip_id 0x00000000 sub 0000:0000
ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
ath10k_pci 0000:00:00.0: firmware ver 10.4b-ct-9888-fW-13-5ae337bb1 api 5 features mfp,peer-flow-ctrl,txstatus-noack,wmi-10.x-CT,ratemask-CT,regdump-CT,txrate-CT,flush-all-CT,pingpong-CT,ch-regs-CT,nop-CT,set-special-CT,tx-rc-CT,cust-stats-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT,wmi-bcn-rc-CT crc32 59e741e7
ath10k_pci 0000:00:00.0: invalid calibration data length in nvmem-cell 'pre-calibration': 2116 != 12064
ath10k_pci 0000:00:00.0: Loading BDF type 0
ath10k_pci 0000:00:00.0: failed to fetch board data for bus=pci,vendor=168c,device=0056,subsystem-vendor=0000,subsystem-device=0000 from ath10k/QCA9888/hw2.0/board-2.bin
ath10k_pci 0000:00:00.0: failed to fetch board-2.bin or board.bin from ath10k/QCA9888/hw2.0
ath10k_pci 0000:00:00.0: failed to fetch board file: -12
ath10k_pci 0000:00:00.0: could not probe fw (-12)
Explicitly define a pre-calibration nvmem-cell for this variant, and use
it instead of the calibration one, which is shorter.
Fixes: 25eead21c5 ("ath79: fix 5GHz on QCA9886 variant of ZTE MF286")
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16809
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The patches were generated from the RPi repo with the following command:
git format-patch v6.6.58..rpi-6.6.y
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
It should be debounce-interval, as with the others.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16802
Signed-off-by: Robert Marko <robimarko@gmail.com>
This reverts commit ec8f647d16, as with the
current kernel version, the change actually causes the same bug it once
may have fixed -- that is, the leds are now again reversed.
I suspect this was due to a switch to a newer kernel version between when
the patch was submitted and now reversing the order of the interfaces, so
that eth0 / the LAN interface is also the interface used for PoE, and eth1
/ the WAN interface is the non-PoE interface.
Signed-off-by: Rafal Boni <rafal.boni@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16779
Signed-off-by: Robert Marko <robimarko@gmail.com>
Those packages were not copied due to OPKG using an underscore while APK
uses dashes. Remove that char to copy kernel/libc for either APK/OPKG.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Drop removal of firewall4 package for I2SE Duckbill device.
With OPKG the firewall4 package was installed anyway as it's a
dependency of luci-app-firewall and was silently installed again later
in such condition. Drop it to fix support for APK.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Drop removal of firewall4 package for Synology DS213j device.
With OPKG the firewall4 package was installed anyway as it's a
dependency of luci-app-firewall and was silently installed again later
in such condition. Drop it to fix support for APK.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
RouterBOOT v7 on NOR devices no longer accepts the YAFFS kernel ELF
method of booting. It will accept an NPK image named bootimage.
Adjust mtdsplit_minor to accept this second possible boot file name.
Use the conservative value of 127 for YAFFS max name length (used when
YAFFS compiled with unicode support) vs 255.
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
Acked-by: Thibaut VARENE <hacks@slashdirt.org>
Link: https://github.com/openwrt/openwrt/pull/16780
Signed-off-by: Robert Marko <robimarko@gmail.com>
Introduced with Linux 6.7, in commit:
5c2f7727d437 ("mtd: mtdpart: check for subpartitions parsing result"),
when a parser returns an error, this will be passed up, and
consequently, all parent mtd partitions get torn down.
Adjust the MiNOR mtdsplit driver to only return an error if there is a
critical problem in reading from the mtd device or allocating memory.
Otherwise return 0 to indicate that no partitions were found.
Also add logging to indicate what went wrong.
This mtdsplit parser makes a very limited check of the first YAFFS
header. For example, this will not match expectations when initially booting
an initramfs image with OEM on MTD.
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
Acked-by: Thibaut VARENE <hacks@slashdirt.org>
Link: https://github.com/openwrt/openwrt/pull/16780
Signed-off-by: Robert Marko <robimarko@gmail.com>
It does the same thing minus a few dmesg prints.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16788
Signed-off-by: Robert Marko <robimarko@gmail.com>
The WiFi chips are actually on PCIe1 and PCIe2, PCIe0 is empty. Fix the
assignment so that WiFi works properly again.
Signed-off-by: Andreas Böhler <dev@aboehler.at>
Link: https://github.com/openwrt/openwrt/pull/16807
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Drop limitation on depending on only armv8 for armsr target as those
module should support both 32 and 64 bits systems.
Only thunderx-net actually require 64 bit systems.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Drop fmc and fmc-eth-config package as they were never actually
submitted to openwrt mainline and they don't exist around.
They are probably part of NXP SDK and were added due to copy-paste
errors.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Add the '~' prefix to package that needs to skip installation as they
are meta-package just to download and compile firmware package for the
final firmware.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Drop kmod-i2c-ralink from ASUS RP-AC56 as it was wrongly added. Such
kmod is not supported on mt7621 as i2c is handled by the mediatek driver
and not bay the ralink downstream one.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Fix wrong package device list that is trying to remove deprecated
packages. Replace with new variant where possible.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Drop ipq-wifi-teltonika_rutx from Teltonika RUTX50, the board file was
merged upstream but the ipq package was never dropped from
DEVICE_PACKAGES list.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Drop kmod-ledtrig-default-on and kmod-ledtrig-netdev as the kmod were
dropped and are now enabled by default.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Complete support for local signing keys for APK.
A local key will be always generated, mkndx is always called with
--allow-untrusted as it needs to replace the sign key with the new local
one.
With CONFIG_SIGNATURE_CHECK the local index is signed with the local
key. Local public key is added with the ADD_LOCAL_KEY option.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
ImageBuilder compiled by buildbot doesn't have any package in the
packages directory. Package needs to be downloaded instead.
This works by calling update to the package manage to download the
remove index and download the file.
Fix missing support for this with APK, by configuring the
--repositories-file option and calling the APK update.
Also move the apk add --initdb to package_index.
If CONFIG_SIGNATURE_CHECK is not enabled, the signature is not checked.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Correctly export PACKAGE_DIR and PACKAGE_DIR_ALL so that they won't be
reset on internal call of rules.mk
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This GPIO is pulled down by the onboard MCU when the power button
is pressed for 5 seconds, indicating a user-initiated shutdown.
Refresh patches at the same time.
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
Although Zyxel XGS1210 devices are not yet officially supported there
are several patches floating around to enable them. This is a very imporant
one because it fixes a SMI misconfiguration. In the known DTS the SFP+
port settings are set as follows.
phy26: ethernet-phy@26 {
compatible = "ethernet-phy-ieee802.3-c45";
phy-is-integrated;
reg = <26>;
sds = < 8 >;
};
phy27: ethernet-phy@27 {
compatible = "ethernet-phy-ieee802.3-c45";
phy-is-integrated;
reg = <27>;
sds = < 9 >;
};
So these are PHYs linked to an internal SerDes. During initialization
rtl838x_mdio_init() generates smi_bus=0 & smi_addr=27/28 for these ports.
Although this seems like a valid configuration integrated PHYs attached
to an SerDes do not have an SMI bus. Later on the mdio reset wrongly feeds
the SMI registers and as a result the PHYs on SMI bus 0 do not work.
Without patch (loaded with rtk network on & initramfs):
...
mdio_bus mdio-bus: MDIO device at address 0 is missing.
mdio_bus mdio-bus: MDIO device at address 1 is missing.
mdio_bus mdio-bus: MDIO device at address 2 is missing.
mdio_bus mdio-bus: MDIO device at address 3 is missing.
mdio_bus mdio-bus: MDIO device at address 4 is missing.
mdio_bus mdio-bus: MDIO device at address 5 is missing.
mdio_bus mdio-bus: MDIO device at address 6 is missing.
mdio_bus mdio-bus: MDIO device at address 7 is missing.
...
rtl83xx-switch ... : no phy at 0
rtl83xx-switch ... : failed to connect to PHY: -ENODEV
rtl83xx-switch ... : error -19 setting up PHY for tree 0, switch 0, port 0
rtl83xx-switch ... : no phy at 1
rtl83xx-switch ... : failed to connect to PHY: -ENODEV
rtl83xx-switch ... : error -19 setting up PHY for tree 0, switch 0, port 1
...
With patch (loaded with rtk network on & initramfs):
...
rtl83xx-switch ... : PHY [mdio-bus:00] driver [REALTEK RTL8218D] (irq=POLL)
rtl83xx-switch ... : PHY [mdio-bus:01] driver [REALTEK RTL8218D] (irq=POLL)
...
Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16457
Signed-off-by: Robert Marko <robimarko@gmail.com>
The RTL930x have only 4 SMI busses (0-3) and the XGS1250 SFP port ist
directly managed. Remove the wrong configuration in the dts.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16457
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently RTL8218D detection works for a range of devices. That can lead to
false positives. E.g. RTL8218B or RTL8214FC are covered by the detection mask
as well. That is wrong. Nail detection down to the real RTL8218D phy id.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16457
Signed-off-by: Robert Marko <robimarko@gmail.com>
The detection of the RTL8214C is a little complicated. Make it easier.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16457
Signed-off-by: Robert Marko <robimarko@gmail.com>
Three PHYs share the same identifier. Until now we simply assume
the type depending of the bus address it is attached to. Make it
better and check the chip mode register instead.
The kernel will either detect by id/mask or by match_phy_device().
Remove the unneeded settings.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16457
Signed-off-by: Robert Marko <robimarko@gmail.com>
The number of phy pages differ between RTL838X and RTL839X. Make that
clear and adapt the existing defines.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16457
Signed-off-by: Robert Marko <robimarko@gmail.com>
According to the specs the RTL839x provides up to 8192 phy pages.
Especially the "raw" page 8191 is used for different initialization
tasks. Increase the limit.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16457
Signed-off-by: Robert Marko <robimarko@gmail.com>
RTL930x devices need the USXGMII mode. This is a final leftover
from the 6.6 conversion.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16457
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add memory regions and devices used for wireless offloading to the
device tree for MT7988.
This allows using WED on devices with MT7988 SoC and MT7995E, MT7996E or
MT7992E wireless controllers.
Devices with 4 GiB of RAM (or more) will still need ajustments to avoid
running out of swiotlb entries.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit adds OpenWRT's LED aliases to the board DTS
for showing system status on the NanoPi R3S.
Signed-off-by: Kevin Zhang <kevin@kevinzhang.me>
Link: https://github.com/openwrt/openwrt/pull/16738
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit adds support for the FriendlyElec NanoPi R3S.
CPU: Rockchip RK3566, Quad-core Cortex-A55
RAM: 2GB LPDDR4X
Ethernet: GMAC RTL8211F GbE, PCIe R8111H GbE
USB3.0 Host: Type-A x1
Storage: MicroSD Slot x 1, and optional on-board 32GB eMMC
Debug Serial Port: 3.3V TTL, 3-pin 2.54mm pitch connector, 1500000 bauds
LED: LED x 3
RTC: One low-power RTC, supports backup battery input
Both GbE controllers are working (WAN eth0, LAN eth1).
Appropriate LAN/WAN interface assignments and MAC address generation.
All three LEDs are working.
USB appears to be working and has been tested with mass storage.
Installation - microSD:
-Uncompress the OpenWRT sysupgrade.img.gz
-Write image to microSD card using dd or similar tool
Installation - eMMC:
-Boot from microSD
-Uncompress the OpenWRT sysupgrade.img.gz
-Flash to eMMC : dd if=x.img of=/dev/mmcblk0
-sync
-Remove microSD card
-Reboot
Signed-off-by: Kevin Zhang <kevin@kevinzhang.me>
Link: https://github.com/openwrt/openwrt/pull/16738
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
No need for irq_of_parse_and_map since this is in _probe.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16771
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
The option shows up when kmod-dm and CONFIG_KERNEL_AUDIT are selected.
Signed-off-by: Marius Dinu <m95d+git@psihoexpert.ro>
Link: https://github.com/openwrt/openwrt/pull/16793
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
commit eee3c695f3 ("linux-firmware: add offloading firmware for MT7988")
added mt7988_wo_{0,1}.bin in the 'mediatek/mt7988' directory while driver
currently expects the files in the 'mediatek' directory.
Import pending patch which changes the path in the driver header now
that the firmware has been added.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Clarify compatibility of the two subtargets with different SoCs to
reduce confusion. The added SoC names only differ in small details such
as features enabled (PoN vs DSL for example).
Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/16785
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This converts all RT3662 and RT3883 devices to use interrupt based
gpio-keys instead of gpio-keys-polled. The poll-interval will be
removed.
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16764
Signed-off-by: Robert Marko <robimarko@gmail.com>
This converts all RT305x and RT5350 devices to use interrupt based
gpio-keys instead of gpio-keys-polled. The poll-interval will be
removed.
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16764
Signed-off-by: Robert Marko <robimarko@gmail.com>
This converts all RT2880 devices to use interrupt based gpio-keys
instead of gpio-keys-polled. The poll-interval will be removed.
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16764
Signed-off-by: Robert Marko <robimarko@gmail.com>
All other MT76x8 devices have already been migrated to gpio-keys.
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16764
Signed-off-by: Robert Marko <robimarko@gmail.com>
The Ralink GPIO driver supports irqchip function. Hence we need to
add "interrupt-parent" and "interrupt-controller" properties to make
sure it works properly. It is worth noting that all GPIO devices
share the same interrupt line.
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16764
Signed-off-by: Robert Marko <robimarko@gmail.com>
The gpiolib has already introduced a general GPIO irqchip framework
to initialize the GPIO irqchip[1]. This patch will make use of it
to simplify the legacy Ralink GPIO driver codes. This patch also
includes some code readability improvements.
[1] 1425052097b5 ("gpio: add IRQ chip helpers in gpiolib")
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16764
Signed-off-by: Robert Marko <robimarko@gmail.com>
It's shared by all targets. Unlike the other shared symbols, it's not
removed by kernel_oldconfig.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16756
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The Airoha EN7581 got renamed to AN7581 due to move from Econet to
Airoha.
To save on compatibility, use both compatible for the device.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
CONFIG_HARDEN_BRANCH_PREDICTOR option is included two times in this
configuration file. Remove one definition. On arm32 SoC it should not be
needed.
Fixes: 54f9744c82 ("treewide: disable spectre mitigation on unaffected Arm32 targets")
Link: https://github.com/openwrt/openwrt/pull/16743
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Also remove vmlinuz-initramfs files from final imagebuilder image as
these file are not needed.
Fixes: c85348d9ab ("imagebuilder: remove initramfs image files")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
ALFA Network WiFi CampPro Nano Duo is a dual-radio Wi-Fi signal extender
(router) in USB dongle form-factor (Type-A plug is used only for power),
based on combination of two radio chipsets: Qualcomm QCA9531 (main SOC)
and MediaTek MT7610U (connected over USB 2.0 interface).
Specifications:
- SOC: QCA9531 v2 (650 MHz)
- DRAM: DDR2 128 MiB (Nanya NT5TU64M16HG-AC)
- Flash: 16 MiB SPI NOR (Macronix MX25L12835F)
- Ethernet: 1x 10/100 Mbps Ethernet (QCA9531)
- Wi-Fi: 2x2:2 2.4 GHz Wi-Fi 4 (QCA9531)
1x1:1 2.4/5 GHz Wi-Fi 5 (MT7610U)
- Antenna: 3x RP-SMA (female) antenna connectors
- LED: 1x orange (RJ45, power indicator)
2x green (status + RJ45 activity/link)
1x blue (Wi-Fi 2.4 GHz status)
- Button: 1x button (reset)
- UART: 1x 4-pin, 2.00 mm pitch header on PCB
- Other: external h/w watchdog (EM6324QYSP5B, enabled by default)
GPIO-controlled USB power for MT7610U
MAC addresses:
- LAN: 00:c0:ca:xx:xx:6d (art 0x2, -1)
- 2.4 GHz (QCA9531): 00:c0:ca:xx:xx:6e (art 0x2, device's label)
- 2.4/5 GHz (MT7610U): 00:c0:ca:xx:xx:6f (from eeprom)
Flash instructions:
You can use sysupgrade image directly in vendor firmware which is based
on LEDE/OpenWrt. Alternatively, you can use web recovery mode in U-Boot:
1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with RJ45 port, press the reset button, power up device,
wait for first blink of status LED (indicates network setup), then
keep button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
Instead of passing NULL to gpiochip_add_data, we can populate the
parameter and use gpiochip_get_data instead of a custom function.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16739
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Easier to just use devm_platform_ioremap_resource.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16701
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit adds support for the Cisco Meraki MX64 and MX65 devices which
use the Broadcom NSP SoC, which is compatible with the bcm53xx platform.
MX64 Hardware info:
- CPU: Broadcom BCM58625 Cortex A9 @ 1200Mhz
- RAM: 2 GB (4 x 4Gb SK Hynix H5TC4G83CFR)
- Storage: 1 GB (Micron MT29F8G08ABACA)
- Networking: BCM58625 internal switch (5x 1GbE ports)
- USB: 1x USB2.0
- Serial: Internal header
MX65 Hardware info:
- CPU: Broadcom BCM58625 Cortex A9 @ 1200Mhz
- RAM: 2 GB (4 x 4Gb SK Hynix H5TC4G83CFR)
- Storage: 1 GB (Micron MT29F8G08ABACA)
- Networking: BCM58625 switch (2x 1GbE ports, used for WAN ports 1 & 2)
2x Qualcomm QCA8337 switches (10x 1GbE ports, used for LAN ports 3-12)
- PSE: Broadcom BCM59111KMLG connected to LAN ports 11 & 12
- USB: 1x USB2.0
- Serial: Internal header
Notes:
- The Meraki provided GPL source are available at [2].
- Wireless capability on the MX64W and MX65W exists in the form of 2x
Broadcom BCM43520KMLG, which is not supported. These devices will work
otherwise as standard MX64 or MX65 devices.
- Early MX64 units use an A0 variant of the BCM958625 SoC which lacks
cache coherency and uses a different "secondary-boot-reg". As a
consequence a different device tree is needed.
- Installation of OpenWrt requires changing u-boot to a custom version.
This is due to the stock u-boot "nand read" command being limited to
load only 2MB, in spite of the bootkernel1 and bootkernel2 partitions
both being 3MB in the stock layout. It is also required to allow
booting via USB, enabling cache coherency and setting up the QCA
switches and Serdes link on the MX65. The modified sources for U-boot
are available for the MX64[3] and MX65[4].
- Initial work on this device used a small bootloader within the OEM
partition scheme. To allow booting of larger kernels, UBI and bootm
support has been added, along with ability to store env variables to
the NAND. The Shmoo and newly created env partitions have been moved
to the extra space available after the nvram data.
- Users who installed the previous non-UBI supporting bootloader will
need to convert to the new one before flashing a compatible image.
These steps are detailed below.
References:
[1] https://www.broadcom.com/products/embedded-and-networking-processors/c
ommunications/bcm5862x
[2] https://dl.meraki.net/wired-14-39-mx64-20190426.tar.bz2
[3] https://github.com/clayface/U-boot-MX64-20190430_MX64
[4] https://github.com/clayface/U-boot-MX64-20190430_MX65
Installation guide:
Initial installation steps:
1. Compile or obtain OpenWrt files for the MX64 or MX65, including
u-boot[3][4], initramfs and sysupgrade images.
2. A USB disk with DOS partition scheme and primary FAT partition is
required.
3. If installing onto an MX64, set up a local web server.
4. On the device, boot into diagnostic mode by holding reset when
powering on the device. Continue to hold reset until the orange LED
begins to flash white. On used units the white flash may be difficult
to see.
5. Plug an Ethernet cable into the first LAN port, set the host to
192.168.1.2 and confirm telnet connectivity to 192.168.1.1.
U-boot installation - MX64 Only:
1. Newer fw versions require extra steps to support OpenWrt. To check,
please connect via telnet and run:
`cat /sys/block/mtdblock0/ro`
If the result is 1, your mtd0 is locked will need to perform extra
steps 4 and 5 in this section. If the result is 0 then skip these.
2. Check which SoC is in use by running the following command:
`devmem 0x18000000`
If devmem is not found then try:
`devmem2 0x18000000`
If the output begins with anything between "0x3F00-0x3F03" you will
need to use the A0 release. For any other output, eg "0x3F04" or
higher, use the regular MX64 image.
3 Confirm the size of the device's boot(mtd0) partition. In most
cases it should be 0x100000 or larger. If this is the case, please
proceed to use the uboot_mx64 image. If the reported size is
0x80000, please use the uboot_mx64_small image, then follow the
later guide to change to the larger image.
`cat /proc/mtd`
Example output:
`# cat /proc/mtd
cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00040000 "boot"
mtd1: 00080000 00040000 "shmoo"
mtd2: 00300000 00040000 "bootkernel1"
mtd3: 00100000 00040000 "nvram"
mtd4: 00300000 00040000 "bootkernel2"
mtd5: 3f700000 00040000 "ubi"
mtd6: 40000000 00040000 "all"`
4. Set up a webserver to serve the appropriate uboot_mx64 from the
following location and verify the SHA512:
https://github.com/clayface/U-boot-MX64-20190430_MX64
5. (Only if mtd0 is locked) You will also need the mtd-rw.ko kernel
module to unlock the partition from the same repo. An mtd executable
is also needed to write the mtd block. Place these on the web server
as well.
6. (Only if mtd0 is locked) Use wget to retrieve the files on the MX64:
`wget http://192.168.1.2/mtd-rw.ko`
`insmod mtd-rw.ko i_want_a_brick=1`
and confirm the unlock is set with dmesg
`mtd-rw: mtd0: setting writeable flag`
7. Download the appropriate u-boot image according to step 3. If you
did not need to unlock the mtd0 partition then use dd to write the
file, with caution:
`wget http://192.168.1.2/uboot_mx64`
`dd if=uboot_mx64 of=/dev/mtdblock0`
If you needed to unlock the mtd0 partition using the mtd-rw module,
run these commands instead to install u-boot instead:
`wget http://192.168.1.2/mtd`
`chmod +x mtd`
`wget http://192.168.1.2/uboot_mx64`
`./mtd write uboot_mx64 /dev/mtd0`
8. Once this has successfully completed, power off the device. If you
did not need to install the small u-boot image, proceed to
"OpenWrt Installation". Otherwise proceed to "UBI supporting
bootloader installation".
U-boot installation - MX65 Only:
1. Obtain telnet access to the MX65.
2. Confirm the size of the device's boot(mtd0) partition. In most
cases it should be 0x100000 or larger. If this is the case, please
proceed to use the uboot_mx65 image. If the reported size is
0x80000, please use the uboot_mx65_small image, then follow the
later guide to change to the larger image.
`cat /proc/mtd`
3. Prepare a USB drive formatted to FAT. Download the appropriate
uboot_mx65 to the USB drive from the following location and verify
the SHA512:
https://github.com/clayface/U-boot-MX64-20190430_MX65
3. Once you have telnet access to the MX65, plug in the USB disk and
run the following commands, with caution. The USB disk should
automount but if it does not, you will need to power off and on
again with reset held. Depending on step 2, use the uboot_mx65 or
uboot_mx65_small image accordingly:
`cd /tmp/media/sda1`
`dd if=uboot_mx65 of=/dev/mtdblock0`
4. Once this has successfully completed, power off the device. If you
did not need to install the small u-boot image, proceed to
"OpenWrt Installation". Otherwise proceed to "UBI supporting
bootloader installation".
UBI supporting bootloader installation:
These steps need to be followed if the older u-boot image was
installed, either because the Meraki diagnostic partition scheme used
0x80000 as the mtd0 size, or because you installed the u-boot provided
while OpenWrt support was still under development. If using OpenWrt,
please make a backup before proceeding.
1. Obtain the relevant image from the MX64(A0) or MX65 u-boot repo:
`openwrt-bcm5862x-generic-meraki_XXXX-initramfs-kernel.bin`
2. With the USB drive already inserted, power on the device while
holding the reset button. A white/orange flashing pattern will
occur shortly after power on. Let go of the reset button. The
device is now booting into OpenWrt initramfs stored on the USB
disk.
3. Connect by SSH to 192.168.1.1 and flash the embedded u-boot image,
changing X as appropriate:
`mtd write /root/uboot_mx6X /dev/mtd0`
You do not need to reboot as this image can handle "Kernel-in-UBI"
OpenWrt installation.
4. You can proceed to obtain and flash the appropriate OpenWrt image
at "OpenWrt Installation" Step 3.
5. Reboot will take significantly longer due to Shmoo calibration. In
case the device does not come online after several minute, power-
cycle the device and see if it boots. If you see an orange/white
flashing pattern, this indicates UBI booting was not successful and
you will need to copy a new bcm53xx image to a USB disk before
booting it and attempting to install OpenWrt again - refer to
"OpenWrt Installation" step 1. Do not attempt to reflash u-boot in
this scenario.
OpenWrt Installation:
1. Having obtained an OpenWrt image, please copy the file
`openwrt-bcm53xx-generic-meraki_XXXX-initramfs.bin`
to the base directory of a FAT formatted USB drive using DOS
partition scheme ,where XXXX is mx64, mx64_a0 or mx65 depending on
which device you have.
2. With the USB drive already inserted, power on the device. Boot time
will be longer than usual while Shmoo calibration takes place. A
different white/orange flashing pattern will eventually occur to
indicate device is now booting into OpenWrt initramfs stored on the
USB disk.
3. Ensuring Ethernet is plugged into a LAN port with IP set in the
192.168.1.0/24 subnet excluding 192.168.1.1, use SCP to copy the
sysupgrade file to 192.168.1.1:/tmp, eg:
`scp openwrt-bcm53xx-generic-meraki_XXXX-squashfs.sysupgrade.bin\
192.168.1.1:/tmp`
4. Connect by SSH to 192.168.1.1 and run sysupgrade:
`sysupgrade \
/tmp/openwrt-bcm53xx-generic-meraki_XXXX-squashfs.sysupgrade.bin`
5. OpenWrt should now be installed on the device.
Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
[ Rebase kernel configuration for 6.6,
fix failsafe by making kmod-eeprom-at24 and kmod-dsa-qca8k built-in,
resolve conflicts,
add LED aliases,
fix eth0 MAC address at probe ]
TODO:
- fix multiple LED colors not applied despite aliases - due to custom
/etc/diag.sh
- fix race condition between preinit and probing of the DSA tree,
causing no network interface available in failsafe mode (in general
case - to allow moving drivers back to modules)
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16634
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Enable support for qca8k switch used in Meraki MX65. This is required to
properly support preinit networking on this device, otherwise unit won't
be accessible in failsafe mode.
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16634
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This is required for the AT24 EEPROM holding MAC address on Meraki
devices to probe before preinit starts, so all network devices can be
available at the preinit network setup starts
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16634
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Meraki MX6x devices use them to store MAC address, so it is required to be
built-in for networking to probe properly, before preinit network setup
happens, which in turn is required for proper failsafe mode access.
Enable CONFIG_EEPROM_AT24 for the target.
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16634
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This patch is required to support reading MAC address on Meraki MX64/65
line of devices, but also touches MR32, so let's backport it first.
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16634
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This patch adds "REQUIRE_IMAGE_METADATA=1" requirement for the MR26 and
MR32, with REQUIRE_IMAGE_METADATA explicitly 0 elsewhere. This is based
upon bcm63xx's base-files/lib/upgrade/platform.sh.
Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16634
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Oversight from 8d302f5ebc , which requires
this to work. I couldn't test it as I ended up wiping my UBI volume by
accident.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16580
Signed-off-by: Robert Marko <robimarko@gmail.com>
This is needed in order to get a MAC address from UBI.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16580
Signed-off-by: Robert Marko <robimarko@gmail.com>
linux,ubi expects the volname variable, not volume.
This will fix NVMEM-on-UBI.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16580
Signed-off-by: Robert Marko <robimarko@gmail.com>
Since kernel_oldconfig doesn't work properly with it, I ran that first
and then moved all the config symbols to config-6.6 and found the
differences.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16580
Signed-off-by: Robert Marko <robimarko@gmail.com>
make kernel_oldconfig doesn't seem to work with this. Handle manually.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16580
Signed-off-by: Robert Marko <robimarko@gmail.com>
Adjusts the default config to modern kernels.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16580
Signed-off-by: Robert Marko <robimarko@gmail.com>
The ImageBuilder when using the profile for the OpenWrt One has been
failing because the initramfs image included in the ubinized image could
not be found.
Fix that by using the staged initramfs instead when using the
ImageBuilder.
Fixes: 797904b3cb ("mediatek/filogic: add OpenWrt One support")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Introduce EN7581 SoC support with currently rfb board supported.
This is a new 64bit SoC from Airoha that is currently almost fully
supported upstream with only the DTS missing. Setting source-only
waiting for the full upstream support to be completed.
Link: https://github.com/openwrt/openwrt/pull/16730
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Backport alloc_netdev_dummy patch from upstream needed for new Airoha
EN7581 SoC.
Refresh all affected patch with make target/linux/refresh.
Link: https://github.com/openwrt/openwrt/pull/16730
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
In preparation for EN7581 SoC support, move en7523 in dedicated
subtarget.
This is needed as EN7581 is now 64bit but en7523 is 32bit hence have
very different kernel config.
Also rename patch to a more friendly number sequence.
Link: https://github.com/openwrt/openwrt/pull/16730
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
COMFAST CF-E355AC v2 is a ceiling mount AP with PoE support,
based on Qualcomm/Atheros QCA9531 + QCA9886.
Short specification:
- 1x 10/100 Mbps Ethernet, with PoE support (wan/eth1)
- 1x 10/100/1000 Mbps Ethernet, with PoE support (lan/eth0)
- 128MB of RAM (DDR2)
- 16 MB of FLASH
- 2T2R 2.4 GHz, 802.11b/g/n (wlan2g)
- 2T2R 5 GHz, 802.11ac/n/a, WAVE 2 (wlan5g)
- built-in 4x 3 dBi antennas
- output power (max): 500 mW (27 dBm)
- 1x RGB LED, 1x button
- separate watchdog chip via GPIO (bottom of PCB?)
- UART header on PCB with proper labelling
Markings on PCB:
* R121QH_VER2.1 (silkscreen, bottom)
* CF-WA800 (sticker, top)
Initial flashing instructions:
Original firmware is based on OpenWrt.
a) Use sysupgrade image directly in vendor GUI.
b) Or via tftp:
ipaddr=192.168.1.1
serverip=192.168.1.10
bootfile="firmware.bin"
c) Or possibly via u-boot's `httpd` command.
MAC-address mapping follows original firmware:
* eth1 (wan) is the lowest mac address (art @ 0x0)
* eth0 (lan) uses eth1 + 1 (art @ 0x1002)
* wlan2g (phy1) uses eth1 + 2 (art @ 0x06)
* wlan5g (phy0) uses eth1 + 10 (not present in art)
* unused MAC (eth1 + 3) (art @ 0x5006)
Art dump (`hexdump /dev/mtd1 |grep ZZZZ`):
0000000 ZZZZ XXXX XXX0 ZZZZ XXXX XXX2 ffff ffff
0001000 0202 ZZZZ XXXX XXX1 0000 0000 0000 0000
0005000 202f bd21 0101 ZZZZ XXXX XXX3 0000 2000
Root access to original firmware (only via UART) can be achieved by
making a backup of configuration from web interface. Backup contains
whole `/etc` directory...
Signed-off-by: Priit Laes <plaes@plaes.org>
Link: https://github.com/openwrt/openwrt/pull/16556
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Fix conditions for handling offloaded packets
Fixes: #13430
Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Set the physical switch to KEY_RFKILL, since its previous value
(KEY_SETUP) is unsupported. This should also make the KEY_RESET button
functional, by allowing the gpio-button-hotplug kmod to load.
Signed-off-by: Chris Jones <cmsj@tenshu.net>
Link: https://github.com/openwrt/openwrt/pull/16564
Signed-off-by: Robert Marko <robimarko@gmail.com>
AT803X_PHY was replaced with QCA83XX_PHY which handles external switches.
But for internal ones like in the Meraki MR24, AT803X_PHY is needed.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16737
Signed-off-by: Robert Marko <robimarko@gmail.com>