Welcome! Log In Create A New Profile

Advanced

Pogoplug V4 wont boot from SD on uBoot 2023.04

Posted by Nexus6 
Pogoplug V4 wont boot from SD on uBoot 2023.04
December 03, 2025 11:40PM
Hello there, i recently got a fully new Pogoplug V4 from work and decided to install debian and stuff, used my Pi1 for TTL and i manage to make it work, only issue is that the SD didnt boot unless i manually set the envs, noticed the 2023 uBoot envs dosent have anything related to emmc booting but the 2016 does, i havent tried to downgrade (if its possible and wont cause a issue) and not sure what i should modify to get mmc on the envs
Re: Pogoplug V4 wont boot from SD on uBoot 2023.04
December 04, 2025 03:02PM
Nexus6,

> Hello there, i recently got a fully new Pogoplug
> V4 from work and decided to install debian and
> stuff, used my Pi1 for TTL and i manage to make it
> work, only issue is that the SD didnt boot unless
> i manually set the envs, noticed the 2023 uBoot
> envs dosent have anything related to emmc booting
> but the 2016 does, i havent tried to downgrade (if
> its possible and wont cause a issue) and not sure
> what i should modify to get mmc on the envs

Boot up, interrupt u-boot count down and
printenv
And then post the entire serial console log here.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Pogoplug V4 wont boot from SD on uBoot 2023.04
December 04, 2025 10:16PM
baudrate=115200
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec; reset
bootcmd_exec=if run load_uimage; then; if run load_initrd; then if run load_dtb; then bootm $load_uimage_addr $load_initrd_addr $load_dtb_addr; else bootm $load_baudrate=115200
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec; reset
bootcmd_exec=if run load_uimage; then; if run load_initrd; then if run load_dtb; then bootm $load_uimage_addr $load_initrd_addr $load_dtb_addr; else bootm $load_uimage_addr $load_initrd_addr; fi; else if run load_dtb; then bootm $load_uimage_addr - $load_dtb_addr; else bootm $load_uimage_addr; fi; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
console=ttyS0,115200
device=0:1
devices=usb sata
disks=0 1 2 3
dtb_file=/boot/dts/kirkwood-pogoplug_v4.dtb
ethaddr=00:25:31:03:EC:9C
fdtcontroladdr=7b51650
if_netconsole=ping $serverip
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file
load_dtb_addr=0x1c00000
load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd
load_initrd_addr=0x2100000
load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage
load_uimage_addr=0x800000
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
preboot_nc=setenv nc_ready 0; for pingstat in 1 2 3; do; sleep 1; if run if_netconsole; then setenv nc_ready 1; fi; done; if test $nc_ready -eq 1; then run start_netconsole; fi
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb reset; sleep 1; usb reset";  setenv scan_sata "sata init";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uimage_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv bootdev $dev; fi; fi; done; fi; done
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin serial,nc; setenv stdout serial,nc; setenv stderr serial,nc; version;
stderr=serial
stdin=serial
stdout=serial
uenv_addr=0x810000
uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize
uenv_init_devices=echo Initializing devices...; setenv init_usb "usb reset; sleep 1; usb reset"; setenv init_sata sata init;  setenv init_mmc mmc rescan; for devtype in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices; do for disknum in $disks; do if test $uenv_loaded -eq 0; then setenv device_type $devtype; setenv disk_number $disknum; run uenv_read; fi; done; done;
uenv_read=echo Loading envs from $device_type $disk_number...; if load $device_type  $disk_number:1 $uenv_addr /boot/uEnv.txt; then setenv uenv_loaded 1; echo ... envs loaded; fi
ver=U-Boot 2023.04-tld-1 (Jun 11 2023 - 16:24:44 -0700)\
Pogoplug V4

Environment size: 2907/131068 bytes
uimage_addr $load_initrd_addr; fi; else if run load_dtb; then bootm $load_uimage_addr - $load_dtb_addr; else bootm $load_uimage_addr; fi; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
console=ttyS0,115200
device=0:1
devices=usb sata
disks=0 1 2 3
dtb_file=/boot/dts/kirkwood-pogoplug_v4.dtb
ethaddr=00:25:31:03:EC:9C
fdtcontroladdr=7b51650
if_netconsole=ping $serverip
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file
load_dtb_addr=0x1c00000
load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd
load_initrd_addr=0x2100000
load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage
load_uimage_addr=0x800000
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
preboot_nc=setenv nc_ready 0; for pingstat in 1 2 3; do; sleep 1; if run if_netconsole; then setenv nc_ready 1; fi; done; if test $nc_ready -eq 1; then run start_netconsole; fi
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb reset; sleep 1; usb reset";  setenv scan_sata "sata init";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uimage_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv bootdev $dev; fi; fi; done; fi; done
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin serial,nc; setenv stdout serial,nc; setenv stderr serial,nc; version;
stderr=serial
stdin=serial
stdout=serial
uenv_addr=0x810000
uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize
uenv_init_devices=echo Initializing devices...; setenv init_usb "usb reset; sleep 1; usb reset"; setenv init_sata sata init;  setenv init_mmc mmc rescan; for devtype in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices; do for disknum in $disks; do if test $uenv_loaded -eq 0; then setenv device_type $devtype; setenv disk_number $disknum; run uenv_read; fi; done; done;
uenv_read=echo Loading envs from $device_type $disk_number...; if load $device_type  $disk_number:1 $uenv_addr /boot/uEnv.txt; then setenv uenv_loaded 1; echo ... envs loaded; fi
ver=U-Boot 2023.04-tld-1 (Jun 11 2023 - 16:24:44 -0700)\
Pogoplug V4

Environment size: 2907/131068 bytes

Re: Pogoplug V4 wont boot from SD on uBoot 2023.04
December 05, 2025 12:24AM
Nexus6,

> devices=usb sata


My bad. The env above should be
devices=usb sata mmc
So in serial console
setenv devices 'usb sata mmc'
And then boot
boot

Furthermore, see the rootfs release notes.

https://forum.doozan.com/read.php?2,12096

Quote

Updated 01 Nov 2023:

Basic Debian bookworm Kirkwood rootfs for most Kirwood plugs:

Quote

Installation:

Installation can be done on any Linux box, with a fresh USB drive (HDD would work fine too).

Warning: If you want to install this rootfs on SD card (such as for the Pogo V4 or Sheevaplug), then you need to see Note 8 below before doing the installation.

Quote

Note 8 (Required for SD card rootfs, Optional for all other storage devices):

If you are installing this rootfs for the Pogo V4 or the Sheevaplug on SD card, it is best to use a USB-SD adapter and install boot the box with USB first. After it booted successfully, install the latest kernel (linux-6.6.3-kirkwood-tld-1, at the time of this writing, but as always the latest kernel is the best version). Reboot to make sure it is running OK. Shutdown and then boot with the SD card in its slot.

Also see this post for further detailed explanation and other approaches in booting this rootfs on SD card.

The bottom line is it is best to install with the SD card inside a USB adapter.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Pogoplug V4 wont boot from SD on uBoot 2023.04
December 07, 2025 10:59PM
Oh yeah i did install it via an USB card reader, it works great and with SD works well for me when i boot from SD, guessing i have to reflash the nand with the new environment if i want it to boot sd automaticly?
Re: Pogoplug V4 wont boot from SD on uBoot 2023.04
December 08, 2025 12:32AM
> Oh yeah i did install it via an USB card reader,
> it works great and with SD works well for me when
> i boot from SD,

Cool!

> guessing i have to reflash the
> nand with the new environment if i want it to boot
> sd automaticly?

No need to reflash the NAND image of the envs. Adjust it in Debian,

fw_printenv
If you see the envs listing is the same as in u-boot, it means everything is good. Now you just need to adjust the env

fw_setenv devices 'mmc usb sata'
Note the list of devices above, it could be any order of preference. Putting mmc first on the list will make it boot faster, because your rootfs is on SD card.

And then reboot, watch serial console, it will show the SD card is considered first in scanning disks and the log will be less noisy.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: