diff --git a/br-ext-chip-sigmastar/configs/ssc325_lite_defconfig b/br-ext-chip-sigmastar/configs/ssc325_lite_defconfig index 710ec17c..60ab81e1 100644 --- a/br-ext-chip-sigmastar/configs/ssc325_lite_defconfig +++ b/br-ext-chip-sigmastar/configs/ssc325_lite_defconfig @@ -71,8 +71,8 @@ BR2_PACKAGE_LIBEVENT_OPENIPC=y BR2_PACKAGE_LIBEVENT_OPENIPC_REMOVE_PYSCRIPT=y BR2_PACKAGE_LIBOGG_OPENIPC=y BR2_PACKAGE_LIBYAML=y -# BR2_PACKAGE_MAJESTIC is not set -# BR2_PACKAGE_MAJESTIC_FONTS is not set +BR2_PACKAGE_MAJESTIC=y +BR2_PACKAGE_MAJESTIC_FONTS=y BR2_PACKAGE_MBEDTLS_OPENIPC=y # BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set # BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set @@ -81,7 +81,7 @@ BR2_PACKAGE_MICROBE_WEB=y # BR2_PACKAGE_MOTORS is not set BR2_PACKAGE_OPUS_OPENIPC=y BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y -# BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6B0 is not set +BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6=y BR2_PACKAGE_EXFAT_OPENIPC=y BR2_PACKAGE_EXFATPROGS=y # BR2_PACKAGE_SSHPASS is not set diff --git a/general/package/Config.in b/general/package/Config.in index e7ce3e7d..ee00d817 100644 --- a/general/package/Config.in +++ b/general/package/Config.in @@ -83,6 +83,7 @@ source "$BR2_EXTERNAL_GENERAL_PATH/package/rtl8192eu-openipc/Config.in" source "$BR2_EXTERNAL_GENERAL_PATH/package/rtl8733bu-openipc/Config.in" source "$BR2_EXTERNAL_GENERAL_PATH/package/rtl8812au-openipc/Config.in" source "$BR2_EXTERNAL_GENERAL_PATH/package/rtw-hostapd/Config.in" +source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-infinity6/Config.in" source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-infinity6b0/Config.in" source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-infinity6e/Config.in" source "$BR2_EXTERNAL_GENERAL_PATH/package/sigmastar-osdrv-msc313e/Config.in" diff --git a/general/package/sigmastar-osdrv-infinity6/Config.in b/general/package/sigmastar-osdrv-infinity6/Config.in new file mode 100644 index 00000000..ad723fd8 --- /dev/null +++ b/general/package/sigmastar-osdrv-infinity6/Config.in @@ -0,0 +1,5 @@ +config BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6 + bool "sigmastar-osdrv-infinity6" + select BR2_PACKAGE_SIGMASTAR_OSDRV_SENSOR + help + Sigmastar infinity6 kernel modules diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mhal.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mhal.ko new file mode 100644 index 00000000..adc0c535 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mhal.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_ai.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_ai.ko new file mode 100644 index 00000000..5c3c31d3 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_ai.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_ao.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_ao.ko new file mode 100644 index 00000000..3fb5a337 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_ao.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_common.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_common.ko new file mode 100644 index 00000000..0c6c02d7 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_common.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_divp.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_divp.ko new file mode 100644 index 00000000..0df2b69b Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_divp.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_rgn.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_rgn.ko new file mode 100644 index 00000000..3c4a1f5d Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_rgn.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_sensor.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_sensor.ko new file mode 100644 index 00000000..ac0dfdeb Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_sensor.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_shadow.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_shadow.ko new file mode 100644 index 00000000..b7f5951c Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_shadow.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_sys.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_sys.ko new file mode 100644 index 00000000..82ad4917 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_sys.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_venc.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_venc.ko new file mode 100644 index 00000000..5d744fa0 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_venc.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_vif.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_vif.ko new file mode 100644 index 00000000..c7478174 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_vif.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_vpe.ko b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_vpe.ko new file mode 100644 index 00000000..ee20e9ce Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/kmod/mi_vpe.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_divp.so b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_divp.so new file mode 100644 index 00000000..e529d122 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_divp.so differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_isp.so b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_isp.so new file mode 100644 index 00000000..68929e29 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_isp.so differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_rgn.so b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_rgn.so new file mode 100644 index 00000000..7e274881 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_rgn.so differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_sensor.so b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_sensor.so new file mode 100644 index 00000000..a118a5e6 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_sensor.so differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_sys.so b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_sys.so new file mode 100644 index 00000000..00d1cd85 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_sys.so differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_venc.so b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_venc.so new file mode 100644 index 00000000..4500e113 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_venc.so differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_vif.so b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_vif.so new file mode 100644 index 00000000..fdb49aec Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_vif.so differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_vpe.so b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_vpe.so new file mode 100644 index 00000000..57b7e4f8 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/lib/libmi_vpe.so differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/script/load_sigmastar b/general/package/sigmastar-osdrv-infinity6/files/script/load_sigmastar new file mode 100755 index 00000000..9a371648 --- /dev/null +++ b/general/package/sigmastar-osdrv-infinity6/files/script/load_sigmastar @@ -0,0 +1,60 @@ +#!/bin/sh +# +# OpenIPC.org | 2023.09.01 +# + +PATH_MODULE=/lib/modules/4.9.84/sigmastar +PATH_SENSOR=${PATH_MODULE}/sensor +SENSOR=$(fw_printenv -n sensor) + +detect_sensor() { + devmem 0x1F207188 16 0x0001 + devmem 0x1F263200 16 0x000D + SENSOR=$(ipcinfo -s) + fw_setenv sensor ${SENSOR} +} + +set_sensor() { + case ${SENSOR} in + imx307) + insmod ${PATH_SENSOR}/sensor_${SENSOR}_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 mclk=37.125M + ;; + *) + echo -e "\n\e[1;31mUNSUPPORTED sensor found - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC + ;; + esac +} + +insert_ko() { + insmod ${PATH_MODULE}/mhal.ko + insmod ${PATH_MODULE}/mi_common.ko + insmod ${PATH_MODULE}/mi_sys.ko logBufSize=256 default_config_path=/usr/bin + insmod ${PATH_MODULE}/mi_rgn.ko + insmod ${PATH_MODULE}/mi_ai.ko + insmod ${PATH_MODULE}/mi_ao.ko + insmod ${PATH_MODULE}/mi_sensor.ko + insmod ${PATH_MODULE}/mi_shadow.ko + insmod ${PATH_MODULE}/mi_divp.ko + insmod ${PATH_MODULE}/mi_vif.ko + insmod ${PATH_MODULE}/mi_vpe.ko + insmod ${PATH_MODULE}/mi_venc.ko +} + +if [ ! -e /dev/mi_poll ]; then + insert_ko +fi + +if [ -z ${SENSOR} ]; then + echo -e "\n\e[1;33mAutodetect sensor\e[0m\n" | logger -s -t OpenIPC + detect_sensor +fi + +if [ -z ${SENSOR} ]; then + echo -e "\n\e[1;31mSensor parameter is MISSING\e[0m\n" | logger -s -t OpenIPC + exit 1 +else + echo -e "\n\e[1;32mSensor is assigned - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC + $(lsmod | grep -q ${SENSOR}) || set_sensor +fi + +exit 0 diff --git a/general/package/sigmastar-osdrv-infinity6/files/sensor/configs/gc2053.bin b/general/package/sigmastar-osdrv-infinity6/files/sensor/configs/gc2053.bin new file mode 100644 index 00000000..aecb9bf4 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/sensor/configs/gc2053.bin differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/sensor/configs/imx307.bin b/general/package/sigmastar-osdrv-infinity6/files/sensor/configs/imx307.bin new file mode 100644 index 00000000..aa86caf0 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/sensor/configs/imx307.bin differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/sensor/firmware/iqfile0.bin b/general/package/sigmastar-osdrv-infinity6/files/sensor/firmware/iqfile0.bin new file mode 100644 index 00000000..5eedff3f Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6/files/sensor/firmware/iqfile0.bin differ diff --git a/general/package/sigmastar-osdrv-infinity6/files/src/config_tool.c b/general/package/sigmastar-osdrv-infinity6/files/src/config_tool.c new file mode 100644 index 00000000..5c01a0a4 --- /dev/null +++ b/general/package/sigmastar-osdrv-infinity6/files/src/config_tool.c @@ -0,0 +1,57 @@ +#include +#include +#include +#include +#include +#include + +#define BOUNDS 0x80000000 +#define LENGTH 0x1A000 +#define ALIGN 0x1000 +#define CMDQ "E_MMAP_ID_CMDQ" +#define SSTAR 0x1F2025A4 + +int main() { + char buf[128]; + int fd, size; + uint32_t addr, total, val; + + if (!mem_reg(SSTAR, &val, 0)) { + printf("Failed to read memory address: 0x%X\n", SSTAR); + return -1; + } + + val = 1 << (val >> 12); + if (val == 64) { + addr = 0x3FC6000; + total = 0x4000000; + } else if (val == 128) { + addr = 0x7FC6000; + total = 0x8000000; + } else if (val == 256) { + addr = 0xFFC6000; + total = 0x10000000; + } + + fd = open("/proc/mi_modules/common/memory_info", O_WRONLY); + if (fd < 0) { + printf("Failed to open memory_info: %s\n", strerror(errno)); + return -1; + } + + size = sprintf(buf, "%u %u %u %u %u %u %u\n", total, total, 0, BOUNDS, 1, 1, 0); + write(fd, buf, size); + close(fd); + + fd = open("/proc/mi_modules/common/mmap_info", O_WRONLY); + if (fd < 0) { + printf("Failed to open mmap_info: %s\n", strerror(errno)); + return -1; + } + + size = sprintf(buf, "%s %u %u %u %u %u %u %u %u\n", CMDQ, 0, addr, LENGTH, 0, ALIGN, 4, 0, 0); + write(fd, buf, size); + close(fd); + + return 0; +} diff --git a/general/package/sigmastar-osdrv-infinity6/sigmastar-osdrv-infinity6.mk b/general/package/sigmastar-osdrv-infinity6/sigmastar-osdrv-infinity6.mk new file mode 100644 index 00000000..a49b8cf0 --- /dev/null +++ b/general/package/sigmastar-osdrv-infinity6/sigmastar-osdrv-infinity6.mk @@ -0,0 +1,38 @@ +################################################################################ +# +# sigmastar-osdrv-infinity6 +# +################################################################################ + +SIGMASTAR_OSDRV_INFINITY6_VERSION = +SIGMASTAR_OSDRV_INFINITY6_SITE = +SIGMASTAR_OSDRV_INFINITY6_LICENSE = MIT +SIGMASTAR_OSDRV_INFINITY6_LICENSE_FILES = LICENSE + +SIGMASTAR_OSDRV_INFINITY6_DEPENDENCIES = ipctool + +define SIGMASTAR_OSDRV_INFINITY6_BUILD_CMDS + cp -rf $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/src $(@D) + $(TARGET_CC) $(@D)/src/config_tool.c -o $(@D)/config_tool -s \ + -I$(BUILD_DIR)/ipctool -L$(BUILD_DIR)/ipctool -lipchw +endef + +define SIGMASTAR_OSDRV_INFINITY6_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/4.9.84/sigmastar + $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.84/sigmastar $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/kmod/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/firmware + $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/firmware $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/sensor/firmware/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors + $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/sensor/configs/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib + $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/lib/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin + $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/config_tool + $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/script/* +endef + +$(eval $(generic-package))