mirror of https://github.com/OpenIPC/firmware.git
Fix init script for Hi3516Cv300
parent
ba9cc29540
commit
589b2813ca
|
@ -1,10 +1,9 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# This is part of OpenIPC.org project | 2021.12.01
|
# This is part of OpenIPC.org project | 2022.03.04
|
||||||
#
|
#
|
||||||
# ar0237 imx290 imx307 imx323 imx385 jxf22 ov2718 ov2718_2a sc2235
|
# ar0237 imx290 imx307 imx323 imx385 jxf22 ov2718 ov2718_2a sc2235
|
||||||
|
|
||||||
|
|
||||||
# SoC detect
|
# SoC detect
|
||||||
chipid=$(ipcinfo --chip_id)
|
chipid=$(ipcinfo --chip_id)
|
||||||
|
|
||||||
|
@ -18,39 +17,12 @@ os_mem_size=$(fw_printenv -n osmem | tr -d 'M')
|
||||||
os_mem_size=${os_mem_size:=32}
|
os_mem_size=${os_mem_size:=32}
|
||||||
|
|
||||||
# Sensor config
|
# Sensor config
|
||||||
# SNS_TYPE=$(awk -F '=' '$1=="sensor"{print $2}' RS=" " /proc/cmdline)
|
|
||||||
SNS_TYPE=$(fw_printenv -n sensor)
|
SNS_TYPE=$(fw_printenv -n sensor)
|
||||||
SNS_TYPE=${SNS_TYPE:=ar0237_i2c_dc}
|
SNS_TYPE=${SNS_TYPE:=ar0237_i2c_dc}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
|
|
||||||
#if [ ${chipid} = "hi3516ev100" ]; then
|
|
||||||
# mem_total=64; # 64M, total mem
|
|
||||||
# os_mem_size=32; # 32M, os mem
|
|
||||||
# mmz_start=0x82000000; # mmz start addr, is calculated automatically
|
|
||||||
# mmz_size=32M; # 32M, mmz size, is calculated automatically
|
|
||||||
#elif [ ${chipid} = "hi3516cv300" ]; then
|
|
||||||
# mem_total=128; # 128M, total mem
|
|
||||||
# os_mem_size=40; # 40M, os mem
|
|
||||||
# mmz_start=0x82800000; # mmz start addr, is calculated automatically
|
|
||||||
# mmz_size=88M; # 88M, mmz size, is calculated automatically
|
|
||||||
#else
|
|
||||||
# echo "Wrong chip_id: ${chipid}";
|
|
||||||
# exit 1;
|
|
||||||
#fi
|
|
||||||
#
|
|
||||||
# Checker
|
|
||||||
#echo "${chipid}: ${mem_total}/${os_mem_size} | ${mem_start}/${mmz_start} | ${mmz_size}"
|
|
||||||
|
|
||||||
####################vo config#################################
|
|
||||||
|
|
||||||
#vou interface mode: default(cvbs), bt656, lcd
|
#vou interface mode: default(cvbs), bt656, lcd
|
||||||
vou_intf_mode="default";
|
vou_intf_mode="default";
|
||||||
|
|
||||||
##################################################################
|
|
||||||
|
|
||||||
####################clk config####################################
|
####################clk config####################################
|
||||||
|
|
||||||
vedu_frequency=198000000; # 198M, vedu clock frequency
|
vedu_frequency=198000000; # 198M, vedu clock frequency
|
||||||
|
@ -60,12 +32,42 @@ ive_frequency=297000000; # 297M, ive clock frequency
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
|
|
||||||
|
cd /lib/modules/3.18.20/hisilicon
|
||||||
|
|
||||||
report_error()
|
report_error()
|
||||||
{
|
{
|
||||||
echo "******* Error: There's something wrong, please check! *****"
|
echo "******* Error: There's something wrong, please check! *****"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
insert_osal()
|
||||||
|
{
|
||||||
|
MMZ=$(awk -F '=' '$1=="mmz"{print $2}' RS=" " /proc/cmdline)
|
||||||
|
if [ -z "$MMZ" ]; then
|
||||||
|
insmod hi_osal.ko anony=1 mmz_allocator=hisi mmz=anonymous,0,$mmz_start,$mmz_size || report_error
|
||||||
|
else
|
||||||
|
insmod cma_osal.ko anony=1 mmz_allocator=cma mmz=$MMZ || report_error
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
insert_detect()
|
||||||
|
{
|
||||||
|
insert_sns
|
||||||
|
insmod sys_config.ko vi_vpss_online=$b_arg_online
|
||||||
|
insert_osal
|
||||||
|
insmod hi3516cv300_base.ko
|
||||||
|
insmod hi3516cv300_sys.ko vi_vpss_online=$b_arg_online sensor=$SNS_TYPE mem_total=$mem_total
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_detect()
|
||||||
|
{
|
||||||
|
rmmod hi3516cv300_sys
|
||||||
|
rmmod hi3516cv300_base
|
||||||
|
rmmod hi_osal &> /dev/null
|
||||||
|
rmmod cma_osal &> /dev/null
|
||||||
|
rmmod sys_config.ko
|
||||||
|
}
|
||||||
|
|
||||||
insert_audio()
|
insert_audio()
|
||||||
{
|
{
|
||||||
insmod hi3516cv300_aio.ko
|
insmod hi3516cv300_aio.ko
|
||||||
|
@ -351,8 +353,8 @@ insert_ko()
|
||||||
insmod sys_config.ko vi_vpss_online=$b_arg_online
|
insmod sys_config.ko vi_vpss_online=$b_arg_online
|
||||||
|
|
||||||
# driver load
|
# driver load
|
||||||
insmod hi_osal.ko mmz=anonymous,0,$mmz_start,$mmz_size anony=1 || report_error
|
insert_osal;
|
||||||
insmod hi3516cv300_wdt.ko
|
|
||||||
#insmod hi3516cv300_rtc.ko
|
#insmod hi3516cv300_rtc.ko
|
||||||
insmod hi3516cv300_base.ko
|
insmod hi3516cv300_base.ko
|
||||||
|
|
||||||
|
@ -389,7 +391,7 @@ insert_ko()
|
||||||
insert_audio
|
insert_audio
|
||||||
|
|
||||||
insmod hi_mipi.ko
|
insmod hi_mipi.ko
|
||||||
|
insmod hi3516cv300_wdt.ko
|
||||||
echo "==== Your input Sensor type is $SNS_TYPE ===="
|
echo "==== Your input Sensor type is $SNS_TYPE ===="
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -431,7 +433,7 @@ remove_ko()
|
||||||
|
|
||||||
load_usage()
|
load_usage()
|
||||||
{
|
{
|
||||||
echo "Usage: ./load_universal [-option] [sensor_name]"
|
echo "Usage: ./load_hisilicon [-option] [sensor_name]"
|
||||||
echo "options:"
|
echo "options:"
|
||||||
echo " -i insert modules"
|
echo " -i insert modules"
|
||||||
echo " -r remove modules"
|
echo " -r remove modules"
|
||||||
|
@ -549,13 +551,36 @@ if [ $# -lt 1 ]; then
|
||||||
exit 0;
|
exit 0;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Sensor config
|
||||||
|
# SENSOR=${SENSOR:=imx307}
|
||||||
|
#
|
||||||
|
if [ -n "$SENSOR" ]; then
|
||||||
|
logger -s -p daemon.info -t hisilicon "Manualy set SENSOR as ${SENSOR}"
|
||||||
|
else
|
||||||
|
if fw_printenv -n sensor >/dev/null; then
|
||||||
|
SENSOR_ENV=$(fw_printenv -n sensor)
|
||||||
|
export SENSOR=${SENSOR_ENV}
|
||||||
|
logger -s -p daemon.info -t hisilicon "Get data from environment and set SENSOR as ${SENSOR}"
|
||||||
|
else
|
||||||
|
insert_detect
|
||||||
|
SENSOR_DETECT=$(ipcinfo --long-sensor)
|
||||||
|
export SENSOR=${SENSOR_DETECT:=unknown}
|
||||||
|
remove_detect
|
||||||
|
logger -s -p daemon.info -t hisilicon "Get data from ipcinfo and set SENSOR as ${SENSOR}"
|
||||||
|
fw_setenv sensor $SENSOR && logger -s -p daemon.info -t hisilicon "Write detected ${SENSOR} to U-Boot ENV"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $b_arg_remove -eq 1 ]; then
|
if [ $b_arg_remove -eq 1 ]; then
|
||||||
remove_ko;
|
remove_ko;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $b_arg_insmod -eq 1 ]; then
|
if [ "$SENSOR" = "unknown" ]; then
|
||||||
cd /lib/modules/3.18.20/hisilicon
|
exit 1
|
||||||
|
else
|
||||||
|
if [ $b_arg_insmod -eq 1 ]; then
|
||||||
insert_ko;
|
insert_ko;
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $b_arg_restore -eq 1 ]; then
|
if [ $b_arg_restore -eq 1 ]; then
|
||||||
|
|
Loading…
Reference in New Issue