Next Steps, Pink Pogo Plug Rev 01
November 06, 2023 02:01PM
Hey guys need help, I left this project incomplete a while ago. What are the next steps I need to do to get this running linux? Thanx in advanced.

U-Boot 2014.04.R3-1 (May 26 2014 - 19:45:55) Arch Linux ARM
Pogo E02
gcc (GCC) 4.8.2 20131219 (prerelease)
GNU ld (GNU Binutils) 2.24
PogoE02> printenv
baudrate=115200
bootcmd=usb start; setenv letter 9;for type in usb; do for disk in 0 1 2 3; do if ${type} part ${disk};then setexpr letter $letter + 1;run load;fi;done;done;
bootdelay=3
bootm=echo Booting from ${disk} ...; run setargs; bootm ${loadaddr};
bootz=echo Booting from ${disk} ...; run setargs; bootz ${loadaddr} - ${fdt_addr};
console=ttyS0
ethact=egiga0
ethaddr=00:25:31:04:AC:05
fdt_addr=0x800000
fdt_file=/boot/dtbs/kirkwood-pogo_e02.dtb
importbootenv=echo Importing environment (uEnv.txt)...; env import -t $loadaddr $filesize
letter=9
load=echo Attempting to boot from ${type} ${disk}:1...;if run loadbootenv; then run importbootenv;fi;echo Checking if uenvcmd is set ...;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;echo Running default loadzimage ...;if run loadzimage; then run loadfdt;run bootz;fi;echo Running default loaduimage ...;if run loaduimage; then run bootm;fi;
loadaddr=0x810000
loadbootenv=load ${type} ${disk}:1 ${loadaddr} /boot/uEnv.txt
loadfdt=load ${type} ${disk}:1 ${fdt_addr} ${fdt_file}
loaduimage=load ${type} ${disk}:1 ${loadaddr} ${uimage}
loadzimage=load ${type} ${disk}:1 ${loadaddr} ${zimage}
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),-(rootfs)
setargs=setenv bootargs console=${console},${baudrate} ${optargs} root=/dev/sd${letter}1 rw rootwait ${mtdparts}
uimage=/boot/uImage
zimage=/boot/zImage

===========
moderator edit: please use code tags (formatted code) to post log.



Edited 1 time(s). Last edit at 11/06/2023 04:41PM by bodhi.
Re: Next Steps, Pink Pogo Plug Rev 01
November 06, 2023 04:49PM
The easiest way to boot Debian with this u-boot is to follow this instruction:

https://forum.doozan.com/read.php?2,102054,105374#msg-105374

Use the 1st approach

Quote

1. Booting with stock u-boot that supports usb, ext2load, and run commands

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Next Steps, Pink Pogo Plug Rev 01
November 06, 2023 06:30PM
Thanx!

I'm getting a new error.
PogoE02> printenv
baudrate=115200
bootcmd=usb start; setenv letter 9;for type in usb; do for disk in 0 1 2 3; do if ${type} part ${disk};then setexpr letter $letter + 1;run load;fi;done;done;
bootdelay=3
bootm=echo Booting from ${disk} ...; run setargs; bootm ${loadaddr};
bootz=echo Booting from ${disk} ...; run setargs; bootz ${loadaddr} - ${fdt_addr};
console=ttyS0
ethact=egiga0
ethaddr=00:25:31:04:AC:05
fdt_addr=0x800000
fdt_file=/boot/dtbs/kirkwood-pogo_e02.dtb
importbootenv=echo Importing environment (uEnv.txt)...; env import -t $loadaddr $filesize
load=echo Attempting to boot from ${type} ${disk}:1...;if run loadbootenv; then run importbootenv;fi;echo Checking if uenvcmd is set ...;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;echo Running default loadzimage ...;if run loadzimage; then run loadfdt;run bootz;fi;echo Running default loaduimage ...;if run loaduimage; then run bootm;fi;
loadaddr=0x810000
loadbootenv=load ${type} ${disk}:1 ${loadaddr} /boot/uEnv.txt
loadfdt=load ${type} ${disk}:1 ${fdt_addr} ${fdt_file}
loaduimage=load ${type} ${disk}:1 ${loadaddr} ${uimage}
loadzimage=load ${type} ${disk}:1 ${loadaddr} ${zimage}
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),-(rootfs)
setargs=setenv bootargs console=${console},${baudrate} ${optargs} root=/dev/sd${letter}1 rw rootwait ${mtdparts}
uimage=/boot/uImage
zimage=/boot/zImage

Environment size: 1423/131068 bytes
PogoE02> boot
(Re)start USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

Partition Map for USB device 0  --   Partition Type: DOS

Part	Start Sector	Num Sectors	UUID		Type
  1	2048      	30320640  	93d0784e-01	83
Attempting to boot from usb 0:1...
** File not found /boot/uEnv.txt **
Checking if uenvcmd is set ...
Running default loadzimage ...
** File not found /boot/zImage **
Running default loaduimage ...
6223944 bytes read in 447 ms (13.3 MiB/s)
Booting from 0 ...
## Booting kernel from Legacy Image at 00810000 ...
   Image Name:   Linux-6.5.7-kirkwood-tld-1
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    6223880 Bytes = 5.9 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...


Error: invalid dtb and unrecognized/unsupported machine ID
  r1=0x00000dd6, r2=0x00000100
  r2[]=05 00 00 00 01 00 41 54 00 00 00 00 00 00 00 00
Available machine support:

ID (hex)	NAME
ffffffff	Generic DT based system
ffffffff	Marvell Kirkwood (Flattened Device Tree)

Please check your kernel config and/or bootloader.



Edited 1 time(s). Last edit at 11/13/2023 09:55PM by cHIbINAb.
Re: Next Steps, Pink Pogo Plug Rev 01
November 06, 2023 07:23PM
Looks like you did not follow the instruction in my post above.

> The easiest way to boot Debian with this u-boot is
> to follow this instruction:
>
> https://forum.doozan.com/read.php?2,102054,105374#msg-105374
>
> Use the 1st approach
>
>
Quote

1. Booting with stock u-boot that supports
> usb, ext2load, and run commands

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Next Steps, Pink Pogo Plug Rev 01
November 06, 2023 08:09PM
OK, I think I followed the instructions properly this time. Let me know, thanks again!

PogoE02> setenv usb_set_bootargs 'setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 earlyprintk=serial'
PogoE02> setenv load_uimage 'ext2load usb 0:1 0x800000 /boot/uImage'
PogoE02> setenv load_uinitrd 'ext2load usb 0:1 0x2100000 /boot/uInitrd'
PogoE02> setenv usb_boot 'mw 0x800000 0 1; run load_uimage; run load_uinitrd; bootm 0x800000 0x2100000'
PogoE02> setenv usb_bootcmd 'run usb_set_bootargs; run usb_boot'
PogoE02> setenv bootcmd 'usb reset; run usb_bootcmd; usb stop; reset'
PogoE02> printenv
baudrate=115200
bootcmd=usb reset; run usb_bootcmd; usb stop; reset
bootdelay=3
bootm=echo Booting from ${disk} ...; run setargs; bootm ${loadaddr};
bootz=echo Booting from ${disk} ...; run setargs; bootz ${loadaddr} - ${fdt_addr};
console=ttyS0
ethact=egiga0
ethaddr=00:25:31:04:AC:05
fdt_addr=0x800000
fdt_file=/boot/dtbs/kirkwood-pogo_e02.dtb
importbootenv=echo Importing environment (uEnv.txt)...; env import -t $loadaddr $filesize
load=echo Attempting to boot from ${type} ${disk}:1...;if run loadbootenv; then run importbootenv;fi;echo Checking if uenvcmd is set ...;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;echo Running default loadzimage ...;if run loadzimage; then run loadfdt;run bootz;fi;echo Running default loaduimage ...;if run loaduimage; then run bootm;fi;
load_uimage=ext2load usb 0:1 0x800000 /boot/uImage
load_uinit2load=usb 0:1 0x2100000 /boot/uInitrd\
setenv usb_boot  0x800000 0 1; run load_uimage; run lod_uinitrd; bootm 0x800000 0x2100000
load_uinitrd=ext2load usb 0:1 0x2100000 /boot/uInitrd
loadaddr=0x810000
loadbootenv=load ${type} ${disk}:1 ${loadaddr} /boot/uEnv.txt
loadfdt=load ${type} ${disk}:1 ${fdt_addr} ${fdt_file}
loaduimage=load ${type} ${disk}:1 ${loadaddr} ${uimage}
loadzimage=load ${type} ${disk}:1 ${loadaddr} ${zimage}
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),-(rootfs)
setargs=setenv bootargs console=${console},${baudrate} ${optargs} root=/dev/sd${letter}1 rw rootwait ${mtdparts}
uimage=/boot/uImage
usb_boot=mw 0x800000 0 1; run load_uimage; run load_uinitrd; bootm 0x800000 0x2100000
usb_bootcmd=run usb_set_bootargs; run usb_boot
usb_set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 earlyprintk=serial
zimage=/boot/zImage

Environment size: 1810/131068 bytes
PogoE02> boot
(Re)start USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
6223944 bytes read in 447 ms (13.3 MiB/s)
5791271 bytes read in 405 ms (13.6 MiB/s)
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-6.5.7-kirkwood-tld-1
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    6223880 Bytes = 5.9 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02100000 ...
   Image Name:   initramfs-6.5.7-kirkwood-tld-1
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    5791207 Bytes = 5.5 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...


Error: invalid dtb and unrecognized/unsupported machine ID
  r1=0x00000dd6, r2=0x00000100
  r2[]=05 00 00 00 01 00 41 54 00 00 00 00 00 00 00 00
Available machine support:

ID (hex)	NAME
ffffffff	Generic DT based system
ffffffff	Marvell Kirkwood (Flattened Device Tree)

Please check your kernel config and/or bootloader.



Edited 1 time(s). Last edit at 11/13/2023 09:56PM by cHIbINAb.
Re: Next Steps, Pink Pogo Plug Rev 01
November 06, 2023 08:39PM
cHIbINAb,

> OK, I think I followed the instructions properly
> this time. Let me know, thanks again!

You are almost there!

This is what you're missing.

Mount your USB rootfs on another Linux box, and do Step 4 in the rootfs creation.

Quote

4. (Stock u-boot only) Create uImage with embedded DTB for booting with older u-boots (2012 or earlier). Skip this step if you have installed the latest U-Boot for Kirkwood (or are installing this u-boot at the same time, or running kwboot with latest u-boot image).

Please replace kirkwood-goflexnet.dtb below with the correct DTB name for your box (see the folder /media/sdb1/boot/dts for the exact spelling of your Kirkwood box name).

Generate the uImage with DTB embedded inside:
cd /media/sdb1/boot
cp -a zImage-6.5.7-kirkwood-tld-1 zImage.fdt
cat dts/kirkwood-goflexnet.dtb >> zImage.fdt
mv uImage uImage.orig
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-6.5.7-kirkwood-tld-1 -d zImage.fdt uImage
sync

The DTB for this Pogo E02 is kirkwood-pogo_e02.dtb

We're treating this old u-boot as it were stock u-boot. So the DTB must be embedded inside uImage.

After that do a few syncs, umount the USB, and take it back to the Pogo E02 and repeat the booting procedure.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Next Steps, Pink Pogo Plug Rev 01
November 06, 2023 10:03PM
Success! Thank you very much!

debian login: root
Password: 
Linux debian 6.5.7-kirkwood-tld-1 #2 PREEMPT Wed Oct 18 21:14:11 PDT 2023 armv5tel

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Oct 31 18:33:32 PDT on pts/0
debian
10.0.0.9  net
CloudEngines Pogoplug E02
Linux version 6.5.7-kirkwood-tld-1 (root@tldDebian) (gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #2 PREEMPT Wed Oct 18 21:14:11 PDT 2023
Debian 12.2
Wed Dec 31 16:02:05 PST 1969 up 2 minutes
root@debian:~#



Edited 2 time(s). Last edit at 11/13/2023 09:57PM by cHIbINAb.
Re: Next Steps, Pink Pogo Plug Rev 01
November 06, 2023 10:13PM
Awesome!

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