9
0
Fork 0
barebox/arch/arm/boards/mioa701/env/bin/init

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