I've just tried that, dropped root=, booted initramfs and started OpenWrt's sysupgrade. This is what happens:
root@OpenWrt:/tmp# sysupgrade -v openwrt-lantiq-xrx200-teles_voipbox-dsl-bri-squ
ashfs-sysupgrade.bin
Cannot save config while running from ramdisk.
Sun Apr 11 17:29:31 UTC 2021 upgrade: Commencing upgrade. Closing all shell sessions.
Watchdog handover: fd=3
- watchdog -
killall: telnetd: no process killed
Sun Apr 11 17:29:32 UTC 2021 upgrade: Sending TERM to remaining processes ... odhcpd vdsl_cpe_contro ntpd netifd dnsmasq ubusd urngd logd
Sun Apr 11 17:29:35 UTC 2021 upgrade: Sending KILL to remaining processes ...
[ 1219.784554] sh (3475): drop_caches: 3
Sun Apr 11 17:29:36 UTC 2021 upgrade: Switching to ramdisk...
Sun Apr 11 17:29:39 UTC 2021 upgrade: Performing system upgrade...
[ 1223.141979] sh (3475): drop_caches: 3
Could not open mtd device: firmware
Can't open device for writing!
cat: write error: Broken pipe
sysupgrade aborte[ 1223.176593] reboot: Res▒
ROM VER: 1.1.4
CFG 01
U-Boot 2010.06-LANTIQ-v-2.2.70 (Aug 06 2015 - 13:33:23)
CLOCK CPU 500M RAM 250M
warmboot => config_dcdc skipped
RST_REQ bf203010 a0000000
RST_REQ a0000021
RST_REQ a0000000
DRAM: 64 MiB
Flash: 32 MiB
In: serial
Out: serial
Err: serial
compare ethaddr with secfl
kernel_addr 0xb055e220 found
check for update.img ...
### JFFS2 loading 'update.img' to 0x80800000
Scanning JFFS2 FS: . done.
find_inode failed for name=update.img
load: Failed to find inode
### JFFS2 LOAD ERROR<0> for update.img!
update.img not found
Net: Internal phy(GE) firmware version: 0x8434
vr9 Switch
Type "run flash_nfs" to mount root filesystem over NFS
Hit any key to stop autoboot: 0
Why does sysupgrade try to write to the firmware mtd device? That's the partition with the Lantiq DSL drivers... does the name trigger some magic? Should I give it some other name?
Move the device to vr9.mk. teles.mk implies that it's a new subtarget, while in fact your device is vr9. Also, change $(Device/lantiqFullImage) to $(Device/NAND).
Sorry, I blindly assumed it's a NAND device without checking. Yes, remove $(Device/*) and try without anything (default target). Although, I'm worried that it won't work since the entire flash process for lantiq appears to assume the existence of "firmware" partition that holds both kernel and rootfs.
But I must admit that I can't speak from experience here, because so far I didn't have to dig too deep in the update scripts, and all boards I worked on in Lantiq target had functional sysupgrade without any troubles.
Ok, thanks. I'm going to the code and trying to figure out how/where to set the partition names for upgrade. There are some other devices in vr9.mk with no firmware partition, so it must be possible...
Idea: What about joining the gphy_firmware, the dsl_firmware and the kernel partition to one big ~8MB firmware partition? I don't think I need the firmware partitions anymore for OpenWrt because it uses its own firmware files. Don't know what the sysconfig partition is good for.
That's what I'm thinking too, but you'll need to trace the update process, starting from vr9.mk, then Makefile and all the way down through update.sh and platform.sh scripts to figure out what's happening.
In ideal world you could merge everything from gphy_firmware to ubi, but it's not possible since this device has a not so common split where u-boot config is between kernel and rootfs. Firmware and configuration partitions are usually at the beginning or end of the flash.
I don't think gphy_firmware and dsl_firmware are actually the problem here, and 6.8 MB is really a lot for the kernel already. You best bet is to make a new target for the sysupgrade image (like $(Device/teles)) where you could even make it work with stock firmware, making the initial flashing much easier. But you'll have to investigate the sysupgrade process.
I've some more boxes, so... no worries, one device more or less....
U-boot hangs before entering u-boot cli, so I can't do anything. Even with UART recovery I'd have to upload another u-boot version with ethernet disabled and xmodem support to upload a new image. No way.
ROM VER: 1.r;#!▒D▒
U-Boot 2010.06-LANTIQ-v-2.2.70 (Aug 06 2015 - 13:33:23)
CLOCK CPU 500M RAM 250M
coldboot => do config_dcdc ....
RST_REQ bf203010 a0000020
RST_REQ a0000021
RST_REQ a0000000
DRAM: 64 MiB
Flash: 32 MiB
In: serial
Out: serial
Err: serial
compare ethaddr with secfl
kernel_addr 0xb055e2d0 found
check for update.img ...
### JFFS2 loading 'update.img' to 0x80800000
Scanning JFFS2 FS: . done.
find_inode failed for name=update.img
load: Failed to find inode
### JFFS2 LOAD ERROR<0> for update.img!
update.img not found
Net: