Sysupgrade writes kernel to wrong address (Easybox 803)

Hi,

I have an Easybox 803 and successfully installed a sysupgrade. Unfortenately, the sysupgrade seems to write the kernel exactly to the 0xB0040000 adress where also the environment of u-boot is stored.

I have installed the initial image at 0xB0050000, since this was where u-boot said the kernel was. (kernel_addr). Then the boot process works.
When I do a sysupgrade, then at 0xB0050000 no longer an image is. But when I do in u-boot iminfo 0xB0040000, the kernel is detected. I can also successfully boot that image.
Now when I try to change the kernel_addr environment variable and saveenv, then there is no longer the kernel at 0xB0040000 (I guess it is overwritten).
How can I tell sysupgrade to write himself to 0xB0050000?

Before the upgrade I have:

root@OpenWrt:/tmp# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00030000 00010000 "uboot"
mtd1: 00010000 00010000 "uboot_env"
mtd2: 007b0000 00010000 "firmware"
mtd3: 00010000 00010000 "board_config"

and another question:
When I write the upgrade image directly to the 0xB0050000 adress with u-boot, then the kernel is successfully executed, but gets a kernel panic since it does not find the root partition. May it be possible that the location of the root partition is somehow hard coded within the image, thus when NOT installed at 0xB0040000, then it does not find it anymore?

If i remember right, the partition layout change on the newer u-boot versions.
You have to use the u-boot from chaos chalmer or barrier breaker for the right/old flash layout.

If you wanna use the newer u-boot version, then:

You have to edit the device tree partition definitions here:
https://github.com/openwrt/openwrt/blob/master/target/linux/lantiq/files-5.4/arch/mips/boot/dts/lantiq/danube_arcadyan_arv752dpw22.dts#L183

Then build your image with the build system.
Note: This is for kernel 5.4 and if you are building for another kernel version you have to edit the device tree in the right files-x.x folder.

thank you very much. Yes, I installed an older u-boot, and that version by default looks for the kernel at 0xB0040000.

Good! now finally my easybox runs openwrt !

If your problem is solved, please consider marking this topic as [Solved]. See How to mark a topic as [Solved] for a short how-to.