#!/bin/sh
PATH=$PATH:/usr/local/bin
MODPATH=/lib/modules
loadmod () {
        for i in "$@"; do insmod $MODPATH/$i.ko; done
}
loadmodp () {
        for i in "$@"; do modprobe $i; done
}
makedev () {
        for i in "$@"; do
                rm -f /dev/$i
                mknod /dev/$i c `awk '$2 ~ /'$i'/ {print $1}' /proc/devices` 0
        done
}

gkf_get () {
	awk 'BEGIN{r=1}/^\[/{x=0}/^\['$2']/{x=1}(x)&&/^ *'$3' *=/{sub("^ *'$3' *= *", "");print;r=0}END{exit r}' $1 2>/dev/null
}

loadmod st7565r
glcdd fst:1 fls:

echo 0x20000020 0x10 > /sys/class/davinci_system/system/reg
echo 6 > /proc/sys/net/ipv4/tcp_retries2

# loadmod adc_driver msp430 davinci_pwm st7565r
# (glcdd png:/usr/local/share/boot.png tik:1 &)

p=`while read i; do echo -n $i; done << EOF
 3x16,
 2x20,
49x24,
 1x28,
28x56,
 8x62,
 6x68,
 1x74,
 2x98,
 1x146,
 1x296,
 1x340,
 1x344,
 1x640,
 1x760,
 2x800,
 1x896,
 1x1556,
 1x1808,
 1x2048,
 1x2652,
20x4096,
 2x5744,
 2x6136,
 2x6304,
120x8192,
 2x9796,
 1x20480,
 2x24144,
 1x26200,
 1x34072,
 1x36480,
 1x49152,
 2x52600,
 1x65920,
 1x131072,
 1x262144,
 40x460800,
 4x1382400,
 5x3939840,
 1x7047168,
EOF`
modprobe cmemk \
    phys_start=0x84d00000 phys_end=0x88000000 pools=${p%,} \
    allowOverlap=1 phys_start_1=0x00001000 phys_end_1=0x00008000 pools_1=1x28672
loadmodp edmak irqk dm365mmap musb_hdrc fuse
loadmod fpga ichips
# usbcore asix cdc_ether rndis_host
# loadmod rt3070sta 8192cu 8192du 8712u
makedev dm365mmap
mkdir -p /var/lib /var/run
ifup lo
if ! grep -q ' root=/dev/nfs ' /proc/cmdline; then
	mac=/usr/local/share/mac
	if [ -r $mac ]; then
		ifconfig eth0 down
		ifconfig eth0 hw ether $(cat $mac)
	fi
	ifconfig eth0 0.0.0.0
fi
tz=$(gkf_get ~/.cerevo.ini SWITCH TZ) && timezone $tz
[ $(cat /sys/class/gpio/gpio34/value) = 0 ] && mkdir -p /media/mmcblk0p1 && (mount /dev/mmcblk0p1 /media/mmcblk0p1 -o ro,fmask=0000,dmask=0000 || (/usr/local/bin/run_fifoprio 1 /bin/mount -t exfat /dev/mmcblk0p1 /media/mmcblk0p1 && mount -o remount,ro /media/mmcblk0p1))
(ustbox &)
