Zzzz Posted May 6, 2023 Posted May 6, 2023 Pinecube fails to boot with Armbian_23.5.0-trunk.140_Pinecube_bookworm_edge_6.2.13.img . In the boot log is this line: Quote ERROR: FDT image overlaps OS image (OS=0x41000000..0x418750d0) So I tried to modify `fdt_addr_r` env variable and were able to succesfully boot with theese commands executed in u-boot console: Quote env set fdt_addr_r 0x41900000 boot So adding following line to /boot/armbianEnv.txt on sdcard can fix booting permanently: Quote fdt_addr_r=0x41900000 Complete boot log: Quote U-Boot SPL 2022.07-armbian (May 01 2023 - 22:12:06 +0000) DRAM: 128 MiB Trying to boot from MMC1 U-Boot 2022.07-armbian (May 01 2023 - 22:12:06 +0000) Allwinner Technology CPU: Allwinner V3s (SUN8I 1681) Model: PineCube IP Camera DRAM: 128 MiB Core: 46 devices, 19 uclasses, devicetree: separate WDT: Not starting watchdog@1c20ca0 MMC: mmc@1c0f000: 0, mmc@1c10000: 1 Loading Environment from FAT... Unable to use mmc 0:1... In: serial@1c28800 Out: serial@1c28800 Err: serial@1c28800 Net: No ethernet found. Autoboot in 1 seconds, press <Space> to stop switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 4121 bytes read in 2 ms (2 MiB/s) ## Executing script at 41900000 U-boot loaded from SD Boot script loaded from mmc 154 bytes read in 2 ms (75.2 KiB/s) 12336677 bytes read in 512 ms (23 MiB/s) 8868048 bytes read in 369 ms (22.9 MiB/s) Found mainline kernel configuration 18803 bytes read in 7 ms (2.6 MiB/s) Failed to load '/boot/dtb/overlay/sun8i-v3s-fixup.scr' Kernel image @ 0x41000000 [ 0x000000 - 0x8750d0 ] ## Loading init Ramdisk from Legacy Image at 41c00000 ... Image Name: uInitrd Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 12336613 Bytes = 11.8 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 41800000 Booting using the fdt blob at 0x41800000 ERROR: FDT image overlaps OS image (OS=0x41000000..0x418750d0) SCRIPT FAILED: continuing... No EFI system partition BootOrder not defined EFI boot manager: Cannot load any image No ethernet found. missing environment variable: pxeuuid Retrieving file: pxelinux.cfg/00000000 No ethernet found. Retrieving file: pxelinux.cfg/0000000 No ethernet found. Retrieving file: pxelinux.cfg/000000 No ethernet found. Retrieving file: pxelinux.cfg/00000 No ethernet found. Retrieving file: pxelinux.cfg/0000 No ethernet found. Retrieving file: pxelinux.cfg/000 No ethernet found. Retrieving file: pxelinux.cfg/00 No ethernet found. Retrieving file: pxelinux.cfg/0 No ethernet found. Retrieving file: pxelinux.cfg/default-arm-sunxi-sunxi No ethernet found. Retrieving file: pxelinux.cfg/default-arm-sunxi No ethernet found. Retrieving file: pxelinux.cfg/default-arm No ethernet found. Retrieving file: pxelinux.cfg/default No ethernet found. Config file not found No ethernet found. No ethernet found. 0 Quote
Werner Posted May 6, 2023 Posted May 6, 2023 Hi, can you share armbianmonitor -u after successful boot? Cheers 0 Quote
Zzzz Posted May 6, 2023 Author Posted May 6, 2023 Sure, here it is: https://paste.armbian.com/gudajumotu 0 Quote
Zaf9670 Posted April 29 Posted April 29 Sorry to bring this back up but I'm having exact same issue on latest releases. I'm able to boot an older 21.05.1 release for the PineCube but the 25.5.0-trunk.87 and 25.5.0-trunk.444 have the same issue. Upgrading the 21.05.1 via apt update && apt upgrade broke it once again with the same overlap issue. ## Loading init Ramdisk from Legacy Image at 41b00000 ... Image Name: uInitrd Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 11237905 Bytes = 10.7 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 41800000 Booting using the fdt blob at 0x41800000 ERROR: FDT image overlaps OS image (OS=0x41000000..0x41a72768) 0 Quote
Zaf9670 Posted April 29 Posted April 29 (edited) Looks like 23.5.1 with U-Boot 2022.7 works as well (23.5.1 Bookworm 6.1.30). Spoke too soon. It never loaded the kernel. Edited April 29 by Zaf9670 0 Quote
laibsch Posted yesterday at 08:23 AM Posted yesterday at 08:23 AM @Zaf9670 Please run "armbianmonitor -u" on the board and share the link 0 Quote
djurny Posted 23 hours ago Posted 23 hours ago Hi @Zzzz, @Zaf9670, After it fails to boot, can you type the following in the U-Boot monitor prompt and share the ouput: echo $fdt_addr_r echo $kernel_addr_r echo $ramdisk_addr_r setexpr abc 1 + 1 echo "abc=x${abc}x" fdt header fdt header get def totalsize echo "def=x${def}x" Thanks, Groetjes, 0 Quote
Zaf9670 Posted 13 hours ago Posted 13 hours ago @laibsch since I cannot boot that doesn't seem to be a command in u-boot I can run. Reformatted the card with latest Bookworm Armbian_community_25.5.0-trunk.444_Pinecube_bookworm_current_6.12.23_minimal.img.gz @djurnyBoot and Outputs requested at the end. Let me know if you need anything else. Thanks! U-Boot 2024.01-armbian-2024.01-S866c-P7738-Ha5c2-V1f00-Bb703-R448a (Mar 16 2025 - 04:03:33 +0000) Allwinner Technology CPU: Allwinner V3s (SUN8I 1681) Model: PineCube IP Camera DRAM: 128 MiB Core: 47 devices, 20 uclasses, devicetree: separate WDT: Not starting watchdog@1c20ca0 MMC: mmc@1c0f000: 0, mmc@1c10000: 1 Loading Environment from FAT... Unable to use mmc 0:1... In: serial@1c28800 Out: serial@1c28800 Err: serial@1c28800 Autoboot in 1 seconds, press <Space> to stop switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 5475 bytes read in 2 ms (2.6 MiB/s) ## Executing script at 41900000 U-boot loaded from SD 176 bytes read in 2 ms (85.9 KiB/s) Load fdt: /boot/dtb/sun8i-s3-pinecube.dtb 12286995 bytes read in 509 ms (23 MiB/s) 11013984 bytes read in 457 ms (23 MiB/s) Found mainline kernel configuration 19691 bytes read in 4 ms (4.7 MiB/s) Working FDT set to 41900000 Kernel image @ 0x41000000 [ 0x000000 - 0xa80f60 ] ## Loading init Ramdisk from Legacy Image at 41c00000 ... Image Name: uInitrd Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 12286931 Bytes = 11.7 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 41900000 Booting using the fdt blob at 0x41900000 ERROR: FDT image overlaps OS image (OS=0x41000000..0x41a80f60) SCRIPT FAILED: continuing... Card did not respond to voltage select! : -110 No EFI system partition No EFI system partition Failed to persist EFI variables BootOrder not defined EFI boot manager: Cannot load any image => echo $fdt_addr_r 0x41900000 => echo $kernel_addr_r 0x41000000 => echo $kernel_addr_r 0x41000000 => echo $kernel_addr_r 0x41000000 => echo $fdt_addr_r 0x41900000 => echo $kernel_addr_r 0x41000000 => echo $ramdisk_addr_r 0x41C00000 => setexpr abc 1 + 1 => echo "abc=x${abc}x" abc=x2x => fdt header magic: 0xd00dfeed totalsize: 0x6b000 (438272) off_dt_struct: 0x38 off_dt_strings: 0x457c off_mem_rsvmap: 0x28 version: 17 last_comp_version: 16 boot_cpuid_phys: 0x0 size_dt_strings: 0x76f size_dt_struct: 0x4544 number mem_rsv: 0x0 => fdt header get def totalsize => echo "def=x${def}x" def=x6b000x 0 Quote
djurny Posted 12 hours ago Posted 12 hours ago Hi @Zaf9670, Can you try to reset the U-Boot monitor, press any key to stop the autobooting, then enter the following on the commandline: setenv fdt_addr_r 41000000 setenv kernel_addr_r 41080000 setenv ramdisk_addr_r 42080000 These load addresses are based on the sizes of the DT (438272 bytes) and the kernel image (11013984 bytes). Then to kick off the boot: run bootcmd Do share the results please. Groetjes, p.s. That device tree is huge! 428 KiB?? 0 Quote
Zaf9670 Posted 11 hours ago Posted 11 hours ago Looks like it is still overlapping. => run bootcmd switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 5475 bytes read in 2 ms (2.6 MiB/s) ## Executing script at 41900000 U-boot loaded from SD 176 bytes read in 2 ms (85.9 KiB/s) Load fdt: /boot/dtb/sun8i-s3-pinecube.dtb 12286995 bytes read in 509 ms (23 MiB/s) 11013984 bytes read in 456 ms (23 MiB/s) Found mainline kernel configuration 19691 bytes read in 5 ms (3.8 MiB/s) Working FDT set to 41900000 Kernel image @ 0x41080000 [ 0x000000 - 0xa80f60 ] ## Loading init Ramdisk from Legacy Image at 42080000 ... Image Name: uInitrd Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 12286931 Bytes = 11.7 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 41900000 Booting using the fdt blob at 0x41900000 ERROR: FDT image overlaps OS image (OS=0x41080000..0x41b00f60) SCRIPT FAILED: continuing... BootOrder not defined EFI boot manager: Cannot load any image 0 Quote
djurny Posted 11 hours ago Posted 11 hours ago Hi @Zaf9670, Are you sure you did the setenv fdt_addr_r 41000000 U-Boot claims DT is still loaded/applied to the original load address: Working FDT set to 41900000 Can you share your armbianEnv.txt and boot.cmd? I'll have a look at the defailt bootscript in the meantime, perhaps some parts of the bootscript is using fdt_addr_r and other parts might still use loadaddr or scriptaddr... Thx, Gr, 0 Quote
Zaf9670 Posted 8 hours ago Posted 8 hours ago Yes. I noticed in past attempts when using saveenv it says it cannot write or something. I have not modified any of the files as I said earlier. This is all from a fresh install so it is whatever is generated that is currently located on the PineCube page. Also when I took an older image and updated the FDT image overlap error began as well. Error for saveenv I've seen Saving Environment to FAT... Unable to use mmc 0:1... Failed (1) armbianEnv.txt verbosity=1 bootlogo=false console=both disp_mode=1920x1080p60 fdt_addr_r=0x41900000 overlay_prefix=sun8i-v3s rootdev=UUID=7cb05da7-0b85-4547-83a2-601bab88d8dc rootfstype=ext4 boot.cmd # DO NOT EDIT THIS FILE # # Please edit /boot/armbianEnv.txt to set supported parameters # setenv load_addr "0x45000000" setenv overlay_error "false" # default values setenv verbosity "1" setenv console "both" setenv disp_mem_reserves "off" setenv disp_mode "1920x1080p60" setenv rootfstype "ext4" setenv docker_optimizations "on" setenv bootlogo "false" setenv devnum "0" setenv rootdev "/dev/mmcblk${devnum}p1" setenv earlycon "off" # Remember the default u-boot fdtfile setenv deffdt_file ${fdtfile} # Remember the default u-boot fdtdir setenv deffdt_dir "${prefix}dtb" if test "$fdtdir" = ""; then setenv fdtdir "${deffdt_dir}";fi setenv vendor "allwinner" # Print boot source itest.b *0x28 == 0x00 && echo "U-boot loaded from SD" itest.b *0x28 == 0x01 && echo "U-boot loaded from NAND" itest.b *0x28 == 0x02 && echo "U-boot loaded from eMMC or secondary SD" itest.b *0x28 == 0x03 && echo "U-boot loaded from SPI" # get PARTUUID of first partition on SD/eMMC it was loaded from # mmc 0 is always mapped to device u-boot (2016.09+) was loaded from if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:1 partuuid; setenv devnum ${mmc_bootdev} setenv rootdev "/dev/mmcblk${mmc_bootdev}p1" fi if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt env import -t ${load_addr} ${filesize} fi # Delete the vendor's name from the fdtfile variable and record the result # after the file with the environment variables has been read if setexpr subfdt sub ${vendor}/ "" ${fdtfile};then setenv fdtfile ${subfdt} fi # In this shell, we can only check the existence of the file. # Make a check of reasonable ways to find the dtb file. # Set the true value of the paths. if test -e ${devtype} ${devnum} "${fdtdir}/${fdtfile}"; then echo "Load fdt: ${fdtdir}/${fdtfile}" else echo "The file ${fdtfile} was not found in the path ${fdtdir}" if test -e ${devtype} ${devnum} "${deffdt_dir}/${vendor}/${fdtfile}"; then setenv fdtdir "${deffdt_dir}/${vendor}" echo "Load fdt: ${fdtdir}/${fdtfile}" else if test -e ${devtype} ${devnum} "${deffdt_dir}/${vendor}/${deffdt_file}"; then setenv fdtdir "${deffdt_dir}/${vendor}" setenv fdtfile "${deffdt_file}" echo "Load fdt: ${fdtdir}/${fdtfile}" else if test -e ${devtype} ${devnum} "${deffdt_dir}/${deffdt_file}"; then setenv fdtdir "${deffdt_dir}" setenv fdtfile "${deffdt_file}" echo "Load fdt: ${fdtdir}/${fdtfile}" fi fi fi fi if test "${console}" = "display"; then setenv consoleargs "console=tty1"; fi if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi if test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi if test "${bootlogo}" = "true"; then setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}" else setenv consoleargs "splash=verbose ${consoleargs}" fi setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} hdmi.audio=EDID:0 disp.screen0_output_mode=${disp_mode} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} ubootsource=${devtype} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}" if test "${disp_mem_reserves}" = "off"; then setenv bootargs "${bootargs} sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16" fi if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory"; fi load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage if test -e ${devtype} ${devnum} "${prefix}.next"; then echo "Found mainline kernel configuration" load ${devtype} ${devnum} ${fdt_addr_r} ${fdtdir}/${fdtfile} fdt addr ${fdt_addr_r} fdt resize 65536 for overlay_file in ${overlays}; do if load ${devtype} ${devnum} ${load_addr} ${fdtdir}/overlay/${overlay_prefix}-${overlay_file}.dtbo; then echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo" fdt apply ${load_addr} || setenv overlay_error "true" fi done for overlay_file in ${user_overlays}; do if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then echo "Applying user provided DT overlay ${overlay_file}.dtbo" fdt apply ${load_addr} || setenv overlay_error "true" fi done if test "${overlay_error}" = "true"; then echo "Error applying DT overlays, restoring original DT" load ${devtype} ${devnum} ${fdt_addr_r} ${fdtdir}/${fdtfile} else if test -e ${devtype} ${devnum} ${fdtdir}/overlay/${overlay_prefix}-fixup.scr; then load ${devtype} ${devnum} ${load_addr} ${fdtdir}/overlay/${overlay_prefix}-fixup.scr echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)" source ${load_addr} fi if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr echo "Applying user provided fixup script (fixup.scr)" source ${load_addr} fi fi bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} else echo "Found legacy kernel configuration" load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}script.bin bootz ${kernel_addr_r} ${ramdisk_addr_r} fi # Recompile with: # mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr 0 Quote
Zaf9670 Posted 7 hours ago Posted 7 hours ago So I decided to modify the armbianEnv.txt with the values you provided and it has moved to "Starting kernel..." It is taking quite a while to boot. The older version seemed to take quite a while as well but this seems to be hanging possibly. I tried changing the armbianEnv.txt verbosity to 7 but it is still stuck on Starting kernel... U-Boot 2024.01-armbian-2024.01-S866c-P7738-Ha5c2-V1f00-Bb703-R448a (Mar 16 2025 - 04:03:33 +0000) Allwinner Technology CPU: Allwinner V3s (SUN8I 1681) Model: PineCube IP Camera DRAM: 128 MiB Core: 47 devices, 20 uclasses, devicetree: separate WDT: Not starting watchdog@1c20ca0 MMC: mmc@1c0f000: 0, mmc@1c10000: 1 Loading Environment from FAT... Unable to use mmc 0:1... In: serial@1c28800 Out: serial@1c28800 Err: serial@1c28800 Autoboot in 1 seconds, press <Space> to stop switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 5475 bytes read in 2 ms (2.6 MiB/s) ## Executing script at 41900000 U-boot loaded from SD 227 bytes read in 1 ms (221.7 KiB/s) Load fdt: /boot/dtb/sun8i-s3-pinecube.dtb 12286995 bytes read in 509 ms (23 MiB/s) 11013984 bytes read in 456 ms (23 MiB/s) Found mainline kernel configuration 19691 bytes read in 4 ms (4.7 MiB/s) Working FDT set to 41000000 Kernel image @ 0x41080000 [ 0x000000 - 0xa80f60 ] ## Loading init Ramdisk from Legacy Image at 42080000 ... Image Name: uInitrd Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 12286931 Bytes = 11.7 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 41000000 Booting using the fdt blob at 0x41000000 Working FDT set to 41000000 Loading Ramdisk to 42248000, end 42dffbd3 ... OK Loading Device Tree to 421da000, end 42247fff ... OK Working FDT set to 421da000 Starting kernel ... 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.