Jump to content

Recommended Posts

Posted

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.

 

 

Posted

Hi,

 

can you share  armbianmonitor -u after successful boot?

 

Cheers

Posted

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)

 

Posted (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 by Zaf9670
Posted

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,

Posted

@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

 

Posted

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??

 

Posted

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

 

Posted

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,

Posted

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


 

Posted

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 ...

 

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines