Mainline U-Boot

This forum is for Marvell Kirkwood devices such as the GoFlex Home/Net, PogoPlug v1/v2, SheevaPlug, and ZyXEL devices.

Mainline U-Boot

Postby kmihelich » Tue May 27, 2014 2:30 am

We are migrating ARMv5 Marvell Kirkwood platforms over to mainline U-Boot provided by Arch Linux ARM. This will be maintained going forward along with the other U-Boot installations for other platforms. It is also the default U-Boot used on new installations for the supported platforms.

This new version makes a significant change away from the legacy U-Boot environment found in past versions used. The new environment lines up with the default environments provided for ARMv7 platforms, which includes many enhancements.

Full details on what has changed are available on the GitHub wiki page for the U-Boot repository. It is highly encouraged to read -- and most importantly, comprehend -- the information there before upgrading an existing installation.

Currently Supported Platforms
Pogoplug V2 E02 (uboot-pogo_e02)
Seagate Dockstar (uboot-dockstar)
Seagate GoFlex Home (uboot-goflexhome)
Seagate GoFlex Net (uboot-goflexnet)

Current installations can be updated by installing the package in parenthesis above for the respective platform. After installing the package, it will ask you if you want to flash the new bootloader. Type 'y' and hit enter, and your system will be flashed.

Again, please read the GitHub wiki page first if you have questions. They are probably already answered there.
Arch Linux ARM exists and continues to grow through community support, please donate today!
kmihelich
Developer
 
Posts: 1133
Joined: Tue Jul 20, 2010 6:55 am
Location: aka leming #archlinuxarm

Re: Mainline U-Boot

Postby tomcheng76 » Tue May 27, 2014 3:45 am

Thanks for the work! :)

I love the way how alarm maintains the package, it keeps the package in standard quality, long term updating period etc
tomcheng76
 
Posts: 130
Joined: Mon Dec 13, 2010 11:24 am

Re: Mainline U-Boot

Postby tomcheng76 » Tue May 27, 2014 7:49 am

I confirmed the gfn uboot works flawlessly, good work. The mac address get copied without problem.

This is my old fw_printenv:
$this->bbcode_second_pass_code('', 'ethact=egiga0
bootdelay=3
baudrate=115200
mainlineLinux=yes
console=ttyS0,115200
led_init=green blinking
led_exit=green off
led_error=orange blinking
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
mtdids=nand0=orion_nand
partition=nand0,2
stdin=serial
stdout=serial
stderr=serial
rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params
rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
force_rescue=0
force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi
ubifs_mtd=3
ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0:rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params
ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && ubifsload 0x800000 /boot/uImage && ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi
usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done
usb_scan_list=1 2 3 4
usb_scan_1=usb=0:1 dev=sda1
usb_scan_2=usb=1:1 dev=sdb1
usb_scan_3=usb=2:1 dev=sdc1
usb_scan_4=usb=3:1 dev=sdd1
usb_init=run usb_scan
usb_device=0:1
usb_root=/dev/sda1
usb_rootdelay=10
usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params
usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot
usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
arcNumber=3089
ethaddr=00:10:75:26:2A:18
rescue_installed=1
serverip=192.168.1.100
ipaddr=192.168.1.104
if_netconsole=ping $serverip
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
preboot=run if_netconsole start_netconsole
sata_boot=ide reset; mw 0x800000 0 1; ext2load ide 0:1 0x800000 /boot/uImage; if ext2load ide 0:1 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
sata_bootcmd=run usb_set_bootargs; run sata_boot
bootcmd=run sata_bootcmd; usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset
usb_rootfstype=ext3
')

And this is the new one
$this->bbcode_second_pass_code('', '
baudrate=115200
bootcmd=ide reset; usb start; setenv letter 9;for type in ide usb; do for disk in 0 1; 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
fdt_addr=0x800000
fdt_file=/boot/dtbs/kirkwood-goflexnet.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
ethaddr=00:10:75:26:2A:18
')

I have a silly question, how to load uInitrd ?
Or the new way zImage/device tree will load the ramdisk?
tomcheng76
 
Posts: 130
Joined: Mon Dec 13, 2010 11:24 am

Re: Mainline U-Boot

Postby kmihelich » Tue May 27, 2014 11:12 am

You can just redefine bootm and bootz, and define uenvcmd in /boot/uEnv.txt to accommodate for that. Something like:
$this->bbcode_second_pass_code('', 'bootm=echo Booting from ${disk} ...; run setargs; bootm ${loadaddr} 0xSomewhere;
bootz=echo Booting from ${disk} ...; run setargs; bootz ${loadaddr} 0xSomewhere ${fdt_addr};
uenvcmd=load ${type} ${disk} 0xSomewhere /boot/uInitrd')
Arch Linux ARM exists and continues to grow through community support, please donate today!
kmihelich
Developer
 
Posts: 1133
Joined: Tue Jul 20, 2010 6:55 am
Location: aka leming #archlinuxarm

Re: Mainline U-Boot

Postby tomcheng76 » Wed May 28, 2014 1:34 am

$this->bbcode_second_pass_quote('kmihelich', 'Y')ou can just redefine bootm and bootz, and define uenvcmd in /boot/uEnv.txt to accommodate for that. Something like:
$this->bbcode_second_pass_code('', 'bootm=echo Booting from ${disk} ...; run setargs; bootm ${loadaddr} 0xSomewhere;
bootz=echo Booting from ${disk} ...; run setargs; bootz ${loadaddr} 0xSomewhere ${fdt_addr};
uenvcmd=load ${type} ${disk} 0xSomewhere /boot/uInitrd')


Thanks for the tips :)
tomcheng76
 
Posts: 130
Joined: Mon Dec 13, 2010 11:24 am

Re: Mainline U-Boot

Postby pm4888 » Sun Jun 01, 2014 3:31 am

I've another silly question:
My alarm is installed on ext usb hdd and if it's not connected my pogoplug v2 boots into factory os/software when rebooted.

Now if I upgrade to this pogoplug specific package, does it get in the way of using factory os/software on my pogoplugv2 when rebooted?

Thanks.
pm4888
 
Posts: 17
Joined: Thu Aug 22, 2013 2:20 pm
Location: Albany, NY

Re: Mainline U-Boot

Postby kmihelich » Sun Jun 01, 2014 4:10 am

It will not boot into stock with our U-Boot. Using the stock firmware is not the goal of this distribution.
Arch Linux ARM exists and continues to grow through community support, please donate today!
kmihelich
Developer
 
Posts: 1133
Joined: Tue Jul 20, 2010 6:55 am
Location: aka leming #archlinuxarm

Re: Mainline U-Boot

Postby Guidobelix » Mon Jun 02, 2014 7:00 am

First of all thanks a lot to all of you for this great initiative, I look forward to being able to install to my device too.
And that brings me to my question: is there already a roadmap to extend support to the other Kirkwood platforms supported by ALARM?

Thanks a lot
Guido
Guidobelix
 
Posts: 45
Joined: Fri Jun 21, 2013 6:52 am

Re: Mainline U-Boot

Postby kmihelich » Mon Jun 02, 2014 11:08 am

More platforms will be added when they're added.
Arch Linux ARM exists and continues to grow through community support, please donate today!
kmihelich
Developer
 
Posts: 1133
Joined: Tue Jul 20, 2010 6:55 am
Location: aka leming #archlinuxarm

Re: Mainline U-Boot

Postby Sergeanter » Mon Jun 02, 2014 4:47 pm

Would it be possible to look into MMC card boot option when V4's turn comes? I am using Davy Gravy's U-Boot now on some of my V4's but that effectively disables SATA and it never got resolved AFAIK
Sergeanter
 
Posts: 82
Joined: Wed Oct 02, 2013 5:14 am

Next

Return to Marvell Kirkwood

Who is online

Users browsing this forum: No registered users and 9 guests

cron