1. RBL (Rom Boot Loader), for more details, see DM365 datasheet
section 3.2
2. UBL (User Boot Loader). The RBL can only load 30KB program from
NAND or other storage, and user program usually is much larger than
this,
that's why it's needed.
3. .
Full source code is provided with the
kit.
4. MontaVista Pro 5.0 Kernel
5. Load root file system from NAND, which is in cramfs format. You
can add/delete files using cramfs tools on Linux machine.
6. /etc/inittab says for boot up initialization, goes to
/etc/init.d/rcS, at the end of its content:
DVEVMDIR=/opt/ipnc
# Load the dsplink and cmem kernel modules
cd $DVEVMDIR
$DVEVMDIR//av_capture_load.sh
cd /dev
ln -s rtc0 rtc
cd $DVEVMDIR
mount -t jffs2 /dev/mtdblock4 /mnt/nand
sleep 1
./system_server &
$DVEVMDIR/loadkmodules.sh
$DVEVMDIR/loadmodules_ipnc.sh
ifconfig lo 127.0.0.1
killall -12 system_server
# Start the demo application
cd $DVEVMDIR
$DVEVMDIR/autorun.sh
6.1 Load some kernel modules used by AV_SERVER application.
content of av_capture_load.sh
#!/bin/sh
./av_capture_unload.sh 2>/dev/null
./csl_load.sh
./drv_load.sh
insmod cmemk.ko phys_start=0x83800000 phys_end=0x88000000
allowOverlap=1 phys_start_1=0x00001000 phys_end_1=0x00008000
pools_1=1x28672
insmod edmak.ko
insmod irqk.ko
insmod dm365mmap.ko
6.1.1 content of csl_load.sh
#!/bin/sh
module="csl"
./csl_unload.sh 2>/dev/null
# invoke insmod with all arguments we got
insmod ./$module.ko || exit 1
# retrieve major number
major=$(awk '$2=="csl" {print $1}' /proc/devices)
rm -f /dev/${module}[0-9]
mknod /dev/${module}0 c $major 0
mknod /dev/${module}1 c $major 1
mknod /dev/${module}2 c $major 2
mknod /dev/${module}3 c $major 3
mknod /dev/${module}4 c $major 4
mknod /dev/${module}5 c $major 5
mknod /dev/${module}6 c $major 6
mknod /dev/${module}7 c $major 7
mknod /dev/${module}8 c $major 8
mknod /dev/${module}9 c $major 9
6.1.2 content of drv_load.sh
#./drv_unload.sh 2>/dev/null
insmod ./drv.ko
if [ ! -f /dev/dev_i2c ]
then
major=$(awk
'$2=="dev_i2c" {print $1}' /proc/devices)
mknod
/dev/dev_i2c c ${major} 0
fi
if [ ! -f /dev/dev_dma ]
then
major=$(awk
'$2=="dev_dma" {print $1}' /proc/devices)
mknod
/dev/dev_dma c ${major} 0
fi
6.2 Load TI Davinci Drivers. content of loadkmodules.sh
# insmod - insert kernel modules - ANR
#modules (.ko) - /home/anand/home1/filesys2/root/modules/
#
#insmod list as follows,
#
#init.d modules
#/opt/ipnc/modules/init.d_ins/checkroot.sh
/opt/ipnc/modules/init.d_ins/mountall.sh
/opt/ipnc/modules/init.d_ins/ifupdown start
/opt/ipnc/modules/init.d_ins/hotplug start
/opt/ipnc/modules/init.d_ins/portmap start
/opt/ipnc/modules/init.d_ins/inetd start
#
#Kernel modules
#other
insmod /opt/ipnc/modules/crc-ccitt.ko
insmod /opt/ipnc/modules/libcrc32c.ko
insmod /opt/ipnc/modules/deadline-iosched.ko
insmod /opt/ipnc/modules/cfq-iosched.ko
insmod /opt/ipnc/modules/i2c-emac.ko cmdline="`cat
/proc/cmdline`"
insmod /opt/ipnc/modules/sbull.ko
#cripto
insmod /opt/ipnc/modules/crc32c.ko
insmod /opt/ipnc/modules/deflate.ko
insmod /opt/ipnc/modules/des.ko
insmod /opt/ipnc/modules/md5.ko
insmod /opt/ipnc/modules/sha1.ko
#fs
insmod /opt/ipnc/modules/nls_ascii.ko
insmod /opt/ipnc/modules/nls_utf8.ko
insmod /opt/ipnc/modules/exportfs.ko
insmod /opt/ipnc/modules/nfsd.ko
#driver
#
#net
insmod /opt/ipnc/modules/loop.ko
insmod /opt/ipnc/modules/tun.ko
insmod /opt/ipnc/modules/slhc.ko
insmod /opt/ipnc/modules/netconsole.ko
insmod /opt/ipnc/modules/ppp_generic.ko
insmod /opt/ipnc/modules/ppp_synctty.ko
insmod /opt/ipnc/modules/ppp_async.ko
insmod /opt/ipnc/modules/ppp_deflate.ko
insmod /opt/ipnc/modules/davinci_emac.ko
#mmc
insmod /opt/ipnc/modules/mmc_core.ko
insmod /opt/ipnc/modules/mmc_block.ko
insmod /opt/ipnc/modules/davinci-mmc.ko
#usb
insmod /opt/ipnc/modules/usbcore.ko
insmod /opt/ipnc/modules/musb_hdrc.ko
insmod /opt/ipnc/modules/usbmon.ko
#insmod /opt/ipnc/modules/g_file_storage.ko
#scsi
insmod /opt/ipnc/modules/scsi_transport_iscsi.ko
insmod /opt/ipnc/modules/libiscsi.ko
insmod /opt/ipnc/modules/iscsi_tcp.ko
6.3 mount ramdisk. content of loadmodues_ipnc.sh
#!/bin/sh
umount /mnt/ramdisk 2>/dev/null
rmmod sbull.ko 2>/dev/null
insmod sbull.ko
sleep 1
mkdosfs -v /dev/sbulla 2>/dev/null
mkdir /mnt/ramdisk 2>/dev/null
mount -t vfat /dev/sbulla /mnt/ramdisk
2>/dev/null
6.4 start BOA webserver. content of autorun.sh
sleep 1
./boa -c /etc &