80 lines
1.4 KiB
Bash
80 lines
1.4 KiB
Bash
#!/bin/sh
|
|
|
|
PATH=/env/bin
|
|
export PATH
|
|
|
|
. /env/config
|
|
addpart /dev/mtd0 $mtdparts
|
|
|
|
usbserial -s "Mio A701 usb gadget"
|
|
|
|
gpio_get_value 22
|
|
is_usb_connected=$?
|
|
|
|
gpio_get_value 93
|
|
is_vol_up=$?
|
|
|
|
fb0.enable=1
|
|
# Phase1: Handle Vol-Up key case : drop immediately to console
|
|
if [ $is_vol_up != 0 ]; then
|
|
console_mode
|
|
exit
|
|
fi
|
|
|
|
# Phase2: Handle Power-On case : debounce PowerUp key or Halt
|
|
if [ $global.system.reset = "POR" -o $global.system.reset = "WKE" ]; then
|
|
powerup_released=0
|
|
|
|
gpio_get_value 0
|
|
is_power_up=$?
|
|
if [ $is_power_up = 0 ]; then
|
|
powerup_released=1
|
|
fi
|
|
msleep 500
|
|
|
|
gpio_get_value 0
|
|
is_power_up=$?
|
|
if [ $is_power_up = 0 ]; then
|
|
powerup_released=1
|
|
fi
|
|
|
|
if [ $powerup_released = 1 ]; then
|
|
echo "Power button not held, halting"
|
|
poweroff
|
|
fi
|
|
fi
|
|
|
|
# Phase3: display logo
|
|
led keyboard 0
|
|
splash /dev/mtd0.barebox-logo
|
|
|
|
# Phase4: check for SD Card override
|
|
sdcard_override
|
|
if [ $? = 0 ]; then
|
|
console_mode
|
|
exit
|
|
fi
|
|
|
|
# Phase5: check for MTD override
|
|
mtd_env_override
|
|
if [ $? = 0 ]; then
|
|
echo "Switching to custom environment"
|
|
/env/init
|
|
exit
|
|
fi
|
|
|
|
# Phase6: check for user interrupting auto-boot
|
|
echo "No custom environment found"
|
|
if [ $is_usb_connected != 0 ]; then
|
|
echo -n "Hit any key to stop autoboot: "
|
|
timeout -a $autoboot_timeout
|
|
if [ $? != 0 ]; then
|
|
console_mode
|
|
exit
|
|
fi
|
|
fi
|
|
|
|
# Phase7: auto-boot linux kernel
|
|
echo "Booting linux kernel on docg3 chip ..."
|
|
bootm /dev/mtd0.kernel
|