Buffalo LinkStation LS421DE is a dual bay NAS, based on Marvell Armada 370
Hardware:
SoC: Marvell Armada 88F6707-A1
CPU: Cortex-A9 1200 MHz, 1 core
Flash: SPI-NOR 1 MiB, NAND 512 MiB
RAM: DDR3 512 MiB
Ethernet: 1x 10/100/1000 Mbps
USB: 1x 2.0, 1x 3.0
SATA: 2x 3.0 Gbps
LEDs/Input : 5x / 2x (1x button, 1x slide-switch)
RTC: Ricoh RS5C372A, I2C, no battery
Flash instruction (UART+TFTP):
1. Downgrade the OEM firmware to 1.34 version (BUFFALO_BOOTVER=0.13)
2. Remove any hard drive from inside the bays.
3. Boot the Openwrt initramfs image using the U-Boot serial console:
tftpboot 0x1200000 buffalo_ls421de-initramfs-kernel.bin
bootm 0x1200000
4. Flash the sysupgrade image using the Openwrt console:
sysupgrade -n buffalo_ls421de-squashfs-sysupgrade.bin
5. Wait until it finish, the device will reboot with Openwrt installed
on the NAND flash.
Note:
- Device shuting down doesn't work, even if the power slide switch is
used. We must first, via MDIO, set the unused LED2 at the ethernet
phy0 to off state. Reboot works ok.
Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
Reviewed-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
This was introduced with 014d3b98b9 , which
is almost 10 years old. uClibc-ng does not suffer from this problem.
Note that this hack prevents libstdc++ from using C++11 math functions.
Tested by removing all of the mpd patches designed to fix this and
compiling.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Removed sys/cdefs usage. The header is deprecated.
Removed canonicalize_file_name define. It's already fixed upstream.
Added --disable-debuginfod. Seems to be needed.
Modified patch 005 to build more stuff. It was failing before. It still
only builds libraries.
Modified patch 100 to use strerror under non-glibc. It is used under
glibc as strerror is not thread safe. It is under musl and uClibc-ng.
strerror_l is not available under uClibc-ng.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
CONFIG_WRITE functionality is not used and could be removed.
Looks helpful for devices with small flash because wpad is also affected.
Little testing shows that about 6 KB could be saved.
Signed-off-by: Kirill Lukonin <klukonin@gmail.com>
Updates the 88W8964 firmware used in the Linksys WRT3200ACM and WRT32X
[v9.3.2.6 -> v9.3.2.12]
Removes 0c43219 ("mwlwifi: Fix loading with backports v5.3")
as it has been merged upstream.
Unfortunately, there is a bug wherein Kaloz's repo, the version
detection mechanism for fixing vendor commands doesn't work.
It pulls in the Linux kernel version, which as of this time is
"4.14.y" or "4.19.y"
However, the proper behaviour is that it should pull in the mac80211
backports version which as of now is "5.4.27"
The included patch works around this using a backports define found
only on versions >5.3, "VENDOR_CMD_RAW_DATA".
Signed-off-by: Jose Olivera <oliverajeo@gmail.com>
The USB LED assignment to internal ports was swapped.
Fix it.
We also explicitly checked that the LED label numbers match those
on the device.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2.4 GHz Wifi on ath79 is set up in 10-ath9k-eeprom, but in ar71xx
it was done with ath79_register_wmac.
Thus, the following errors are observed on the device:
ath: phy1: Unable to initialize hardware; initialization status: -5
ath9k 18100000.wmac: failed to initialize device
ath9k: probe of 18100000.wmac failed with error -5
This patch changes the ath79 support to properly use wmac as well.
This will also require fixing the MAC address in a different way.
Signed-off-by: Guillaume Lefebvre <guillaume@zelig.ch>
[several adjustments to 10-fix-wifi-mac, use correct MAC address,
rewrite commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Including the local build key in /etc/opkg/keys isn't feasible when
building on the buildbot: The included key collides with its copy
already in openwrt-keyring which breaks the ImageBuilder.
Not including a locally generated key also makes the base-files package
more reproducible.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Device with 4 MiB flash and 32 MiB RAM won't be able to run OpenWrt in
a sufficient manner without tweaks, so don't build images for them by
default.
This includes all BCM6338, BCM6345 and BCM6348 "generic" devices,
as there are no supported devices of these with more than that.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Upstream pinctrl driver in drivers/staging uses
groups/function/ralink,num-gpios instead of
ralink,group/ralink,function/ralink,nr-gpio
Replace these properties in dts as well as the pinctrl driver in
patches-4.14.
This commit is created using:
sed -i 's/ralink,group/groups/g'
sed -i 's/ralink,function/function/g'
sed -i 's/ralink,nr-gpio/ralink,num-gpios/g'
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
previously we rely on the failsafe setup in preinit scripts to disable
built-in switch implicitly for single-port devices. This doesn't work
anymore due to preinit script removal.
this patch explicitly disable built-in switch for needed devices.
Fixes: a8d62a4eb1 ("ramips: remove set_preinit_iface script")
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
current preinit code in base-files doesn't config switch when there are
no port roles defined. But this kind of configuration exists on single
port devices where switch vlan is simply disabled.
configure reset and enable_vlan property when a switch node exist.
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
default initramfs for 5.4 kernel is larger than 4M, causing build error
for oversized initramfs image.
disable these images because we have no mechanism for ignoring initramfs
errors and the squashfs image will be larger than initramfs anyway.
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
upstream driver merged 3 separated gpio banks into one gpio node.
and gpioX Y in our local driver should be replaced with gpio X*32+Y.
This patch is created using the following sed command:
sed -i -r 's/(.*)gpio([0-9]) ([0-9]+)(.*)/echo "\1gpio $((\2*32+\3))\4"/ge'
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
This hack is needed for old ethernet driver:
On mt7620, we have two exposed RGMII ports that connects to builtin
switch. However, swconfig has no way to interact with phy subsystem.
As a result, we have to register both PHYs to ethernet mac instead
and this patch prevents main ethernet interface from going down due
to phy link changes.
Also rename the patch for its actual purpose.
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
increase spi frequency for both devices to 45MHz.
while at it, also remove m25p,fast-read for newifi d1 as it's only
needed when spi clock is higher than 50MHz.
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
These are boards known to start on 3-byte address mode, which requires
broken-flash-reset if 4B_OPCODES isn't supported by the flash.
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Instead of resetting flash to 3B address on remove hook, this
implementation only enters 4B mode when needed, which prevents more
unexpected reboot stuck. This implementation makes it only break when
a kernel panic happens during flash operation on 16M+ areas.
Also silent broken-flash-reset warning. We are not dealing with vendors
and it's unpleasant for users to see that unnecessary and long WARN_ON
print.
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
The file /lib/functions/system.sh depends on find_mtd_index() and
find_mtd_part() located in /lib/function.sh, so let's source that
file.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
The default_postinst() function in /lib/functions.sh sources
/lib/functions/system.sh before cycling through uci-defaults files.
This creates a pseudo-cyclic dependency as system.sh also uses
functions that are located in functions.sh. Despite that, there
is actually only one uci-defaults file in the entire repo that needs
system.sh, and this one contains an explicit source for system.sh
anyway.
Consequently, this patch removes the sourcing of system.sh in
functions.sh. There are no relevant uses in packages, routing and
luci repositories.
This may require adjustments for downstream, though.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This target has been on kernel 4.19 for nine months now [1], and
has had testing support for even longer [2].
This should be long enough to drop support for kernel 4.14.
[1] 545bfbc3a9 ("cns3xxx: switch to kernel 4.19")
[2] c6bebe1a94 ("cns3xxx: add support for kernel 4.19")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
The "proper" vendor prefix for Ubiquiti is "ubnt", this is used in
all targets except ramips and also recommended by the kernel.
This patch adjusts the various board/image/device name variables
accordingly. Since we touch it anyway, this also adds the space
in "EdgeRouter X" as a hyphen to those variables to really make
them consistent with the model name.
While at it, create a real shared definition for the devices in
image/mt7621.mk instead of deriving one device from another.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Since stable kernel for this target is still 4.14, kernel 4.19
has never been used much (and actually was broken for some devices).
So, since we bump testing kernel to 5.4, there is no real need to
keep 4.19 and have an additional version to care about.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This uses 5.4 as testing kernel. Since 4.19 has not seen broad
testing yet, just keep 4.14 as stable kernel until 5.4 is ready.
Tested on Comtrend AR-5387un (Thanks to @Noltari).
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
In kernel patch 92ce7e83b4e5 ("driver_find_device: Unify the match
function with class_find_device()") the arguments of functions used
with driver_find_device are adjusted. Do the same for our local
user.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
The helper syscon_regmap_lookup_by_pdevname has been removed in kernel patch
29d14b668d2f ("mfd: Remove unused helper syscon_regmap_lookup_by_pdevname")
due to lack of users.
However, we use this function in our local pinctrl drivers for BCM6358 and
BCM6368. Thus, we have to add it locally.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
In kernel 5.4 -Werror=implicit-fallthrough is treated as error:
arch/mips/bcm63xx/cpu.c: In function 'detect_cpu_clock':
arch/mips/bcm63xx/cpu.c:158:2: error: this statement may fall through [-Werror=implicit-fallthrough=]
{
^
arch/mips/bcm63xx/cpu.c:179:2: note: here
case BCM6328_CPU_ID:
^~~~
cc1: all warnings being treated as errors
This can be fixed by adding "Fall through" as a comment where intended,
and has to be fixed by returning a proper default otherwise.
In case of the default clock frequency for BCM6318 we fixed this by
returning the default value taken from BCM6328 and BCM6362.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This adds two fixes for compilation with kernel 5.4:
1. dev_open from include/linux/netdevice.h needs a second parameter
since kernel 5.0:
00f54e68924e ("net: core: dev: Add extack argument to dev_open()")
2. get_ds() macro definition has been dropped since kernel 5.1:
736706bee329 ("get rid of legacy 'get_ds()' function")
Since get_ds() has been just a macro before, replace it in
the driver instead of creating a version switch.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This patch follows the other patches that added the watchdog
core to various (armvirt, malta, ath79, ...) targets that
have been hit by the following build error:
Package kmod-hwmon-sch5627 is missing dependencies for the following libraries:
watchdog.ko
In theory, we could have just added the CONFIG_WATCHDOG_CORE=y
to the Kconfig variable of kmod-hwmon-sch5627's package definition.
This would have forced the watchdog core to be builtin and less
architectures would need to be updated. But we might as well follow
through here.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Refresh patches to make them apply to kernel 5.4.
The removed patches have been merged upstream.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Copy config and patches to kernel 5.4.
make kernel_oldconfig has been run on 4.19 beforehand.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Since kernel 4.15, init_timer is not available anymore, and has been
replaced by timer_setup. The fixes compilation of wl_linuc.c, which
returned the following errors beforehand (line-wrapped manually):
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c: In function 'wl_init_timer':
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c:2576:2: error: implicit
declaration of function 'init_timer'; did you mean 'init_timers'?
[-Werror=implicit-function-declaration]
init_timer(&t->timer);
^~~~~~~~~~
init_timers
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c:2577:10: error:
'struct timer_list' has no member named 'data'
t->timer.data = (ulong) t;
^
.../broadcom-wl-5.10.56.27.3/driver/wl_linux.c:2578:20: error: assignment
to 'void (*)(struct timer_list *)' from incompatible pointer type
'void (*)(ulong)' {aka 'void (*)(long unsigned int)'}
[-Werror=incompatible-pointer-types]
t->timer.function = wl_timer;
This should fix build of several devices on bcm63xx with testing
kernel (4.19).
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
I-O DATA WN-AX2033GR is roughly the same as I-O DATA
WN-AX1167GR2. The difference is Wi-Fi feature.
Specification
=============
- SoC: MediaTek MT7621A
- RAM: DDR3 128 MiB
- Flash Memory: NAND 128 MiB (Spansion S34ML01G200TF100)
- Wi-Fi: MediaTek MT7603E
- Wi-Fi: MediaTek MT7615
- Ethernet: 5x 10 Mbps / 100 Mbps / 1000 Mbps (1x WAN, 4x LAN)
- LED: 2x green LED
- Input: 2x tactile switch, 1x slide switch
- Serial console: 57600bps, PCB through hole J5 (Vcc, TX, RX, NC, GND)
- Power: DC 12V
This device only supports channel 1-13 and 36-140.
Thus, narrower frequency limits compared to other devices are required
for limiting wi-fi frequency correctly.
Without this, non-supported frequencies are activated.
Flash instructions
==================
1. Open the router management page (192.168.0.1).
2. Update router firmware using "initramfs-kernel.bin".
3. After updating, run sysupgrade with "sysupgrade.bin".
Recovery instructions
=====================
WN-AX2033GR contains Zyxel Z-LOADER
1. Setup TFTP server (IP address: 10.10.10.3).
2. Put official firmware into TFTP server directory (distribution site:
https://www.iodata.jp/lib/software/w/2068.htm)
3. Connect WX-AX2033GR Ethernet port and computer that runs TFTP server.
4. Connect to serial console.
5. Interrupt booting by Esc key.
6. Flash firmware using "ATNR 1,[firmware filename]" command.
Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
[adjust for kernel 5.4, add recovery instructions/frequency comment]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>