mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			Package: update load_xiongmai
							parent
							
								
									da4d3f1d19
								
							
						
					
					
						commit
						cff39157a2
					
				|  | @ -1,46 +1,35 @@ | ||||||
| #!/bin/sh | #!/bin/sh | ||||||
| # Useage: ./loadxm530 [ -r|-i|-a ] |  | ||||||
| #         -r : rmmod all modules |  | ||||||
| #         -i : insmod all modules |  | ||||||
| #    default : rmmod all moules and then insmod them |  | ||||||
| # |  | ||||||
| 
 |  | ||||||
| chipid=$(ipcinfo --chip-name) | chipid=$(ipcinfo --chip-name) | ||||||
|  | [ "${chipid}" = "xm550" ] && MEM_ALL=128 || MEM_ALL=64 | ||||||
| 
 | 
 | ||||||
| [ "${chipid}" == "xm550" ] && MEM_ALL=128 || MEM_ALL=64 | MODULE=/lib/modules/3.10.103/xiongmai | ||||||
| 
 |  | ||||||
| MEM_START=0x800 | MEM_START=0x800 | ||||||
| MEM_SAMALL_LIN=0x1 | MEM_SAMALL_LIN=0x1 | ||||||
| 
 | 
 | ||||||
| MEM_OS=`cat /proc/cmdline  | awk '{print $1}' | sed -e 's/mem=//' -e 's/M//'` | MEM_OS=$(cat /proc/cmdline | awk '{print $1}' | sed -e 's/mem=//' -e 's/M//') | ||||||
| MEM_LEN=`echo "$MEM_ALL $MEM_OS"|awk '{printf("0x%03x00000",$1-$2)}'` | MEM_LEN=$(echo "$MEM_ALL $MEM_OS"|awk '{printf("0x%03x00000",$1-$2)}') | ||||||
| MEM_START=`echo "$MEM_START $MEM_SAMALL_LIN $MEM_OS"|awk '{printf("0x%03x00000",$1+$2*$3)}'` | MEM_START=$(echo "$MEM_START $MEM_SAMALL_LIN $MEM_OS"|awk '{printf("0x%03x00000",$1+$2*$3)}') | ||||||
| echo MEM_START=$MEM_START  MEM_LEN=$MEM_LEN | echo MEM_START="$MEM_START" MEM_LEN="$MEM_LEN" | ||||||
| 
 |  | ||||||
| VI_BUFF=2 | VI_BUFF=2 | ||||||
| 
 | 
 | ||||||
| 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_audio() | insert_audio() { | ||||||
| { |  | ||||||
| 	echo "insert audio" | 	echo "insert audio" | ||||||
| 	insmod xm_i2s.ko | 	insmod xm_i2s.ko | ||||||
| 	insmod acodec.ko | 	insmod acodec.ko | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| insert_h265() | insert_h265() { | ||||||
| { | 	echo "insert h265" | ||||||
|         echo "insert h265" | 	insmod mve_rsrc.ko | ||||||
|         insmod mve_rsrc.ko | 	insmod mve_base.ko | ||||||
|         insmod mve_base.ko |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| insert_vo() | insert_vo() { | ||||||
| { |  | ||||||
| 	regs 20000000 1 | 	regs 20000000 1 | ||||||
| 	regs 20000010 12042d02 | 	regs 20000010 12042d02 | ||||||
| 	regs 20000044 0x2777 | 	regs 20000044 0x2777 | ||||||
|  | @ -52,50 +41,45 @@ insert_vo() | ||||||
| 	insmod xm530_vdec.ko | 	insmod xm530_vdec.ko | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| remove_audio() | remove_audio() { | ||||||
| { |  | ||||||
| 	echo "remove audio" | 	echo "remove audio" | ||||||
| 	rmmod -w acodec | 	rmmod -w acodec | ||||||
| 	rmmod -w xm_i2s | 	rmmod -w xm_i2s | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| insert_sns() | insert_sns() { | ||||||
| { | 	#Sensor clock 27MHz | ||||||
|     #Sensor clock 27MHz | 	#regs 0x2000002c 1; | ||||||
| 		#regs 0x2000002c 1; | 	#regs 0x2000000c 0x10110010; | ||||||
| 		#regs 0x2000000c 0x10110010; | 	#regs 0x20000010 0x901F0010; | ||||||
| 		#regs 0x20000010 0x901F0010; | 	#regs 0x20000014 0x01120000; | ||||||
| 		#regs 0x20000014 0x01120000; | 	#regs 0x2000002c 0; | ||||||
| 		#regs 0x2000002c 0; | 	#sleep 0.1; | ||||||
| 		#sleep 0.1; | 	insmod xm_i2c.ko; | ||||||
| 		insmod xm_i2c.ko; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| remove_sns() | remove_sns() { | ||||||
| { |  | ||||||
| 	rmmod -w xm_i2c &> /dev/null | 	rmmod -w xm_i2c &> /dev/null | ||||||
| 	rmmod -w ssp_sony &> /dev/null | 	rmmod -w ssp_sony &> /dev/null | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| insert_ko() | insert_ko() { | ||||||
| { | 	# driver load | ||||||
| # driver load | 	insert_sns > /dev/null | ||||||
| 		insert_sns > /dev/null | 	insmod mmz.ko mmz_start="$MEM_START" mmz_size="$MEM_LEN" | ||||||
| 		insmod mmz.ko mmz_start=$MEM_START mmz_size=$MEM_LEN | 	insmod xm530_vi.ko buffer=$VI_BUFF | ||||||
| 		insmod xm530_vi.ko buffer=$VI_BUFF | 	insmod xm530_isp.ko | ||||||
| 		insmod xm530_isp.ko | 	insmod xm530_rgn.ko | ||||||
| 		insmod xm530_rgn.ko | 	insmod xm530_h264.ko | ||||||
| 		insmod xm530_h264.ko | 	insmod xm_rtc.ko | ||||||
| 		insmod xm_rtc.ko | 	insmod xm_wdt.ko | ||||||
| 		insmod xm_wdt.ko | 	insmod log.ko | ||||||
| 		insmod log.ko | 	insert_audio | ||||||
| 		insert_audio | 	insert_h265 | ||||||
| 		insert_h265 | 	#insert_vo | ||||||
| 		#insert_vo |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| remove_ko() | remove_ko() { | ||||||
| { |  | ||||||
| 	remove_audio | 	remove_audio | ||||||
| 	rmmod -w xm_wdt | 	rmmod -w xm_wdt | ||||||
| 	rmmod -w xm_rtc | 	rmmod -w xm_rtc | ||||||
|  | @ -104,58 +88,53 @@ remove_ko() | ||||||
| 	rmmod -w xm530_isp | 	rmmod -w xm530_isp | ||||||
| 	rmmod -w xm530_vi | 	rmmod -w xm530_vi | ||||||
| 	rmmod -w mmz | 	rmmod -w mmz | ||||||
| 
 |  | ||||||
| 	remove_sns | 	remove_sns | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| make_symlink() { | make_symlink() { | ||||||
| if [ ! -f /usr/lib/libsns.so ]; then | 	if [ ! -f /usr/lib/libsns.so ]; then | ||||||
| 	SNS_TYPE=$(ipcinfo --short-sensor) | 		SNS_TYPE=$(ipcinfo --short-sensor) | ||||||
| 	logger -s -p daemon.info -t xiongmai "You sensor is $SNS_TYPE and symlink to libsns.so not found" | 		logger -s -p daemon.info -t xiongmai "You sensor is $SNS_TYPE and symlink to libsns.so not found" | ||||||
| 	case $SNS_TYPE in | 
 | ||||||
| 	imx335|sc335e) | 		case $SNS_TYPE in | ||||||
| 		logger -s -p daemon.info -t xiongmai "Create new symlink to libsns_X50_XM530.so" | 			imx335|sc335e) | ||||||
| 		ln -sf /usr/lib/sensors/libsns_X50_XM530.so /usr/lib/libsns.so | 				logger -s -p daemon.info -t xiongmai "Create new symlink to libsns_X50_XM530.so" | ||||||
| 		;; | 				ln -sf /usr/lib/sensors/libsns_X50_XM530.so /usr/lib/libsns.so | ||||||
| 	*) | 				;; | ||||||
| 		logger -s -p daemon.info -t xiongmai "Create new symlink to libsns_X123_XM530.so" | 			*) | ||||||
| 		ln -sf /usr/lib/sensors/libsns_X123_XM530.so /usr/lib/libsns.so | 				logger -s -p daemon.info -t xiongmai "Create new symlink to libsns_X123_XM530.so" | ||||||
| 		;; | 				ln -sf /usr/lib/sensors/libsns_X123_XM530.so /usr/lib/libsns.so | ||||||
| 	esac | 				;; | ||||||
| fi | 		esac | ||||||
|  | 	fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| load_usage() | load_usage() { | ||||||
| { | 	echo "Usage: $0 [-option]" | ||||||
| 	echo "Usage:  ./loadxm530 [-option]" | 	echo "options:" | ||||||
| 		echo "options:" | 	echo "    -i                  insert modules" | ||||||
| 		echo "    -i                       insert modules" | 	echo "    -r                  remove modules" | ||||||
| 		echo "    -r                       remove modules" | 	echo "    -h                  help information" | ||||||
| 		echo "    -h                       help information" | 	echo -e "for example: ./loadxm530 -i\n" | ||||||
| 		echo -e "for example: ./loadxm530 -i\n" |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # load module. | # load module. | ||||||
| if [ "$1" = "-i" ] | if [ "$1" = "-i" ]; then | ||||||
| then | 	cd $MODULE | ||||||
| cd /lib/modules/3.10.103\+/xiongmai | 	insert_ko | ||||||
| insert_ko | 	make_symlink | ||||||
| make_symlink |  | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ "$1" = "-r" ] | if [ "$1" = "-r" ]; then | ||||||
| then | 	remove_ko | ||||||
| remove_ko |  | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ "$1" = "-h" ] | if [ "$1" = "-h" ]; then | ||||||
| then | 	load_usage | ||||||
| load_usage | 	exit | ||||||
| exit |  | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| if [ $# -eq 0 ] || [ "$1" = "-a" ] | if [ $# -eq 0 ] || [ "$1" = "-a" ]; then | ||||||
| then | 	remove_ko | ||||||
| remove_ko | 	insert_ko | ||||||
| insert_ko |  | ||||||
| fi | fi | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue