Re: [PATCH 3/3] realtek: add support for Panasonic Switch-M8eG PN28080K
Hi Hiroshi, On Sun, 2021-10-03 at 15:53 +0900, INAGAKI Hiroshi wrote: > Panasonic M8eG PN28080K is a 8 + 1 port gigabit switch, based on > RTL8380M. > > Specification: > > - SoC : Realtek RTL8380M > - RAM : DDR3 128 MiB (Winbond W631GG8KB-15) > - Flash : SPI-NOR 32 MiB (Macronix MX25L25635FMI-10G) > - Ethernet : 10/100/1000 Mbps x8 + 1 > - port 1-8: TP, RTL8218B (SoC) > - port 9 : SFP, RTL8380M (SoC) > - LEDs/Keys : 7x / 1x > - UART : RS-232 port on the front panel (connector: RJ-45) > - 3:TX, 4:GND, 5:GND, 6:RX (pin number: RJ-45) > - 9600n8 > - Power : 100-240 VAC, 50/60 Hz, 0.5 A > - Plug: IEC 60320-C13 > - Stock OS : VxWorks based > > Flash instruction using initramfs image: Looks quite convoluted. Kudos on working this out! > > 1. Prepare the TFTP server with the IP address 192.168.1.111 > 2. Rename the OpenWrt initramfs image to "0101A8C0.img" and place it to > the TFTP directory > 3. Download the official upgrading firmware (ex: pn28080k_v3.rom) > and place it to the TFTP directory > 4. Boot M8eG and interrupt the U-Boot with Ctrl + C keys > 5. Execute the following commands and boot with the OpenWrt initramfs > image > > rtk network on > tftpboot 0x8100 > bootm > > 6. Backup mtdblock files to the computer by scp or anything and reboot > 7. Interrupt the U-Boot and execute the following commands to re-create > filesystem in the flash > > ffsmount c:/ > ffsfmt c:/ > > this step takes a long time, about ~ 4 mins > > 8. Execute the following commands to put the official images to the > filesystem > > updatert > > example: > > updatert pn28080k_v3.rom > > this step takes about ~ 40 secs > > 9. Set the environment variables of the U-Boot by the following commands > > setenv loadaddr 0xb4e0 > setenv bootcmd bootm > saveenv > > 10: Download the OpenWrt initramfs image and boot with it > > tftpboot 0x8100 0101A8C0.img > bootm > > 11: On the initramfs image, download the sysupgrade image and perform > sysupgrade with it > > sysupgrade > > 12: Wait ~ 120 seconds to complete flashing > > Note: > > - "Switch-M8eG" is a model name, and "PN28080K" is a model number. > Switch-M8eG has an another (old) model number ("PN28080"), it's not a > Realtek based hardware. > > - Switch-M8eG has a "POWER" LED (Green), but it's not connected to any > GPIO pin. > > - The U-Boot checks the runtime images in the flash when booting and > fails to execute anything in "bootcmd" variable if the images are not > exsisting. > > - A filesystem is formed in the flash (0x10-0x1DF) on the stock > firmware and it includes the stock images, configuration files and > checksum files. It's unknown format, can't be managed on the OpenWrt. > To get the enough space for OpenWrt, move the filesystem to the head > of "fs_reserved" partition by execution of "ffsfmt" and "updatert". > > Back to the stock firmware: > > 1. Delete "loadaddr" variable and set "bootcmd" to the original value > > on U-Boot: > > setenv loadaddr > setenv bootcmd 'bootm 0x8100' > > on OpenWrt: > > fw_setenv loadaddr > fw_setenv bootcmd 'bootm 0x8100' > > 2. Perform reset or reboot > > on U-Boot: > > reset > > on OpenWrt: > > reboot > > Signed-off-by: INAGAKI Hiroshi > --- [...] > diff --git > a/target/linux/realtek/dts-5.10/rtl83xx_panasonic_mxxeg-pn28xx0k.dtsi > b/target/linux/realtek/dts-5.10/rtl83xx_panasonic_mxxeg-pn28xx0k.dtsi > new file mode 100644 > index 00..d41213f1fd > --- /dev/null > +++ b/target/linux/realtek/dts-5.10/rtl83xx_panasonic_mxxeg-pn28xx0k.dtsi > @@ -0,0 +1,216 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > + > +#include > +#include > + > +/ { > + chosen { > + bootargs = "console=ttyS0,9600"; > + }; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x800>; > + }; > + > + leds: leds { > + compatible = "gpio-leds"; > + > + any_collision { > + label = "amber:any_col"; Should we start using 'function' and 'color' on 5.10 instead of (or in addition to) 'label'? The functions are non-standard, but the #DEFINE-s in led-common.h are only strings anyway. Speaking of following the dt-bindings... I'm aware that you've already discussed the node names with Adrian, but leds-gpio.yaml currently specifies that child node names shall match "(^led-[0-9a-f]$|led)". Adrian, what do you think about following the spec? > + gpios = < 0 GPIO_ACTIVE_LOW>; > + }; > + > + giga { > + label = "green:giga"; > + gpios = < 8 GPIO_ACTIVE_LOW>; > + }; > + > + 100m { > +
Re: [PATCH 2/3] realtek: enable gpio-restart driver in target
Hi, On Sun, 2021-10-03 at 15:53 +0900, INAGAKI Hiroshi wrote: > On Panasonic Switch-M8eG PN28080K, a GPIO pin on PCA9539 chip is used > for for hard-reset of the system. To use this, enable gpio-restart > driver and built-in to the kernel. > > Signed-off-by: INAGAKI Hiroshi As made clear by Paul Fertser, gpio-restart isn't actually used unless _machine_restart() is also removed. Although I don't mind adding the correct nodes to the DTS already (maybe others disagree). Adding the driver already would only have the effect (benefit?) of grabbing the relevant GPIO, and preventing users from using it accidentally. I definitely think this driver should definitely be enabled, but do we wait with enabling it until we can remove _machine_restart? Or can this already be merged as some sort of preparatory patch? Best, Sander ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH 0/3] realtek: add support for Panasonic Switch-M8eG PN28080K
Hi, On Sun, 2021-10-03 at 15:53 +0900, INAGAKI Hiroshi wrote: [...] > > INAGAKI Hiroshi (3): > realtek: enable pca953x driver for target > realtek: enable gpio-restart driver in target > realtek: add support for Panasonic Switch-M8eG PN28080K > > target/linux/realtek/config-5.10 | 4 + > target/linux/realtek/config-5.4 | 4 + > .../rtl8380_panasonic_m8eg-pn28080k.dts | 103 > .../rtl83xx_panasonic_mxxeg-pn28xx0k.dtsi | 216 + > .../rtl8380_panasonic_m8eg-pn28080k.dts | 107 + > .../rtl83xx_panasonic_mxxeg-pn28xx0k.dtsi | 220 ++ > target/linux/realtek/image/Makefile | 10 + > 7 files changed, 664 insertions(+) > create mode 100644 > target/linux/realtek/dts-5.10/rtl8380_panasonic_m8eg-pn28080k.dts > create mode 100644 > target/linux/realtek/dts-5.10/rtl83xx_panasonic_mxxeg-pn28xx0k.dtsi > create mode 100644 > target/linux/realtek/dts-5.4/rtl8380_panasonic_m8eg-pn28080k.dts > create mode 100644 > target/linux/realtek/dts-5.4/rtl83xx_panasonic_mxxeg-pn28xx0k.dtsi I guess this is more a question for the maintainers: Since the realtek target now uses the 5.10 kernel in master, does it still make sense to add support for 5.4? Hiroshi has backported the upstream drivers for 5.10 (thanks again!), so both kernel version now have different quirks. Personnaly, I would prefer not to have to put any energy in 5.4 anymore. Best, Sander ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[PATCH] dnsmasq: fix the dynamic dns object names patch
We can't use booleans, since we're not including stdbool.h. Use integers instead. Fixes: 0b79e7c01e ("dnsmasq: generate the dns object name dynamically") Signed-off-by: Rui Salvaterra --- .../services/dnsmasq/patches/200-ubus_dns.patch| 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package/network/services/dnsmasq/patches/200-ubus_dns.patch b/package/network/services/dnsmasq/patches/200-ubus_dns.patch index 03fc5b50b3..b8c4e44952 100644 --- a/package/network/services/dnsmasq/patches/200-ubus_dns.patch +++ b/package/network/services/dnsmasq/patches/200-ubus_dns.patch @@ -60,17 +60,17 @@ + *dest = blobmsg_get_string(val); +} + -+static bool ubus_dns_doctor(const char *name, int ttl, void *p, int af) ++static int ubus_dns_doctor(const char *name, int ttl, void *p, int af) +{ + struct blob_buf *b; + char *addr; + + if (!name) -+ return false; ++ return 0; + + b = ubus_dns_notify_prepare(); + if (!b) -+ return false; ++ return 0; + + blobmsg_add_string(b, "name", name); + @@ -80,7 +80,7 @@ + + addr = blobmsg_alloc_string_buffer(b, "address", INET6_ADDRSTRLEN); + if (!addr) -+ return false; ++ return 0; + + inet_ntop(af, p, addr, INET6_ADDRSTRLEN); + blobmsg_add_string_buffer(b); @@ -89,14 +89,14 @@ + ubus_dns_notify("dns_result", ubus_dns_doctor_cb, ); + + if (!addr) -+ return false; ++ return 0; + + return inet_pton(af, addr, p) == 1; +} +#else -+static bool ubus_dns_doctor(const char *name, int ttl, void *p, int af) ++static int ubus_dns_doctor(const char *name, int ttl, void *p, int af) +{ -+ return false; ++ return 0; +} +#endif + -- 2.33.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [PATCH 2/2] ath79: mikrotik: Change the moment of routerboot partition parser init
> OK, let’s do that as a workaround and hope that deferred probes won’t overlap > past late_initcall() What about using register_mtd_user function: routerboot can call rb_hardconfig_init and rb_softconfig_init when mtd subsystem notifies it about a new mtd device? It works. --- .../drivers/platform/mikrotik/rb_hardconfig.c | 12 -- .../drivers/platform/mikrotik/rb_softconfig.c | 12 -- .../drivers/platform/mikrotik/routerboot.c| 24 +-- .../drivers/platform/mikrotik/routerboot.h| 5 ++-- 4 files changed, 30 insertions(+), 23 deletions(-) diff --git a/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c b/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c index e6a6928896..724851474e 100644 --- a/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c +++ b/target/linux/generic/files/drivers/platform/mikrotik/rb_hardconfig.c @@ -676,10 +676,9 @@ static ssize_t hc_wlan_data_bin_read(struct file *filp, struct kobject *kobj, return count; } -int __init rb_hardconfig_init(struct kobject *rb_kobj) +int __init rb_hardconfig_init(struct kobject *rb_kobj, struct mtd_info *mtd) { struct kobject *hc_wlan_kobj; -struct mtd_info *mtd; size_t bytes_read, buflen, outlen; const u8 *buf; void *outbuf; @@ -690,20 +689,19 @@ int __init rb_hardconfig_init(struct kobject *rb_kobj) hc_kobj = NULL; hc_wlan_kobj = NULL; -// TODO allow override -mtd = get_mtd_device_nm(RB_MTD_HARD_CONFIG); -if (IS_ERR(mtd)) +ret = __get_mtd_device(mtd); +if (IS_ERR(ret)) return -ENODEV; hc_buflen = mtd->size; hc_buf = kmalloc(hc_buflen, GFP_KERNEL); if (!hc_buf) { -put_mtd_device(mtd); +__put_mtd_device(mtd); return -ENOMEM; } ret = mtd_read(mtd, 0, hc_buflen, _read, hc_buf); -put_mtd_device(mtd); +__put_mtd_device(mtd); if (ret) goto fail; diff --git a/target/linux/generic/files/drivers/platform/mikrotik/rb_softconfig.c b/target/linux/generic/files/drivers/platform/mikrotik/rb_softconfig.c index 070bd32d5a..59c42e4cf4 100644 --- a/target/linux/generic/files/drivers/platform/mikrotik/rb_softconfig.c +++ b/target/linux/generic/files/drivers/platform/mikrotik/rb_softconfig.c @@ -705,9 +705,8 @@ mtdfail: static struct kobj_attribute sc_kattrcommit = __ATTR(commit, RB_SC_RMODE|RB_SC_WMODE, sc_commit_show, sc_commit_store); -int __init rb_softconfig_init(struct kobject *rb_kobj) +int __init rb_softconfig_init(struct kobject *rb_kobj, struct mtd_info *mtd) { -struct mtd_info *mtd; size_t bytes_read, buflen; const u8 *buf; int i, ret; @@ -716,20 +715,19 @@ int __init rb_softconfig_init(struct kobject *rb_kobj) sc_buf = NULL; sc_kobj = NULL; -// TODO allow override -mtd = get_mtd_device_nm(RB_MTD_SOFT_CONFIG); -if (IS_ERR(mtd)) +ret = __get_mtd_device(mtd); +if (IS_ERR(ret)) return -ENODEV; sc_buflen = mtd->size; sc_buf = kmalloc(sc_buflen, GFP_KERNEL); if (!sc_buf) { -put_mtd_device(mtd); +__put_mtd_device(mtd); return -ENOMEM; } ret = mtd_read(mtd, 0, sc_buflen, _read, sc_buf); -put_mtd_device(mtd); +__put_mtd_device(mtd); if (ret) goto fail; diff --git a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c index 4c8c0bfac5..77f39709ce 100644 --- a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c +++ b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.c @@ -160,25 +160,35 @@ fail: return ret; } +static void routerboot_mtd_notifier_add(struct mtd_info *mtd) +{ +if (mtd->type != MTD_NORFLASH) +return; +if (!strcmp(mtd->name, RB_MTD_HARD_CONFIG)) { +rb_hardconfig_init(rb_kobj, mtd); +} else if (!strcmp(mtd->name, RB_MTD_SOFT_CONFIG)) { +rb_softconfig_init(rb_kobj, mtd); +} +} + +static struct mtd_notifier routerboot_mtd_notifier = { +.add = routerboot_mtd_notifier_add, +}; + static int __init routerboot_init(void) { rb_kobj = kobject_create_and_add("mikrotik", firmware_kobj); if (!rb_kobj) return -ENOMEM; -/* - * We ignore the following return values and always register. - * These init() routines are designed so that their failed state is - * always manageable by the corresponding exit() calls. - */ -rb_hardconfig_init(rb_kobj); -rb_softconfig_init(rb_kobj); +register_mtd_user(_mtd_notifier); return 0; } static void __exit routerboot_exit(void) { +unregister_mtd_user(_mtd_notifier); rb_softconfig_exit(); rb_hardconfig_exit(); kobject_put(rb_kobj);// recursive afaict diff --git a/target/linux/generic/files/drivers/platform/mikrotik/routerboot.h b/target/linux/generic/files/drivers/platform/mikrotik/routerboot.h index
Re: ath79 / TP-Link CPE510 / tftp: recovery.bin
On Fri, Nov 12, 2021 at 11:12:03AM +0100, Vincent Wiemann wrote: > > Press CTRL+B to enter SafeLoader: 1 > > Have you tried that? yes, after this it asks for a password, which is not 'admin' or 'Admin' or 'tpl'... ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[PATCH v2] bcm53xx: add support for Asus RT-AC88U
Asus RT-AC88U is an AC3100 router featuring 9 Ethernet ports over the integrated Broadcom and the external Realtek switch. Hardware info: * Processor: Broadcom BCM4709C0KFEBG dual-core @ 1.4 GHz * Switch: BCM53012 in BCM4709C0KFEBG & external RTL8365MB * DDR3 RAM: 512 MB * Flash: 128 MB (ESMT F59L1G81LA-25T) * 2.4GHz: BCM4366 4×4 2.4/5G single chip 802.11ac SoC * 5GHz: BCM4366 4×4 2.4/5G single chip 802.11ac SoC * Ports: 8 Ports, 1 WAN Ports Flashing instructions: * Boot to CFE Recovery Mode by holding the reset button while power-on. * Connect to the router with an ethernet cable. * Set IPv4 address of the computer to 192.168.1.2 subnet 255.255.255.0. * Head to http://192.168.1.1. * Reset NVRAM. * Upload the OpenWrt image. CFE bootloader may reject flashing the image due to image integrity check. In that case, follow the instructions below. * Rename the OpenWrt image as firmware.trx. * Run a TFTP server and make it serve the firmware.trx file. * Run the URL below on a browser or curl. http://192.168.1.1/do.htm?cmd=flash+-noheader+192.168.1.2:firmware.trx+flash0.trx Signed-off-by: Arınç ÜNAL --- target/linux/bcm53xx/base-files/etc/board.d/01_leds | 6 ++ .../linux/bcm53xx/base-files/etc/board.d/02_network | 3 +++ .../bcm53xx/base-files/etc/init.d/set_nvram_vars| 13 + target/linux/bcm53xx/image/Makefile | 8 4 files changed, 30 insertions(+) create mode 100755 target/linux/bcm53xx/base-files/etc/init.d/set_nvram_vars diff --git a/target/linux/bcm53xx/base-files/etc/board.d/01_leds b/target/linux/bcm53xx/base-files/etc/board.d/01_leds index aba526b9c3..f37fa79d4f 100644 --- a/target/linux/bcm53xx/base-files/etc/board.d/01_leds +++ b/target/linux/bcm53xx/base-files/etc/board.d/01_leds @@ -8,6 +8,12 @@ netgear,r8000) ucidef_set_led_usbport "usb2" "USB 2.0" "bcm53xx:white:usb2" "usb1-port2" "usb2-port2" ucidef_set_led_usbport "usb3" "USB 3.0" "bcm53xx:white:usb3" "usb1-port1" "usb2-port1" "usb4-port1" ;; +asus,rt-ac88u) + ucidef_set_led_default "power" "Power" "white:power" "1" + ucidef_set_led_netdev "lan" "LAN" "white:lan" "eth1" + ucidef_set_led_usbport "usb2" "USB 2.0" "white:usb2" "usb1-port2" + ucidef_set_led_usbport "usb3" "USB 3.0" "white:usb3" "usb1-port1" "usb4-port1" + ;; esac board_config_flush diff --git a/target/linux/bcm53xx/base-files/etc/board.d/02_network b/target/linux/bcm53xx/base-files/etc/board.d/02_network index 6d970e1d0e..822320c0a6 100644 --- a/target/linux/bcm53xx/base-files/etc/board.d/02_network +++ b/target/linux/bcm53xx/base-files/etc/board.d/02_network @@ -13,6 +13,9 @@ bcm53xx_setup_interfaces() asus,rt-ac87u) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan" ;; + asus,rt-ac88u) + ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 extsw" "wan" + ;; linksys,panamera) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5 lan6 lan7 lan8 extsw" "wan" ;; diff --git a/target/linux/bcm53xx/base-files/etc/init.d/set_nvram_vars b/target/linux/bcm53xx/base-files/etc/init.d/set_nvram_vars new file mode 100755 index 00..9c2b3ebf4d --- /dev/null +++ b/target/linux/bcm53xx/base-files/etc/init.d/set_nvram_vars @@ -0,0 +1,13 @@ +#!/bin/sh /etc/rc.common + +START=99 +boot() { + . /lib/functions.sh + + case $(board_name) in + asus,rt-ac88u) + # clear et0macaddr which makes cfe recovery mode inaccessible, set eth1 & eth2 mac addresses and wireless LEDs behaviour variables on nvram + nvram unset et0macaddr set et1macaddr=$(nvram get 0:macaddr) set et2macaddr=$(nvram get 1:macaddr) set 0:ledbh9=0x7 set 1:ledbh9=0x7 && nvram commit + ;; + esac +} diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile index aadac9c3d4..fc85a131cc 100644 --- a/target/linux/bcm53xx/image/Makefile +++ b/target/linux/bcm53xx/image/Makefile @@ -167,6 +167,14 @@ define Device/asus_rt-ac87u endef TARGET_DEVICES += asus_rt-ac87u +define Device/asus_rt-ac88u + $(call Device/asus) + DEVICE_MODEL := RT-AC88U + DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES) + ASUS_PRODUCTID := RT-AC88U +endef +TARGET_DEVICES += asus_rt-ac88u + define Device/asus_rt-n18u $(call Device/asus) DEVICE_MODEL := RT-N18U -- 2.25.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: ath79 / TP-Link CPE510 / tftp: recovery.bin
> Press CTRL+B to enter SafeLoader: 1 Have you tried that? On 11/12/21 9:09 AM, Bastian Bittorf wrote: After flashing trunk to some devices, i'am affected from the lzma-loader/GCC11 issue. It was possible in the past to use the standard recovery procedure, but it seems NOT possible anymore, maybe because of the changed partition layout? The bootloader says: Incorrect File. Writting error. Anyway: does somebody know how to access the bootloader? The password 'admin' or 'tpl' is not accepted and images are also not accepted. I'am happy for any hint - thanks a lot, bye, bastian! TP-LINK SafeLoader (Build time: Jun 12 2015 - 09:49:53) CPU: 560MHz AHB: 225MHz DDR: 64MB Performing LED check.. PASS Press CTRL+B to enter SafeLoader: 1 Flash Manufacturer: Unknown(0xc8) Flash Device ID: Unknown(0x4017) Data flash init failed. open user-config failed. open user-config failed. Error: Kernel did not takeover charge of WatchDog last time! enet0 port4 up TFTP server address is 192.168.0.100; our address is 192.168.0.254 Get filename 'recovery.bin'. # # Done. Bytes transferred = 5204617, 1373 Kbytes/sec Incorrect File. Writting error. Allocated memory for elf segment ok: addr: 0x8006, size 0x16cc Loading .text @ 0x8006 (5836 bytes) Starting kernel OpenWrt kernel loader for AR7XXX/AR9XXX Copyright (C) 2011 Gabor Juhos Looking for OpenWrt image... found at 0xbf043000 Decompressing kernel... (hangs here) ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel -- * The information contained in this message and any attachments may be privileged, confidential, proprietary, protected by copyright law or by any other means protected from disclosure and must therefore not be publicly disclosed without prior written consent..#&@#. ,#@&:%++%:&@#. Follow the penguin! #@&:%%010111%%:&@# Vincent Wiemann (°> #@&:%0 0%:&@ //\ #@&:%0 0%: +49-511582974V_/_ #@&:%0 100% * ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
ath79 / TP-Link CPE510 / tftp: recovery.bin
After flashing trunk to some devices, i'am affected from the lzma-loader/GCC11 issue. It was possible in the past to use the standard recovery procedure, but it seems NOT possible anymore, maybe because of the changed partition layout? The bootloader says: Incorrect File. Writting error. Anyway: does somebody know how to access the bootloader? The password 'admin' or 'tpl' is not accepted and images are also not accepted. I'am happy for any hint - thanks a lot, bye, bastian! TP-LINK SafeLoader (Build time: Jun 12 2015 - 09:49:53) CPU: 560MHz AHB: 225MHz DDR: 64MB Performing LED check.. PASS Press CTRL+B to enter SafeLoader: 1 Flash Manufacturer: Unknown(0xc8) Flash Device ID: Unknown(0x4017) Data flash init failed. open user-config failed. open user-config failed. Error: Kernel did not takeover charge of WatchDog last time! enet0 port4 up TFTP server address is 192.168.0.100; our address is 192.168.0.254 Get filename 'recovery.bin'. # # Done. Bytes transferred = 5204617, 1373 Kbytes/sec Incorrect File. Writting error. Allocated memory for elf segment ok: addr: 0x8006, size 0x16cc Loading .text @ 0x8006 (5836 bytes) Starting kernel OpenWrt kernel loader for AR7XXX/AR9XXX Copyright (C) 2011 Gabor Juhos Looking for OpenWrt image... found at 0xbf043000 Decompressing kernel... (hangs here) ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel