mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			179 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			179 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/sh
 | |
| 
 | |
| insert_sns() {
 | |
|     case $SENSOR in
 | |
|     sc401ai | sc500ai | sc501ai)
 | |
|         devmem 0xf0220000 32 0x00001473
 | |
|         devmem 0xF0220004 32 0x10000000
 | |
|         devmem 0xF0220008 32 0x00048100
 | |
|         devmem 0xF022000C 32 0x0034003e
 | |
|         devmem 0xF0220010 32 0x30123860
 | |
|         devmem 0xF0220014 32 0x00000000
 | |
|         devmem 0xF0220018 32 0x03ff2001
 | |
|         devmem 0xF022001C 32 0x00000003
 | |
|         devmem 0xF0220020 32 0x00000000
 | |
|         devmem 0xF0220024 32 0x00000000
 | |
|         devmem 0xF0220028 32 0x000000e2
 | |
|         devmem 0xF022002C 32 0x00000000
 | |
|         devmem 0xF0220030 32 0x00000005
 | |
|         devmem 0xF0220034 32 0x01000000
 | |
|         devmem 0xF0220038 32 0x00000000
 | |
|         devmem 0xF022003C 32 0x00000000
 | |
| 
 | |
|         insmod nvt_sen_${SENSOR}.ko sen_cfg_path=/etc/sensors/sen_${SENSOR}.cfg
 | |
|         ;;
 | |
|     *)
 | |
|         echo "xxxx Invalid sensor type $SENSOR xxxx"
 | |
|         ;;
 | |
|     esac
 | |
| }
 | |
| 
 | |
| insert_ko() {
 | |
|     # System Driver Init
 | |
| 
 | |
|     #modprobe ehci-hcd
 | |
|     #modprobe xhci_plat_hcd
 | |
|     #modprobe nvt_status
 | |
|     #modprobe nvt_pstore
 | |
|     #insmod /extra/crypto/cryptodev-linux/cryptodev.ko
 | |
|     insmod hdal/kwrap.ko
 | |
|     insmod hdal/comm/nvtmem/nvtmem.ko
 | |
|     insmod hdal/kdrv_builtin/kdrv_builtin.ko
 | |
| 
 | |
|     insmod hdal/comm/kdrv_comm.ko
 | |
|     insmod hdal/kdrv_gfx2d/kdrv_gfx2d.ko
 | |
|     insmod hdal/kdrv_videocapture/kdrv_videocapture.ko
 | |
|     insmod hdal/kdrv_videoprocess/kdrv_videoprocess.ko
 | |
|     insmod hdal/kflow_common/kflow_common.ko
 | |
|     insmod hdal/kflow_gfx/videosprite/nvt_videosprite.ko
 | |
|     insmod hdal/kflow_videocapture/kflow_videocapture.ko
 | |
|     insmod hdal/kflow_videoprocess/kflow_videoprocess.ko
 | |
| 
 | |
|     # rpc
 | |
|     #insmod hdal/kdrv_rpc/kdrv_rpc.ko
 | |
| 
 | |
|     #SDE
 | |
| 
 | |
|     # kdrv_gfx2d
 | |
|     #insmod hdal/kdrv_gfx2d/kdrv_affine/affine_neon/kdrv_afn_neon.ko
 | |
|     #insmod hdal/kdrv_gfx2d/kdrv_affine/kdrv_afn.ko
 | |
|     insmod hdal/kflow_gfx/nvt_gfx.ko
 | |
| 
 | |
|     # kdrv_vdoout
 | |
|     #insmod hdal/kdrv_videoout/ide/nvt_ide.ko
 | |
|     #insmod hdal/kdrv_videoout/mi/nvt_mi.ko
 | |
|     #insmod hdal/kdrv_videoout/dsi/nvt_dsi.ko
 | |
|     #insmod hdal/kdrv_videoout/display_obj/kdrv_videoout.ko
 | |
| 
 | |
|     # kflow_videoout
 | |
|     #insmod hdal/kflow_videoout/unit/kflow_videoout.ko
 | |
| 
 | |
|     # panel device
 | |
|     #insmod hdal/display_panel/nvt_dispdev_panel.ko
 | |
|     #insmod hdal/display_panel/disp_ifpa_lcd1_wm08001_sn75lvds83b/nvt_dispdev_panel_wm08001_sn75lvds83b.ko
 | |
|     #insmod hdal/display_panel/disp_if8b_lcd1_pw35p00_hx8238d/disp_if8b_lcd1_pw35p00.ko
 | |
|     #insmod hdal/display_panel/disp_if8b_lcd1_aucn01/disp_if8b_lcd1_aucn01.ko
 | |
|     #insmod hdal/display_panel/disp_ifdsi_lcd1_nt35510/nvt_dispdev_panel_nt35510.ko
 | |
|     #insmod hdal/kdrv_gfx2d/kdrv_rotation/kdrv_rotation.ko
 | |
|     #insmod hdal/kflow_gfx/videosprite/nvt_videosprite.ko
 | |
| 
 | |
|     # ipp test
 | |
|     #insmod hdal/kdrv_videoprocess/kdrv_ipp_sim/kdrv_ipp_sim.ko
 | |
| 
 | |
|     # nvt_jpg
 | |
|     #insmod /extra/vcodec/jpeg/nvt_jpg.ko
 | |
|     #insmod hdal/kdrv_videocodec/jpeg/kdrv_jpg.ko
 | |
| 
 | |
|     # nvt_h26x
 | |
|     #insmod /extra/vcodec/h26x/nvt_h26x.ko
 | |
|     insmod hdal/kdrv_videocodec/kdrv_h26x.ko
 | |
|     insmod hdal/nvt_vencrc/nvt_vencrc.ko
 | |
| 
 | |
|     # isf vdoenc
 | |
|     insmod hdal/kflow_videoenc/unit/kflow_videoenc.ko
 | |
| 
 | |
|     # isf vdodec
 | |
|     #insmod hdal/kflow_videodec/unit/kflow_videodec.ko
 | |
| 
 | |
|     # audio
 | |
|     insmod hdal/kdrv_audioio/audio_common/nvt_audio.ko
 | |
|     insmod hdal/kdrv_audioio/kdrv_audio/nvt_kdrv_audio.ko
 | |
|     insmod hdal/kflow_audiocapture/unit/kflow_audiocap.ko
 | |
|     insmod hdal/kflow_audioout/unit/kflow_audioout.ko
 | |
|     insmod hdal/kdrv_audioio/audlib_aac/nvt_audlib_aac.ko
 | |
|     insmod hdal/kdrv_audioio/audlib_g711/nvt_audlib_g711.ko
 | |
| 
 | |
|     # isf audenc
 | |
|     insmod hdal/kflow_audioenc/unit/kflow_audioenc.ko
 | |
| 
 | |
|     # isf auddec
 | |
|     insmod hdal/kflow_audiodec/unit/kflow_audiodec.ko
 | |
| 
 | |
|     # iq, 3a
 | |
|     insmod hdal/isp/nvt_isp.ko
 | |
|     insmod hdal/ae/nvt_ae.ko
 | |
|     insmod hdal/awb/nvt_awb.ko
 | |
|     insmod hdal/iq/nvt_iq.ko
 | |
|     #insmod hdal/af/nvt_af.ko
 | |
| 
 | |
|     # iq, 3a sample
 | |
|     #insmod hdal/samples/sample_nvt_ae.ko
 | |
|     #insmod hdal/samples/sample_nvt_af.ko
 | |
|     #insmod hdal/samples/sample_nvt_awb.ko
 | |
|     #insmod hdal/samples/sample_nvt_iq.ko
 | |
| 
 | |
|     #uvac module
 | |
|     #modprobe nvt_usb2dev
 | |
|     #modprobe nvt_usb2dev8
 | |
| 
 | |
|     # dsp
 | |
|     #insmod hdal/kflow_rpc/nvt_ipc.ko
 | |
|     #insmod hdal/dsp/nvt_dsp.ko
 | |
| 
 | |
|     #cv
 | |
|     #insmod hdal/kdrv_ive/kdrv_ive.ko
 | |
|     #insmod hdal/kdrv_md/kdrv_md.ko
 | |
|     #insmod hdal/kdrv_dis/kdrv_dis.ko
 | |
| 
 | |
|     #ai
 | |
|     #insmod hdal/kdrv_ai/kdrv_ai.ko
 | |
|     #insmod hdal/kdrv_ai/kdrv_ai.ko ai_net_supported_num=1;
 | |
|     #insmod hdal/kflow_cnn/kflow_cnn.ko;
 | |
|     #insmod hdal/kflow_nue/kflow_nue.ko;
 | |
|     #insmod hdal/kflow_nue2/kflow_nue2.ko;
 | |
|     #insmod hdal/kflow_cpu/kflow_cpu.ko;
 | |
|     #insmod hdal/kflow_dsp/kflow_dsp.ko;
 | |
|     #insmod hdal/kflow_ai_net/kflow_ai_net.ko
 | |
|     #fb
 | |
|     #insmod /kernel/drivers/video/fbdev/core/fb.ko
 | |
|     #insmod /kernel/drivers/video/fbdev/core/cfbcopyarea.ko
 | |
|     #insmod /kernel/drivers/video/fbdev/core/cfbfillrect.ko
 | |
|     #insmod /kernel/drivers/video/fbdev/core/cfbimgblt.ko
 | |
|     #insmod hdal/kdrv_videoout/fbdev/nvt_fb.ko
 | |
| }
 | |
| 
 | |
| cd /lib/modules/4.19.91/novatek
 | |
| insert_ko
 | |
| 
 | |
| # Sensor config
 | |
| # SENSOR=${SENSOR:=imx307}
 | |
| #
 | |
| 
 | |
| if [ -n "$SENSOR" ]; then
 | |
|     logger -s -p daemon.info -t novatek "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 novatek "Get data from environment and set SENSOR as ${SENSOR}"
 | |
|     else
 | |
|         #insert_ko
 | |
|         SENSOR_DETECT=$(ipcinfo -s)
 | |
|         export SENSOR=${SENSOR_DETECT:=unknown}
 | |
|         logger -s -p daemon.info -t novatek "Get data from ipcinfo and set SENSOR as ${SENSOR}"
 | |
|         fw_setenv sensor $SENSOR && logger -s -p daemon.info -t novatek "Write detected ${SENSOR} to U-Boot ENV"
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| insert_sns
 |