Basic Device Setup at time of shipment Single drive boot (internal sd only)

U-Boot Defaults

U-Boot 2011.06-02334-g8f495d9-dirty (Mar 01 2011 - 06:57:05)
Marvell-DreamPlug

SoC:   Kirkwood 88F6281_A0
DRAM:  512 MiB
SF: Detected MX25L1606 with page size 256, total 1 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0, egiga1
88E1121 Initialized on egiga0
88E1121 Initialized on egiga1
Hit any key to stop autoboot:  3

Marvell>> printenv

bootcmd=setenv ethact egiga0; ${x_bootcmd_ethernet}; setenv ethact egiga1; ${x_bootcmd_ethernet}; ${x_bootcmd_usb}; ${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; bootm 0x6400000;
bootdelay=3
baudrate=115200
x_bootcmd_ethernet=ping 192.168.2.1
x_bootcmd_usb=usb start
x_bootcmd_kernel=ext2load usb 0 0x6400000 uImage
x_bootargs=console=ttyS0,115200
x_bootargs_root=root=/dev/sda2 rootdelay=10
ethact=egiga0
ethaddr=F0:AD:4E:00:7C:xx
eth1addr=F0:AD:4E:00:7C:xx
stdin=serial
stdout=serial
stderr=serial

Hit any key to stop autoboot:  3

Marvell>> help
?       - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
date    - get/set/reset date & time
dhcp    - boot image via network using DHCP/TFTP protocol
echo    - echo args to console
editenv - edit environment variable
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
go      - start application at address 'addr'
help    - print command description/usage
iminfo  - print header information for application image
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
md      - memory display
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mtest   - simple RAM read/write test
mw      - memory write (fill)
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sf      - SPI flash sub-system
sleep   - delay execution for some time
source  - run script from memory
tftpboot- boot image via network using TFTP protocol
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor version


# Used for bootp/dhcp/tftp/nfs booting

setenv serverip  <server-ip>
setenv ipaddr    <board-ip-addr>
setenv netmask   <netmask>
setenv gatewayip <gateway-ip>
saveenv

U-Boot MultiBoot

This setup will allow you to boot off usb/esata/external-sd/internal-sd. 
It will auto test all 4 in order of sdd >> sdc >> sdb >> sda

currently when it hits the go 0x00900000 it will hang.

This is due to the fact go is a cmd statement telling it to load a specific Memory segment.

We are working to get ukernels working. so then the multi boot for uboot will work correctly.

Enter the following lines to enable multiboot:


Clear existing settings
setenv bootargs
setenv bootcmd
setenv x_bootcmd_usb
setenv x_bootcmd_kernel
setenv x_bootcmd_ethernet

Now Set new values: sda = internal linux sd / da0 = internal Freebsd
                    da1 = external FreeBSD sd
                    da2 = 1st external FreeBSD usb drive or esata
                    da3 = 1st external Freebsd usb drive or esata if drive da2 is plugged into usb

setenv bootdelay 3
setenv bootcmd_eth 'setenv ethact egiga0; ${x_b_e}; setenv ethact egiga1; ${x_b_e};'
setenv ethact egiga0
setenv clr_k 'echo Purging kernel; mw 0x6400000 0x0 0x300000'
setenv x_b_e ping ip.of.your.router
setenv x_b_u usb start
setenv x_b 'console=ttyS0,115200'
setenv x_ba 'root=/dev/sda2 panic=10 rootwait'
setenv x_bb 'root=/dev/da1s2 panic=10 rootwait'
setenv x_bc 'root=/dev/da2s2 panic=10 rootwait'
setenv x_bd 'root=/dev/da3s2 panic=10 rootwait'
setenv x_fa 'ex2load usb 0 0x6400000 uImage'
setenv x_fb 'fatload usb 1 0x00900000 kernel.bin'
setenv x_fc 'fatload usb 2 0x64000000 ukernel'
setenv x_fd 'fatload usb 3 0x64000000 ukernel'
setenv x_bma 'bootm 0x6400000'
setenv x_bmb 'go 0x00900000'
setenv x_bmc 'bootm 0x6400000'
setenv x_bmd 'bootm 0x6400000'
setenv boot_sda 'echo ** sda/usb/intsd 0 **; ${x_b_u}; setenv bootargs ${x_b} ${x_ba}; ${x_fa}; ${x_bma};'
setenv boot_sdb 'echo ** sdb/usb/extsd 1 **; ${x_b_u}; setenv bootargs ${x_b} ${x_bb}; ${x_fb}; ${x_bmb};'
setenv boot_sdc 'echo ** sdc/usb/eSata 2 **; ${x_b_u}; setenv bootargs ${x_b} ${x_bc}; ${x_fc}; ${x_bmc};'
setenv boot_sdd 'echo ** sdd/usb/eSata 3 **; ${x_b_u}; setenv bootargs ${x_b} ${x_bd}; ${x_fd}; ${x_bmd};'
setenv bootcmd 'run clr_k; run boot_sdd; run boot_sdb; run boot_sdc; run boot_sda'
saveenv

Build Script for 9.x-Stable:

#
#Version : 9
#date Julu 9, 2012
#writen By RNeese (r.neese@gmail.com)
#

set -eu                                 # reports errors in the script

###### Edit only these lines ######
DEVICE_NAME="dreamplug"                 # Device base name
DEVICE_ARCH="arm"                       # Device Archutecture
DEVICE_KERNEL="DREAMPLUG"               # ls /usr/src/sys/conf and find your cpu
export DRIVE=da0                        # da0/da1/da2/da3
######### DO NOT EDIT ############### Envirmental settings for build ################
OBJDIR="/usr/obj/${DEVICE_ARCH}.${DEVICE_ARCH}/usr/"
kernel="/mnt/1"
export DESTDIR="/mnt/2"
#####################################################################################

####Build SD/HD########
dd if=/dev/zero of=/dev/'${DRIVE}' bs=512 count=1
gpart create -s mbr '${DRIVE}'
gpart add -s32m -t \!14 '${DRIVE}'
gpart set -a active -i 1 '${DRIVE}'
gpart add -t freebsd '${DRIVE}'
newfs_msdos -F 16 /dev/'${DRIVE}'s1
newfs /dev/'${DRIVE}'s2
mount -t msdosfs /dev/'${DRIVE}'s1 /mnt/1
mount /dev/'${DRIVE}'s2 /mnt/2

######## port checking script ########
port_is_installed(){
[ -x "/usr/local/bin/$1" ] || pkg_add -r $1
}

#check to see needed pkgs are installed
#Add svn
[ -x "/usr/local/bin/svn" ] || pkg_add -r subversion

####### fetch/update /usr/src dir ###########
fetch_src-head(){
svn co http://svn.freebsd.org/base/head /usr/src-head
}
[ -e "/usr/src-head/Makefile" ] || fetch_src-head

cd /usr/src
make clean
make ARCH=arm TARGET_ARCH=arm kernel-toolchain
make -j 8 buildworld TARGET_ARCH="${DEVICE_ARCH}"
make installworld TARGET_ARCH="${DEVICE_ARCH}"
make distrib-dirs TARGET_ARCH="${DEVICE_ARCH}"
make distribution TARGET_ARCH="${DEVICE_ARCH}"

cd /usr/src-head
make buildkernel TARGET_ARCH=${DEVICE_ARCH} KERNCONF=${DEVICE_KERNEL}
cp "${OBJDIR}/src-head/sys/${DEVICE_KERNEL}/kernel.bin" "${kernel}"
}

echo '/dev/${drive}s2 / ufs rw,noclusterr,noclusterw 0 0' >> $DESTDIR/etc/fstab

#### Add Daemons to the devices /etc/rc.conf for startup ########
cat << EOF > "$DESTDIR/etc/rc.conf"
hostname="dreamplug"
ifconfig_mge0="DHCP"
sshd_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
dumpdev="NO"
fsck_y_enable="YES"
background_fsck="NO"
force_fsck="YES"
force_fsck_list="/"
EOF
}
echo 'WITHOUT_X11=yes' >> $DESTDIR/etc/make.conf

DreamPlugBasics (last edited 2012-07-23 14:29:35 by RichardNeese)