diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av300_openipc_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av300_openipc_defconfig
index b6c391e8..c97cb7b2 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av300_openipc_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av300_openipc_defconfig
@@ -51,7 +51,6 @@ BR2_PACKAGE_FWPRINTENV_OPENIPC=y
 BR2_PACKAGE_HASERL=y
 BR2_PACKAGE_HISI_GPIO=y
 BR2_PACKAGE_HISILICON_OSDRV_HI3516CV500=y
-# BR2_PACKAGE_HISILICON_OSDRV_HI3516EV300 is not set
 BR2_PACKAGE_IPCTOOL=y
 BR2_PACKAGE_JSON_C=y
 BR2_PACKAGE_LAME_OPENIPC=y
@@ -69,7 +68,6 @@ BR2_PACKAGE_LIBWEBSOCKETS_OPENIPC=y
 BR2_PACKAGE_LIBYAML=y
 BR2_PACKAGE_MAJESTIC_FONTS=y
 BR2_PACKAGE_MAJESTIC_HI3516CV500=y
-# BR2_PACKAGE_MAJESTIC_HI3516EV300 is not set
 BR2_PACKAGE_MBEDTLS_OPENIPC=y
 # BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
 # BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516cv500_openipc_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516cv500_openipc_defconfig
index 050522a4..86acc885 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516cv500_openipc_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516cv500_openipc_defconfig
@@ -51,7 +51,6 @@ BR2_PACKAGE_FWPRINTENV_OPENIPC=y
 BR2_PACKAGE_HASERL=y
 BR2_PACKAGE_HISI_GPIO=y
 BR2_PACKAGE_HISILICON_OSDRV_HI3516CV500=y
-# BR2_PACKAGE_HISILICON_OSDRV_HI3516EV300 is not set
 BR2_PACKAGE_IPCTOOL=y
 BR2_PACKAGE_JSON_C=y
 BR2_PACKAGE_LAME_OPENIPC=y
@@ -69,7 +68,6 @@ BR2_PACKAGE_LIBWEBSOCKETS_OPENIPC=y
 BR2_PACKAGE_LIBYAML=y
 BR2_PACKAGE_MAJESTIC_FONTS=y
 BR2_PACKAGE_MAJESTIC_HI3516CV500=y
-# BR2_PACKAGE_MAJESTIC_HI3516EV300 is not set
 BR2_PACKAGE_MBEDTLS_OPENIPC=y
 # BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
 # BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516dv300_openipc_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516dv300_openipc_defconfig
index 5d5560a4..d9e73565 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516dv300_openipc_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516dv300_openipc_defconfig
@@ -51,7 +51,6 @@ BR2_PACKAGE_FWPRINTENV_OPENIPC=y
 BR2_PACKAGE_HASERL=y
 BR2_PACKAGE_HISI_GPIO=y
 BR2_PACKAGE_HISILICON_OSDRV_HI3516CV500=y
-# BR2_PACKAGE_HISILICON_OSDRV_HI3516EV300 is not set
 BR2_PACKAGE_IPCTOOL=y
 BR2_PACKAGE_JSON_C=y
 BR2_PACKAGE_LAME_OPENIPC=y
@@ -69,7 +68,6 @@ BR2_PACKAGE_LIBWEBSOCKETS_OPENIPC=y
 BR2_PACKAGE_LIBYAML=y
 BR2_PACKAGE_MAJESTIC_FONTS=y
 BR2_PACKAGE_MAJESTIC_HI3516CV500=y
-# BR2_PACKAGE_MAJESTIC_HI3516EV300 is not set
 BR2_PACKAGE_MBEDTLS_OPENIPC=y
 # BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
 # BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
diff --git a/general/package/hisilicon-osdrv-hi3516cv500/files/script/load3516av300 b/general/package/hisilicon-osdrv-hi3516cv500/files/script/load3516av300
deleted file mode 100755
index 491f5a9d..00000000
--- a/general/package/hisilicon-osdrv-hi3516cv500/files/script/load3516av300
+++ /dev/null
@@ -1,335 +0,0 @@
-#!/bin/sh
-# Useage: ./load3516av300 [ -r|-i|-a ] [ sensor0~1 ]
-#         -r : rmmod all modules
-#         -i : insmod all modules
-#         -a : rmmod all moules and then insmod them
-# e.g: RAW:        ./load3516av300 -i -sensor0 imx335 -sensor1 imx335
-# e.g: BT1120/DC : ./load3516av300 -i -sensor0 imx327 -sensor1 imx327 -osmem 128 -yuv0 1
-# e.g: BT656     : ./load3516av300 -i -sensor0 imx327 -sensor1 imx327 -osmem 128 -yuv0 2
-
-####################Variables Definition##########################
-
-SNS_TYPE0=imx335;           # sensor type
-SNS_TYPE1=NULL;            	# sensor type
-YUV_TYPE0=0;                # 0 -- raw, 1 -- bt1120/DC, 2 --bt656
-CHIP_TYPE=hi3516av300;      # chip type
-#DDR start:0x80000000,   kernel start:0x80000000,  OS(128M); MMZ start:0x88000000
-mem_total=512                # 512M, total mem
-mem_start=0x80000000          # phy mem start
-os_mem_size=128               # 128M, os mem
-mmz_start=0x88000000;         # mmz start addr
-mmz_size=384M;               # 384M, mmz size
-##################################################################
-
-report_error()
-{
-    echo "******* Error: There's something wrong, please check! *****"
-    exit 1
-}
-
-insert_audio()
-{
-    insmod hi3516cv500_aio.ko
-    insmod hi3516cv500_ai.ko
-    insmod hi3516cv500_ao.ko
-    insmod hi3516cv500_aenc.ko
-    insmod hi3516cv500_adec.ko
-    insmod hi3516cv500_acodec.ko
-#    insmod extdrv/hi_tlv320aic31.ko
-    echo "insert audio"
-}
-
-remove_audio()
-{
-    rmmod hi3516cv500_acodec
-#    rmmod hi_tlv320aic31.ko
-    rmmod hi3516cv500_adec
-    rmmod hi3516cv500_aenc
-    rmmod hi3516cv500_ao
-    rmmod hi3516cv500_ai
-    rmmod hi3516cv500_aio
-
-    echo "remove audio"
-}
-
-insert_isp()
-{
-    insmod hi3516cv500_isp.ko
-}
-
-insert_gyro()
-{
-    insmod extdrv/hi_spi.ko
-    insmod hi3516cv500_gyrodis.ko
-    insmod hi3516cv500_motionfusion.ko
-    insmod extdrv/motionsensor_mng.ko
-    insmod extdrv/motionsensor_chip.ko
-}
-
-remove_gyro()
-{
-    rmmod motionsensor_chip
-    rmmod motionsensor_mng
-    rmmod hi3516cv500_motionfusion
-    rmmod hi3516cv500_gyrodis
-    rmmod hi_spi
-}
-
-insert_ko()
-{
-    # driver load
-    insmod hi_osal.ko anony=1 mmz_allocator=hisi mmz=anonymous,0,$mmz_start,$mmz_size || report_error
-
-    # sys config
-    insmod sys_config.ko chip=$CHIP_TYPE sensors=sns0=$SNS_TYPE0,sns1=$SNS_TYPE1, g_cmos_yuv_flag=$YUV_TYPE0
-#    insmod hi_tzasc.ko
-    insmod hi3516cv500_base.ko
-    insmod hi3516cv500_sys.ko
-    insmod hi3516cv500_tde.ko
-    insmod hi3516cv500_rgn.ko
-    insmod hi3516cv500_gdc.ko
-    insmod hi3516cv500_vgs.ko
-    insmod hi3516cv500_dis.ko
-    insmod hi3516cv500_vi.ko
-    insert_isp;
-    insmod hi3516cv500_vpss.ko
-    insmod hi3516cv500_vo.ko
-    insmod hifb.ko video="hifb:vram0_size:16200"     # default fb0:1080p
-
-    insmod hi3516cv500_chnl.ko
-    insmod hi3516cv500_vedu.ko
-    insmod hi3516cv500_rc.ko
-    insmod hi3516cv500_venc.ko
-    insmod hi3516cv500_h264e.ko
-    insmod hi3516cv500_h265e.ko
-    insmod hi3516cv500_jpege.ko
-    insmod hi3516cv500_jpegd.ko
-    insmod hi3516cv500_vfmw.ko
-    insmod hi3516cv500_vdec.ko
-
-    insmod hi3516cv500_ive.ko save_power=1
-#    insmod hi_ipcm.ko
-#    nnie_max_tskbuf_num=64
-    insmod hi3516cv500_nnie.ko nnie_save_power=1 nnie_max_tskbuf_num=32
-    insmod extdrv/hi_pwm.ko
-    insmod extdrv/hi_piris.ko
-    insmod extdrv/hi_sensor_i2c.ko
-    insmod extdrv/hi_sensor_spi.ko
-#    insmod extdrv/hi_sil9136.ko norm=12    #1080P@30fps for umap7p
-#    insmod extdrv/mpu_bosch.ko
-#    insmod extdrv/hi_ssp_st7789.ko
-#    insmod extdrv/hi_ssp_ota5182.ko
-#    insmod extdrv/hi_serdes.ko
-    insmod hi3516cv500_hdmi.ko
-
-    insert_audio
-
-    insmod hi_mipi_rx.ko
-#    insmod hi_mipi_tx.ko
-#    insmod hi_user.ko
-
-#    insert_gyro
-}
-
-remove_ko()
-{
-#    rmmod_gyro
-#    rmmod hi_user
-    remove_audio
-#    rmmod hi_mipi_tx
-    rmmod hi_mipi_rx
-#    rmmod hi_serdes
-#    rmmod hi_sil9136 &> /dev/null
-#    rmmod hi_ssp_ota5182
-#    rmmod hi_ssp_st7789
-    rmmod hi_piris
-    rmmod hi_pwm
-    rmmod hi3516cv500_nnie
-#    rmmod hi_ipcm
-    rmmod hi3516cv500_ive
-    rmmod hi3516cv500_jpegd
-    rmmod hi3516cv500_vfmw
-    rmmod hi3516cv500_vdec
-    rmmod hi3516cv500_rc
-    rmmod hi3516cv500_jpege
-    rmmod hi3516cv500_h264e
-    rmmod hi3516cv500_h265e
-    rmmod hi3516cv500_venc
-    rmmod hi3516cv500_vedu
-    rmmod hi3516cv500_chnl
-    rmmod hifb
-    rmmod hi3516cv500_vo
-    rmmod hi3516cv500_vpss
-    rmmod hi3516cv500_isp
-    rmmod hi3516cv500_vi
-    rmmod hi3516cv500_gdc
-    rmmod hi3516cv500_dis
-    rmmod hi3516cv500_vgs
-    rmmod hi3516cv500_rgn
-    rmmod hi3516cv500_tde
-    rmmod hi3516cv500_hdmi
-
-    rmmod hi_sensor_i2c &> /dev/null
-    rmmod hi_sensor_spi &> /dev/null
-
-#    rmmod mpu_bosch
-    rmmod hi3516cv500_sys
-    rmmod hi3516cv500_base
-#    rmmod hi_tzasc
-    rmmod sys_config
-    rmmod hi_osal
-}
-
-sys_restore()
-{
-    ####################################################
-    clkcfg_hi3516cv500.sh > /dev/null
-
-    # system configuration
-    sysctl_hi3516cv500.sh  # > /dev/null
-    sns_config;
-}
-
-load_usage()
-{
-    echo "Usage:  ./load3516av300 [-option] [sensor0~1]"
-    echo "options:"
-    echo "    -i                       insert modules"
-    echo "    -r                       remove modules"
-    echo "    -a                       remove modules first, then insert modules"
-    echo "    -sensor sensor_name      config sensor type [default: imx335]"
-    echo "    -total mem_size          config total mem size [unit: M, default: 512]"
-    echo "    -osmem os_mem_size       config os mem size [unit: M, default: 128]"
-    echo "    -h                       help information"
-    echo -e "Available sensors: imx327 imx335 imx458"
-    echo -e "for example: ./load3516av300 -i -sensor0 imx335 -sensor1 imx335\n"
-}
-
-calc_mmz_info()
-{
-    mmz_start=`echo "$mem_start $os_mem_size"  |
-    awk 'BEGIN { temp = 0; }
-    {
-        temp = $1/1024/1024 + $2;
-    }
-    END { printf("0x%x00000\n", temp); }'`
-
-    mmz_size=`echo "$mem_total $os_mem_size"  |
-    awk 'BEGIN { temp = 0; }
-    {
-        temp = $1 - $2;
-    }
-    END { printf("%dM\n", temp); }'`
-    echo "mmz_start: $mmz_start, mmz_size: $mmz_size"
-}
-
-######################parse arg###################################
-b_arg_sensor0=0
-b_arg_sensor1=0
-b_arg_yuv_type0=0
-b_arg_insmod=0
-b_arg_remove=0
-b_arg_restore=0
-b_arg_total_mem=0
-b_arg_os_mem=0
-
-for arg in $@
-do
-    if [ $b_arg_sensor0 -eq 1 ] ; then
-        b_arg_sensor0=0;
-        SNS_TYPE0=$arg;
-    fi
-    if [ $b_arg_sensor1 -eq 1 ] ; then
-        b_arg_sensor1=0;
-        SNS_TYPE1=$arg;
-    fi
-    if [ $b_arg_total_mem -eq 1 ]; then
-        b_arg_total_mem=0;
-        mem_total=$arg;
-
-        if [ -z $mem_total ]; then
-            echo "[error] mem_total is null"
-            exit;
-        fi
-    fi
-
-    if [ $b_arg_os_mem -eq 1 ] ; then
-        b_arg_os_mem=0;
-        os_mem_size=$arg;
-
-        if [ -z $os_mem_size ]; then
-            echo "[error] os_mem_size is null"
-            exit;
-        fi
-    fi
-
-    if [ $b_arg_yuv_type0 -eq 1 ] ; then
-        b_arg_yuv_type0=0;
-        YUV_TYPE0=$arg;
-    fi
-
-    case $arg in
-        "-i")
-            b_arg_insmod=1;
-            ;;
-        "-r")
-            b_arg_remove=1;
-            ;;
-        "-a")
-            b_arg_insmod=1;
-            b_arg_remove=1;
-            ;;
-        "-h")
-            load_usage;
-            ;;
-        "-sensor0")
-            b_arg_sensor0=1;
-            ;;
-        "-sensor")
-            b_arg_sensor0=1;
-            ;;
-        "-sensor1")
-            b_arg_sensor1=1;
-            ;;
-        "-osmem")
-            b_arg_os_mem=1;
-            ;;
-        "-yuv0")
-            b_arg_yuv_type0=1;
-            ;;
-        "-total")
-            b_arg_total_mem=1;
-            ;;
-        "-restore")
-            b_arg_restore=1;
-            ;;
-    esac
-done
-#######################parse arg end########################
-if [ $os_mem_size -ge $mem_total ] ; then
-    echo "[err] os_mem[$os_mem_size], over total_mem[$mem_total]"
-    exit;
-fi
-
-calc_mmz_info;
-
-#######################Action###############################
-
-if [ $# -lt 1 ]; then
-    load_usage;
-    exit 0;
-fi
-
-
-if [ $b_arg_remove -eq 1 ]; then
-    remove_ko;
-fi
-
-if [ $b_arg_insmod -eq 1 ]; then
-    insert_ko;
-fi
-
-if [ $b_arg_restore -eq 1 ]; then
-    sys_restore;
-fi
-
diff --git a/general/package/hisilicon-osdrv-hi3516cv500/files/script/load3516cv500 b/general/package/hisilicon-osdrv-hi3516cv500/files/script/load3516cv500
deleted file mode 100755
index 89387476..00000000
--- a/general/package/hisilicon-osdrv-hi3516cv500/files/script/load3516cv500
+++ /dev/null
@@ -1,325 +0,0 @@
-#!/bin/sh
-# Useage: ./load3516cv500 [ -r|-i|-a ] [ sensor ]
-#         -r : rmmod all modules
-#         -i : insmod all modules
-#         -a : rmmod all moules and then insmod them
-# e.g: RAW:        ./load3516cv500 -i -sensor0 imx327 -sensor1 imx327
-# e.g: BT1120/DC : ./load3516cv500 -i -sensor0 imx327 -sensor1 imx327 -osmem 64 -yuv0 1
-# e.g: BT656     : ./load3516cv500 -i -sensor0 imx327 -sensor1 imx327 -osmem 64 -yuv0 2
-
-####################Variables Definition##########################
-
-
-SNS_TYPE0=imx327;           # sensor type
-SNS_TYPE1=NULL;            	# sensor type
-YUV_TYPE0=0;                # 0 -- raw, 1 -- bt1120/DC, 2 --bt656
-CHIP_TYPE=hi3516cv500;      # chip type
-
-
-#DDR start:0x80000000, kernel start:0x80000000,  OS(64M); MMZ start:0x84000000
-mem_total=256                # 256M, total mem
-mem_start=0x80000000          # phy mem start
-os_mem_size=64               # 64M, os mem
-mmz_start=0x84000000;         # mmz start addr
-mmz_size=192M;               # 192M, mmz size
-##################################################################
-
-report_error()
-{
-    echo "******* Error: There's something wrong, please check! *****"
-    exit 1
-}
-
-insert_audio()
-{
-    insmod hi3516cv500_aio.ko
-    insmod hi3516cv500_ai.ko
-    insmod hi3516cv500_ao.ko
-    insmod hi3516cv500_aenc.ko
-    insmod hi3516cv500_adec.ko
-    insmod hi3516cv500_acodec.ko
-#    insmod extdrv/hi_tlv320aic31.ko
-    echo "insert audio"
-}
-
-remove_audio()
-{
-    rmmod hi3516cv500_acodec
-#    rmmod hi_tlv320aic31.ko
-    rmmod hi3516cv500_adec
-    rmmod hi3516cv500_aenc
-    rmmod hi3516cv500_ao
-    rmmod hi3516cv500_ai
-    rmmod hi3516cv500_aio
-
-    echo "remove audio"
-}
-
-insert_isp()
-{
-    insmod hi3516cv500_isp.ko
-}
-
-insert_gyro()
-{
-    insmod extdrv/hi_spi.ko
-    insmod hi3516cv500_gyrodis.ko
-    insmod hi3516cv500_motionfusion.ko
-    insmod extdrv/motionsensor_mng.ko
-    insmod extdrv/motionsensor_chip.ko
-}
-
-remove_gyro()
-{
-    rmmod motionsensor_chip
-    rmmod motionsensor_mng
-    rmmod hi3516cv500_motionfusion
-    rmmod hi3516cv500_gyrodis
-    rmmod hi_spi
-}
-
-insert_ko()
-{
-    # driver load
-    insmod hi_osal.ko anony=1 mmz_allocator=hisi mmz=anonymous,0,$mmz_start,$mmz_size || report_error
-    # sys config
-    insmod sys_config.ko chip=$CHIP_TYPE sensors=sns0=$SNS_TYPE0,sns1=$SNS_TYPE1, g_cmos_yuv_flag=$YUV_TYPE0
-
-#    insmod hi_tzasc.ko
-    insmod hi3516cv500_base.ko
-    insmod hi3516cv500_sys.ko
-    insmod hi3516cv500_tde.ko
-    insmod hi3516cv500_rgn.ko
-    insmod hi3516cv500_gdc.ko
-    insmod hi3516cv500_vgs.ko
-    insmod hi3516cv500_dis.ko
-    insmod hi3516cv500_vi.ko
-    insert_isp;
-    insmod hi3516cv500_vpss.ko
-    insmod hi3516cv500_vo.ko
-    insmod hifb.ko video="hifb:vram0_size:16200"     # default fb0:1080p
-
-    insmod hi3516cv500_chnl.ko
-    insmod hi3516cv500_vedu.ko
-    insmod hi3516cv500_rc.ko
-    insmod hi3516cv500_venc.ko
-    insmod hi3516cv500_h264e.ko
-    insmod hi3516cv500_h265e.ko
-    insmod hi3516cv500_jpege.ko
-
-
-    insmod hi3516cv500_ive.ko save_power=1
-#    insmod hi_ipcm.ko
-    insmod hi3516cv500_nnie.ko nnie_save_power=1 nnie_max_tskbuf_num=32
-    insmod extdrv/hi_pwm.ko
-    insmod extdrv/hi_piris.ko
-    insmod extdrv/hi_sensor_i2c.ko
-    insmod extdrv/hi_sensor_spi.ko
-#    insmod extdrv/hi_sil9136.ko norm=12    #1080P@30fps for umap7p
-#    insmod extdrv/mpu_bosch.ko
-
-    insert_audio
-
-    insmod hi_mipi_rx.ko
-#    insmod hi_mipi_tx.ko
-#    insmod hi_user.ko
-
-#    insert_gyro
-}
-
-remove_ko()
-{
-#    rmmod_gyro
-#    rmmod hi_user
-    remove_audio
-#    rmmod hi_mipi_tx
-    rmmod hi_mipi_rx
-    #rmmod hi_sil9136 &> /dev/null
-    rmmod hi_piris
-    rmmod hi_pwm
-
-    rmmod hi3516cv500_nnie nnie_save_power=1 nnie_max_tskbuf_num=32
-#    rmmod hi_ipcm
-    rmmod hi3516cv500_ive
-    rmmod hi3516cv500_rc
-    rmmod hi3516cv500_jpege
-    rmmod hi3516cv500_h264e
-    rmmod hi3516cv500_h265e
-    rmmod hi3516cv500_venc
-    rmmod hi3516cv500_vedu
-    rmmod hi3516cv500_chnl
-    rmmod hifb
-    rmmod hi3516cv500_vo
-    rmmod hi3516cv500_vpss
-    rmmod hi3516cv500_isp
-    rmmod hi3516cv500_vi
-    rmmod hi3516cv500_gdc
-    rmmod hi3516cv500_dis
-    rmmod hi3516cv500_vgs
-    rmmod hi3516cv500_rgn
-    rmmod hi3516cv500_tde
-
-    rmmod hi_sensor_i2c &> /dev/null
-    rmmod hi_sensor_spi &> /dev/null
-
-#    rmmod mpu_bosch
-    rmmod hi3516cv500_sys
-    rmmod hi3516cv500_base
-#    rmmod hi_tzasc
-    rmmod sys_config
-    rmmod hi_osal
-}
-
-sys_restore()
-{
-    ####################################################
-    clkcfg_hi3516cv500.sh > /dev/null
-
-    # system configuration
-    sysctl_hi3516cv500.sh  # > /dev/null
-    sns_config;
-}
-
-load_usage()
-{
-    echo "Usage:  ./load3516cv500 [-option] [sensor0]"
-    echo "options:"
-    echo "    -i                       insert modules"
-    echo "    -r                       remove modules"
-    echo "    -a                       remove modules first, then insert modules"
-    echo "    -sensor sensor_name      config sensor type [default: imx327]"
-    echo "    -total mem_size          config total mem size [unit: M, default: 512]"
-    echo "    -osmem os_mem_size       config os mem size [unit: M, default: 128]"
-    echo "    -h                       help information"
-    echo -e "Available sensors: imx327"
-    echo -e "for example: ./load3516cv500 -i -sensor0 imx327 -sensor1 imx327\n"
-}
-
-calc_mmz_info()
-{
-    mmz_start=`echo "$mem_start $os_mem_size"  |
-    awk 'BEGIN { temp = 0; }
-    {
-        temp = $1/1024/1024 + $2;
-    }
-    END { printf("0x%x00000\n", temp); }'`
-
-    mmz_size=`echo "$mem_total $os_mem_size"  |
-    awk 'BEGIN { temp = 0; }
-    {
-        temp = $1 - $2;
-    }
-    END { printf("%dM\n", temp); }'`
-    echo "mmz_start: $mmz_start, mmz_size: $mmz_size"
-}
-
-######################parse arg###################################
-b_arg_sensor0=0
-b_arg_sensor1=0
-b_arg_yuv_type0=0
-b_arg_insmod=0
-b_arg_remove=0
-b_arg_restore=0
-b_arg_total_mem=0
-b_arg_os_mem=0
-
-for arg in $@
-do
-    if [ $b_arg_sensor0 -eq 1 ] ; then
-        b_arg_sensor0=0;
-        SNS_TYPE0=$arg;
-    fi
-    if [ $b_arg_sensor1 -eq 1 ] ; then
-        b_arg_sensor1=0;
-        SNS_TYPE1=$arg;
-    fi
-    if [ $b_arg_total_mem -eq 1 ]; then
-        b_arg_total_mem=0;
-        mem_total=$arg;
-
-        if [ -z $mem_total ]; then
-            echo "[error] mem_total is null"
-            exit;
-        fi
-    fi
-
-    if [ $b_arg_os_mem -eq 1 ] ; then
-        b_arg_os_mem=0;
-        os_mem_size=$arg;
-
-        if [ -z $os_mem_size ]; then
-            echo "[error] os_mem_size is null"
-            exit;
-        fi
-    fi
-
-    if [ $b_arg_yuv_type0 -eq 1 ] ; then
-        b_arg_yuv_type0=0;
-        YUV_TYPE0=$arg;
-    fi
-
-    case $arg in
-        "-i")
-            b_arg_insmod=1;
-            ;;
-        "-r")
-            b_arg_remove=1;
-            ;;
-        "-a")
-            b_arg_insmod=1;
-            b_arg_remove=1;
-            ;;
-        "-h")
-            load_usage;
-            ;;
-        "-sensor0")
-            b_arg_sensor0=1;
-            ;;
-        "-sensor")
-            b_arg_sensor0=1;
-            ;;
-        "-sensor1")
-            b_arg_sensor1=1;
-            ;;
-        "-osmem")
-            b_arg_os_mem=1;
-            ;;
-        "-yuv0")
-            b_arg_yuv_type0=1;
-            ;;
-        "-total")
-            b_arg_total_mem=1;
-            ;;
-        "-restore")
-            b_arg_restore=1;
-            ;;
-    esac
-done
-#######################parse arg end########################
-if [ $os_mem_size -ge $mem_total ] ; then
-    echo "[err] os_mem[$os_mem_size], over total_mem[$mem_total]"
-    exit;
-fi
-
-calc_mmz_info;
-
-#######################Action###############################
-
-if [ $# -lt 1 ]; then
-    load_usage;
-    exit 0;
-fi
-
-
-if [ $b_arg_remove -eq 1 ]; then
-    remove_ko;
-fi
-
-if [ $b_arg_insmod -eq 1 ]; then
-    insert_ko;
-fi
-
-if [ $b_arg_restore -eq 1 ]; then
-    sys_restore;
-fi
-
diff --git a/general/package/hisilicon-osdrv-hi3516cv500/files/script/load3516dv300 b/general/package/hisilicon-osdrv-hi3516cv500/files/script/load3516dv300
deleted file mode 100755
index ff1f09b7..00000000
--- a/general/package/hisilicon-osdrv-hi3516cv500/files/script/load3516dv300
+++ /dev/null
@@ -1,335 +0,0 @@
-#!/bin/sh
-# Useage: ./load3516dv300 [ -r|-i|-a ] [ sensor0~1 ]
-#         -r : rmmod all modules
-#         -i : insmod all modules
-#         -a : rmmod all moules and then insmod them
-# e.g: RAW:        ./load3516dv300 -i -sensor0 imx335 -sensor1 imx335
-# e.g: BT1120/DC : ./load3516dv300 -i -sensor0 imx327 -sensor1 imx327 -osmem 128 -yuv0 1
-# e.g: BT656     : ./load3516dv300 -i -sensor0 imx327 -sensor1 imx327 -osmem 128 -yuv0 2
-
-####################Variables Definition##########################
-
-SNS_TYPE0=imx335;           # sensor type
-SNS_TYPE1=NULL;            	# sensor type
-YUV_TYPE0=0;                # 0 -- raw, 1 -- bt1120/DC, 2 --bt656
-CHIP_TYPE=hi3516dv300;      # chip type
-#DDR start:0x80000000,   kernel start:0x80000000,  OS(128M); MMZ start:0x88000000
-mem_total=512                # 512M, total mem
-mem_start=0x80000000          # phy mem start
-os_mem_size=128               # 128M, os mem
-mmz_start=0x88000000;         # mmz start addr
-mmz_size=384M;               # 384M, mmz size
-##################################################################
-
-report_error()
-{
-    echo "******* Error: There's something wrong, please check! *****"
-    exit 1
-}
-
-insert_audio()
-{
-    insmod hi3516cv500_aio.ko
-    insmod hi3516cv500_ai.ko
-    insmod hi3516cv500_ao.ko
-    insmod hi3516cv500_aenc.ko
-    insmod hi3516cv500_adec.ko
-    insmod hi3516cv500_acodec.ko
-#    insmod extdrv/hi_tlv320aic31.ko
-    echo "insert audio"
-}
-
-remove_audio()
-{
-    rmmod hi3516cv500_acodec
-#    rmmod hi_tlv320aic31.ko
-    rmmod hi3516cv500_adec
-    rmmod hi3516cv500_aenc
-    rmmod hi3516cv500_ao
-    rmmod hi3516cv500_ai
-    rmmod hi3516cv500_aio
-
-    echo "remove audio"
-}
-
-insert_isp()
-{
-    insmod hi3516cv500_isp.ko
-}
-
-insert_gyro()
-{
-    insmod extdrv/hi_spi.ko
-    insmod hi3516cv500_gyrodis.ko
-    insmod hi3516cv500_motionfusion.ko
-    insmod extdrv/motionsensor_mng.ko
-    insmod extdrv/motionsensor_chip.ko
-}
-
-remove_gyro()
-{
-    rmmod motionsensor_chip
-    rmmod motionsensor_mng
-    rmmod hi3516cv500_motionfusion
-    rmmod hi3516cv500_gyrodis
-    rmmod hi_spi
-}
-
-insert_ko()
-{
-    # driver load
-    insmod hi_osal.ko anony=1 mmz_allocator=hisi mmz=anonymous,0,$mmz_start,$mmz_size || report_error
-
-    # sys config
-    insmod sys_config.ko chip=$CHIP_TYPE sensors=sns0=$SNS_TYPE0,sns1=$SNS_TYPE1, g_cmos_yuv_flag=$YUV_TYPE0
-#    insmod hi_tzasc.ko
-    insmod hi3516cv500_base.ko
-    insmod hi3516cv500_sys.ko
-    insmod hi3516cv500_tde.ko
-    insmod hi3516cv500_rgn.ko
-    insmod hi3516cv500_gdc.ko
-    insmod hi3516cv500_vgs.ko
-    insmod hi3516cv500_dis.ko
-    insmod hi3516cv500_vi.ko
-    insert_isp;
-    insmod hi3516cv500_vpss.ko
-    insmod hi3516cv500_vo.ko
-    insmod hifb.ko video="hifb:vram0_size:16200"     # default fb0:1080p
-
-    insmod hi3516cv500_chnl.ko
-    insmod hi3516cv500_vedu.ko
-    insmod hi3516cv500_rc.ko
-    insmod hi3516cv500_venc.ko
-    insmod hi3516cv500_h264e.ko
-    insmod hi3516cv500_h265e.ko
-    insmod hi3516cv500_jpege.ko
-    insmod hi3516cv500_jpegd.ko
-    insmod hi3516cv500_vfmw.ko
-    insmod hi3516cv500_vdec.ko
-
-    insmod hi3516cv500_ive.ko save_power=1
-#    insmod hi_ipcm.ko
-#    nnie_max_tskbuf_num=64
-    insmod hi3516cv500_nnie.ko nnie_save_power=1 nnie_max_tskbuf_num=32
-    insmod extdrv/hi_pwm.ko
-    insmod extdrv/hi_piris.ko
-    insmod extdrv/hi_sensor_i2c.ko
-    insmod extdrv/hi_sensor_spi.ko
-#    insmod extdrv/hi_sil9136.ko norm=12    #1080P@30fps for umap7p
-#    insmod extdrv/mpu_bosch.ko
-#    insmod extdrv/hi_ssp_st7789.ko
-#    insmod extdrv/hi_ssp_ota5182.ko
-#    insmod extdrv/hi_serdes.ko
-    insmod hi3516cv500_hdmi.ko
-
-    insert_audio
-
-    insmod hi_mipi_rx.ko
-#    insmod hi_mipi_tx.ko
-#    insmod hi_user.ko
-
-#    insert_gyro
-}
-
-remove_ko()
-{
-#    rmmod_gyro
-#    rmmod hi_user
-    remove_audio
-#    rmmod hi_mipi_tx
-    rmmod hi_mipi_rx
-#    rmmod hi_serdes
-#    rmmod hi_sil9136 &> /dev/null
-#    rmmod hi_ssp_ota5182
-#    rmmod hi_ssp_st7789
-    rmmod hi_piris
-    rmmod hi_pwm
-    rmmod hi3516cv500_nnie
-#    rmmod hi_ipcm
-    rmmod hi3516cv500_ive
-    rmmod hi3516cv500_jpegd
-    rmmod hi3516cv500_vfmw
-    rmmod hi3516cv500_vdec
-    rmmod hi3516cv500_rc
-    rmmod hi3516cv500_jpege
-    rmmod hi3516cv500_h264e
-    rmmod hi3516cv500_h265e
-    rmmod hi3516cv500_venc
-    rmmod hi3516cv500_vedu
-    rmmod hi3516cv500_chnl
-    rmmod hifb
-    rmmod hi3516cv500_vo
-    rmmod hi3516cv500_vpss
-    rmmod hi3516cv500_isp
-    rmmod hi3516cv500_vi
-    rmmod hi3516cv500_gdc
-    rmmod hi3516cv500_dis
-    rmmod hi3516cv500_vgs
-    rmmod hi3516cv500_rgn
-    rmmod hi3516cv500_tde
-    rmmod hi3516cv500_hdmi
-
-    rmmod hi_sensor_i2c &> /dev/null
-    rmmod hi_sensor_spi &> /dev/null
-
-#    rmmod mpu_bosch
-    rmmod hi3516cv500_sys
-    rmmod hi3516cv500_base
-#    rmmod hi_tzasc
-    rmmod sys_config
-    rmmod hi_osal
-}
-
-sys_restore()
-{
-    ####################################################
-    clkcfg_hi3516cv500.sh > /dev/null
-
-    # system configuration
-    sysctl_hi3516cv500.sh  # > /dev/null
-    sns_config;
-}
-
-load_usage()
-{
-    echo "Usage:  ./load3516dv300 [-option] [sensor0~1]"
-    echo "options:"
-    echo "    -i                       insert modules"
-    echo "    -r                       remove modules"
-    echo "    -a                       remove modules first, then insert modules"
-    echo "    -sensor sensor_name      config sensor type [default: imx335]"
-    echo "    -total mem_size          config total mem size [unit: M, default: 512]"
-    echo "    -osmem os_mem_size       config os mem size [unit: M, default: 128]"
-    echo "    -h                       help information"
-    echo -e "Available sensors: imx327 imx335 os05a imx307"
-    echo -e "for example: ./load3516dv300 -i -sensor0 imx335 -sensor1 imx335\n"
-}
-
-calc_mmz_info()
-{
-    mmz_start=`echo "$mem_start $os_mem_size"  |
-    awk 'BEGIN { temp = 0; }
-    {
-        temp = $1/1024/1024 + $2;
-    }
-    END { printf("0x%x00000\n", temp); }'`
-
-    mmz_size=`echo "$mem_total $os_mem_size"  |
-    awk 'BEGIN { temp = 0; }
-    {
-        temp = $1 - $2;
-    }
-    END { printf("%dM\n", temp); }'`
-    echo "mmz_start: $mmz_start, mmz_size: $mmz_size"
-}
-
-######################parse arg###################################
-b_arg_sensor0=0
-b_arg_sensor1=0
-b_arg_yuv_type0=0
-b_arg_insmod=0
-b_arg_remove=0
-b_arg_restore=0
-b_arg_total_mem=0
-b_arg_os_mem=0
-
-for arg in $@
-do
-    if [ $b_arg_sensor0 -eq 1 ] ; then
-        b_arg_sensor0=0;
-        SNS_TYPE0=$arg;
-    fi
-    if [ $b_arg_sensor1 -eq 1 ] ; then
-        b_arg_sensor1=0;
-        SNS_TYPE1=$arg;
-    fi
-    if [ $b_arg_total_mem -eq 1 ]; then
-        b_arg_total_mem=0;
-        mem_total=$arg;
-
-        if [ -z $mem_total ]; then
-            echo "[error] mem_total is null"
-            exit;
-        fi
-    fi
-
-    if [ $b_arg_os_mem -eq 1 ] ; then
-        b_arg_os_mem=0;
-        os_mem_size=$arg;
-
-        if [ -z $os_mem_size ]; then
-            echo "[error] os_mem_size is null"
-            exit;
-        fi
-    fi
-
-    if [ $b_arg_yuv_type0 -eq 1 ] ; then
-        b_arg_yuv_type0=0;
-        YUV_TYPE0=$arg;
-    fi
-
-    case $arg in
-        "-i")
-            b_arg_insmod=1;
-            ;;
-        "-r")
-            b_arg_remove=1;
-            ;;
-        "-a")
-            b_arg_insmod=1;
-            b_arg_remove=1;
-            ;;
-        "-h")
-            load_usage;
-            ;;
-        "-sensor0")
-            b_arg_sensor0=1;
-            ;;
-        "-sensor")
-            b_arg_sensor0=1;
-            ;;
-        "-sensor1")
-            b_arg_sensor1=1;
-            ;;
-        "-osmem")
-            b_arg_os_mem=1;
-            ;;
-        "-yuv0")
-            b_arg_yuv_type0=1;
-            ;;
-        "-total")
-            b_arg_total_mem=1;
-            ;;
-        "-restore")
-            b_arg_restore=1;
-            ;;
-    esac
-done
-#######################parse arg end########################
-if [ $os_mem_size -ge $mem_total ] ; then
-    echo "[err] os_mem[$os_mem_size], over total_mem[$mem_total]"
-    exit;
-fi
-
-calc_mmz_info;
-
-#######################Action###############################
-
-if [ $# -lt 1 ]; then
-    load_usage;
-    exit 0;
-fi
-
-
-if [ $b_arg_remove -eq 1 ]; then
-    remove_ko;
-fi
-
-if [ $b_arg_insmod -eq 1 ]; then
-    insert_ko;
-fi
-
-if [ $b_arg_restore -eq 1 ]; then
-    sys_restore;
-fi
-
diff --git a/general/package/hisilicon-osdrv-hi3516cv500/files/script/load_hisilicon b/general/package/hisilicon-osdrv-hi3516cv500/files/script/load_hisilicon
new file mode 100755
index 00000000..b7364888
--- /dev/null
+++ b/general/package/hisilicon-osdrv-hi3516cv500/files/script/load_hisilicon
@@ -0,0 +1,356 @@
+#!/bin/sh
+#
+# This is part of OpenIPC.org project | 2022.01.19
+#
+
+# Board
+board=demo
+
+# SoC detect
+chipid=$(ipcinfo --chip_id)
+
+# Memory config
+mem_start=0x80000000 # phy mem start
+
+mem_total=$(fw_printenv -n totalmem | tr -d 'M')
+mem_total=${mem_total:=64}
+
+os_mem_size=$(fw_printenv -n osmem | tr -d 'M')
+os_mem_size=${os_mem_size:=32}
+
+SNS_TYPE0=imx327 # sensor type
+SNS_TYPE1=NULL   # sensor type
+YUV_TYPE0=0      # 0 -- raw, 1 -- bt1120/DC, 2 --bt656
+
+report_error() {
+    echo "******* Error: There's something wrong, please check! *****"
+    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() {
+    cd /lib/modules/4.9.37/hisilicon
+    insmod sys_config.ko chip=${chipid} sensors=unknown g_cmos_yuv_flag=$YUV_TYPE0 board=${board}
+    insert_osal
+    insmod hi3516ev200_base.ko
+    insmod hi3516ev200_isp.ko
+    insmod hi_sensor_i2c.ko
+    insmod hi_sensor_spi.ko
+}
+
+remove_detect() {
+    rmmod hi_sensor_spi
+    rmmod hi_sensor_i2c
+    rmmod hi3516ev200_isp
+    rmmod hi3516ev200_base
+    rmmod hi_osal &> /dev/null
+    rmmod cma_osal &> /dev/null
+    rmmod sys_config
+}
+
+insert_audio() {
+    insmod hi3516cv500_aio.ko
+    insmod hi3516cv500_ai.ko
+    insmod hi3516cv500_ao.ko
+    insmod hi3516cv500_aenc.ko
+    insmod hi3516cv500_adec.ko
+    insmod hi3516cv500_acodec.ko
+    #    insmod extdrv/hi_tlv320aic31.ko
+    echo "insert audio"
+}
+
+remove_audio() {
+    rmmod hi3516cv500_acodec
+    #    rmmod hi_tlv320aic31.ko
+    rmmod hi3516cv500_adec
+    rmmod hi3516cv500_aenc
+    rmmod hi3516cv500_ao
+    rmmod hi3516cv500_ai
+    rmmod hi3516cv500_aio
+
+    echo "remove audio"
+}
+
+insert_isp() {
+    insmod hi3516cv500_isp.ko
+}
+
+insert_gyro() {
+    insmod extdrv/hi_spi.ko
+    insmod hi3516cv500_gyrodis.ko
+    insmod hi3516cv500_motionfusion.ko
+    insmod extdrv/motionsensor_mng.ko
+    insmod extdrv/motionsensor_chip.ko
+}
+
+remove_gyro() {
+    rmmod motionsensor_chip
+    rmmod motionsensor_mng
+    rmmod hi3516cv500_motionfusion
+    rmmod hi3516cv500_gyrodis
+    rmmod hi_spi
+}
+
+insert_ko() {
+    # driver load
+    insert_osal
+    # sys config
+    insmod sys_config.ko chip=${chipid} sensors=sns0=$SNS_TYPE0,sns1=$SNS_TYPE1, g_cmos_yuv_flag=$YUV_TYPE0
+
+    # insmod hi_tzasc.ko
+    insmod hi3516cv500_base.ko
+    insmod hi3516cv500_sys.ko
+    insmod hi3516cv500_tde.ko
+    insmod hi3516cv500_rgn.ko
+    insmod hi3516cv500_gdc.ko
+    # insmod hi3516cv500_vgs.ko
+    insmod hi3516cv500_dis.ko
+    insmod hi3516cv500_vi.ko
+    insert_isp
+    insmod hi3516cv500_vpss.ko
+    # insmod hi3516cv500_vo.ko
+    # insmod hifb.ko video="hifb:vram0_size:16200"     # default fb0:1080p
+
+    insmod hi3516cv500_chnl.ko
+    insmod hi3516cv500_vedu.ko
+    insmod hi3516cv500_rc.ko
+    insmod hi3516cv500_venc.ko
+    insmod hi3516cv500_h264e.ko
+    insmod hi3516cv500_h265e.ko
+    insmod hi3516cv500_jpege.ko
+
+    # insmod hi3516cv500_ive.ko save_power=1
+    # insmod hi_ipcm.ko
+    # insmod hi3516cv500_nnie.ko nnie_save_power=1 nnie_max_tskbuf_num=32
+    insmod hi_pwm.ko
+    insmod hi_piris.ko
+    insmod hi_sensor_i2c.ko
+    insmod hi_sensor_spi.ko
+    # insmod extdrv/hi_sil9136.ko norm=12    #1080P@30fps for umap7p
+    # insmod extdrv/mpu_bosch.ko
+
+    insert_audio
+
+    insmod hi_mipi_rx.ko
+    # insmod hi_mipi_tx.ko
+    # insmod hi_user.ko
+
+    # insert_gyro
+}
+
+remove_ko() {
+    # rmmod_gyro
+    # rmmod hi_user
+    remove_audio
+    # rmmod hi_mipi_tx
+    rmmod hi_mipi_rx
+    #rmmod hi_sil9136 &> /dev/null
+    rmmod hi_piris
+    rmmod hi_pwm
+
+    # rmmod hi3516cv500_nnie nnie_save_power=1 nnie_max_tskbuf_num=32
+    # rmmod hi_ipcm
+    # rmmod hi3516cv500_ive
+    rmmod hi3516cv500_rc
+    rmmod hi3516cv500_jpege
+    rmmod hi3516cv500_h264e
+    rmmod hi3516cv500_h265e
+    rmmod hi3516cv500_venc
+    rmmod hi3516cv500_vedu
+    rmmod hi3516cv500_chnl
+    # rmmod hifb
+    # rmmod hi3516cv500_vo
+    rmmod hi3516cv500_vpss
+    rmmod hi3516cv500_isp
+    rmmod hi3516cv500_vi
+    rmmod hi3516cv500_gdc
+    rmmod hi3516cv500_dis
+    rmmod hi3516cv500_vgs
+    rmmod hi3516cv500_rgn
+    rmmod hi3516cv500_tde
+
+    rmmod hi_sensor_i2c &>/dev/null
+    rmmod hi_sensor_spi &>/dev/null
+
+    # rmmod mpu_bosch
+    rmmod hi3516cv500_sys
+    rmmod hi3516cv500_base
+    # rmmod hi_tzasc
+    rmmod sys_config
+    rmmod hi_osal
+}
+
+sys_restore() {
+    sns_config
+}
+
+load_usage()
+{
+	echo "Usage:  ./load_hisilicon [-option] [sensor_name]"
+	echo "options:"
+	echo "    -i                       insert modules"
+	echo "    -r                       remove modules"
+	echo "    -a                       remove modules first, then insert modules"
+	echo "    -sensor sensor_name      config sensor type [default: imx307]"
+	echo "    -h                       help information"
+	echo -e "Available sensors: gc2053 imx307 imx327 imx335 os05a sc2231 sc2235 sc4236 sc3235 sc4236 etc."
+	echo -e "for example: ./load_hisilicon -i -sensor imx307 -osmem 32M -board demo -yuv0 0\n"
+}
+
+calc_mmz_info() {
+    mmz_start=$(echo "$mem_start $os_mem_size" |
+        awk 'BEGIN { temp = 0; }
+    {
+        temp = $1/1024/1024 + $2;
+    }
+    END { printf("0x%x00000\n", temp); }')
+
+    mmz_size=$(echo "$mem_total $os_mem_size" |
+        awk 'BEGIN { temp = 0; }
+    {
+        temp = $1 - $2;
+    }
+    END { printf("%dM\n", temp); }')
+    echo "mmz_start: $mmz_start, mmz_size: $mmz_size"
+}
+
+######################parse arg###################################
+b_arg_sensor0=0
+b_arg_sensor1=0
+b_arg_yuv_type0=0
+b_arg_insmod=0
+b_arg_remove=0
+b_arg_restore=0
+b_arg_total_mem=0
+b_arg_os_mem=0
+
+for arg in $@; do
+    if [ $b_arg_sensor0 -eq 1 ]; then
+        b_arg_sensor0=0
+        SNS_TYPE0=$arg
+    fi
+    if [ $b_arg_sensor1 -eq 1 ]; then
+        b_arg_sensor1=0
+        SNS_TYPE1=$arg
+    fi
+    if [ $b_arg_total_mem -eq 1 ]; then
+        b_arg_total_mem=0
+        mem_total=$arg
+
+        if [ -z $mem_total ]; then
+            echo "[error] mem_total is null"
+            exit
+        fi
+    fi
+
+    if [ $b_arg_os_mem -eq 1 ]; then
+        b_arg_os_mem=0
+        os_mem_size=$arg
+
+        if [ -z $os_mem_size ]; then
+            echo "[error] os_mem_size is null"
+            exit
+        fi
+    fi
+
+    if [ $b_arg_yuv_type0 -eq 1 ]; then
+        b_arg_yuv_type0=0
+        YUV_TYPE0=$arg
+    fi
+
+    case $arg in
+    "-i")
+        b_arg_insmod=1
+        ;;
+    "-r")
+        b_arg_remove=1
+        ;;
+    "-a")
+        b_arg_insmod=1
+        b_arg_remove=1
+        ;;
+    "-h")
+        load_usage
+        ;;
+    "-sensor0")
+        b_arg_sensor0=1
+        ;;
+    "-sensor")
+        b_arg_sensor0=1
+        ;;
+    "-sensor1")
+        b_arg_sensor1=1
+        ;;
+    "-osmem")
+        b_arg_os_mem=1
+        ;;
+    "-yuv0")
+        b_arg_yuv_type0=1
+        ;;
+    "-total")
+        b_arg_total_mem=1
+        ;;
+    "-restore")
+        b_arg_restore=1
+        ;;
+    esac
+done
+#######################parse arg end########################
+if [ $os_mem_size -ge $mem_total ]; then
+    echo "[err] os_mem[$os_mem_size], over total_mem[$mem_total]"
+    exit
+fi
+
+calc_mmz_info
+
+#######################Action###############################
+
+if [ $# -lt 1 ]; then
+    load_usage
+    exit 0
+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 -s)
+        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
+    remove_ko
+fi
+
+if [ "$SENSOR" = "unknown" ]; then
+    exit 1
+else
+    if [ $b_arg_insmod -eq 1 ]; then
+        cd /lib/modules/4.9.37/hisilicon
+        insert_ko
+    fi
+fi
+
+if [ $b_arg_restore -eq 1 ]; then
+    sys_restore
+fi
diff --git a/general/package/hisilicon-osdrv-hi3516cv500/hisilicon-osdrv-hi3516cv500.mk b/general/package/hisilicon-osdrv-hi3516cv500/hisilicon-osdrv-hi3516cv500.mk
index 60777e72..7da3a9ea 100644
--- a/general/package/hisilicon-osdrv-hi3516cv500/hisilicon-osdrv-hi3516cv500.mk
+++ b/general/package/hisilicon-osdrv-hi3516cv500/hisilicon-osdrv-hi3516cv500.mk
@@ -21,38 +21,55 @@ define HISILICON_OSDRV_HI3516CV500_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/60fps $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/sensor/config/60fps/*.ini
 
 	$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/4.9.37/hisilicon
-	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/*.ko
-
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/cma_osal.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_acodec.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_adec.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_aenc.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_ai.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_aio.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_ao.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_base.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_chnl.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_h264e.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_h265e.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_isp.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_ive.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_jpege.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_rc.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_rgn.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_sys.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_tde.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_vedu.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_venc.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_vgs.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_vi.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_vpss.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516ev200_wdt.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_mipi_rx.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_osal.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_pwm.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_sensor_i2c.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_sensor_spi.ko
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/sys_config.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_acodec.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_adec.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_aenc.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_ai.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_aio.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_ao.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_base.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_chnl.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_dis.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_gdc.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_h264e.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_h265e.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_hdmi.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_ir.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_isp.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_ive.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_jpegd.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_jpege.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_nnie.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_rc.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_rgn.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_svprt.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_sys.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_tde.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vdec.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vedu.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_venc.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vfmw.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vgs.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vi.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vo.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_vpss.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi3516cv500_wdt.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_cipher.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hifb.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_mipi_rx.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_mipi_tx.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_osal.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_piris.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_pwm.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_sample_ist.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_sensor_i2c.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_sensor_spi.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_ssp_ota5182.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_ssp_sony.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_ssp_st7789.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_tlv320aic31.ko
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/hi_user.ko
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.37/hisilicon $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/kmod/sys_config.ko
 
 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
 	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/script/load*
@@ -63,40 +80,44 @@ define HISILICON_OSDRV_HI3516CV500_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/sensor/*.so
 
 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib
-	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/*.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaaccomm.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaacdec.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaacenc.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaacsbrdec.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaacsbrenc.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libdnvqe.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhdmi.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hiacs.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hiae.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hiawb_natura.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hiawb.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hicalcflicker.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhi_cipher.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hidehaze.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hidrc.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhifisheyecalibrate.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hiir_auto.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hildci.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_AEC.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_AGC.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_ANR.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_common.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_EQ.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_HPF.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_record.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_RES_ext.so
+	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_RES.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libisp.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libive.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libmd.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libmpi.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libnnie.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libsecurec.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libsvpruntime.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libtde.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libupvqe.so
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libVoiceEngine.so
 
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaaccomm.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaacdec.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaacenc.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaacsbrdec.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libaacsbrenc.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libbcd.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libdnvqe.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hiae.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hiawb_natura.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hiawb.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhi_cipher.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hidehaze.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hidrc.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hiir_auto.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/lib_hildci.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_AEC.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_AGC.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_ANR.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_common.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_EQ.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_HPF.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_record.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libhive_RES.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libisp.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libive.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libivp.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libmd.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libmpi.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libsecurec.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libtde.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libupvqe.so
-	# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv500/files/lib/libVoiceEngine.so
 endef
 
 $(eval $(generic-package))
diff --git a/general/package/hisilicon-osdrv-hi3516ev300/files/script/load_hisilicon b/general/package/hisilicon-osdrv-hi3516ev300/files/script/load_hisilicon
index 290c9004..a9f18d68 100755
--- a/general/package/hisilicon-osdrv-hi3516ev300/files/script/load_hisilicon
+++ b/general/package/hisilicon-osdrv-hi3516ev300/files/script/load_hisilicon
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# This is part of OpenIPC.org project | 2021.04.04
+# This is part of OpenIPC.org project | 2022.01.19
 #
 
 # Board