Compare commits

..

No commits in common. "15.6" and "master" have entirely different histories.
15.6 ... master

87 changed files with 225 additions and 3307 deletions

906
.config
View File

@ -1,906 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# ArtInChip Luban SDK Configuration
#
BR2_HAVE_DOT_CONFIG=y
BR2_JLEVEL=0
BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig"
BR2_DL_DIR="$(TOPDIR)/dl"
BR2_PACKAGES_DIR="$(TOPDIR)/source"
BR2_PREBUILT_DIR="$(TOPDIR)/prebuilt"
BR2_HOST_DIR="$(BASE_DIR)/host"
BR2_SHARED_STATIC_LIBS=y
BR2_WGET="wget --passive-ftp -nd -t 3"
BR2_SVN="svn --non-interactive"
BR2_BZR="bzr"
BR2_GIT="git"
BR2_CVS="cvs"
BR2_LOCALFILES="cp"
BR2_SCP="scp"
BR2_OPENSSH="ssh"
BR2_HG="hg"
BR2_ZCAT="gzip -d -c"
BR2_BZCAT="bzcat"
BR2_XZCAT="xzcat"
BR2_LZCAT="lzip -d -c"
BR2_TAR_OPTIONS=""
#
# Target options
#
BR2_ARCH_IS_64=y
BR2_ARCH_HAS_MMU_OPTIONAL=y
BR2_riscv=y
BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT=y
BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8=y
BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9=y
BR2_ARCH_NEEDS_GCC_AT_LEAST_5=y
BR2_ARCH_NEEDS_GCC_AT_LEAST_6=y
BR2_ARCH_NEEDS_GCC_AT_LEAST_7=y
BR2_ARCH="riscv64"
BR2_ENDIAN="LITTLE"
BR2_GCC_TARGET_ABI="lp64d"
BR2_BINFMT_SUPPORTS_SHARED=y
BR2_READELF_ARCH_NAME="RISC-V"
BR2_BINFMT_ELF=y
BR2_RISCV_ISA_RVI=y
BR2_RISCV_ISA_RVM=y
BR2_RISCV_ISA_RVA=y
BR2_RISCV_ISA_RVF=y
BR2_RISCV_ISA_RVD=y
BR2_RISCV_ISA_RVC=y
BR2_RISCV_ISA_RVXTHEAD=y
# BR2_riscv32_gcxthead is not set
# BR2_riscv32_gcvxthead is not set
BR2_riscv64_gcxthead=y
# BR2_riscv64_gcvxthead is not set
BR2_RISCV_64=y
BR2_RISCV_ABI_LP64D=y
LUBAN_CHIP_D211=y
LUBAN_BOARD_D211_PER1_MMC=y
# LUBAN_BOARD_D211_PER2_SPINOR is not set
# LUBAN_BOARD_D211_PER2_SPINAND is not set
# LUBAN_BOARD_D211_DEMO is not set
# LUBAN_BOARD_D211_DEMO88_NAND is not set
# LUBAN_BOARD_D211_PER1_MMC_SECURE_BOOT is not set
# LUBAN_BOARD_D211_OTA is not set
# LUBAN_BOARD_D211_DEMO100_NAND is not set
# LUBAN_BOARD_D211_DEMO128_NAND is not set
# LUBAN_BOARD_D211_OTA_EMMC is not set
# LUBAN_BOARD_D211_DEMO88_NOR is not set
# LUBAN_BOARD_D211_DEMO88_NOR_MUSL is not set
# LUBAN_BOARD_D211_QC128_MMC is not set
# LUBAN_BOARD_D211_AISHOOT88_NOR is not set
LUBAN_BOARD_OF_D211="per1"
LUBAN_CHIP_NAME="d211"
LUBAN_BOARD_NAME="per1"
#
# Toolchain
#
BR2_TOOLCHAIN=y
BR2_USE_MMU=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL="toolchain-external-custom"
BR2_TOOLCHAIN_EXTERNAL_PREFIX="$(ARCH)-linux"
BR2_TOOLCHAIN_EXTERNAL_URL=""
BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH="bin"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="$(ARCH)-linux"
BR2_TOOLCHAIN_EXTERNAL_GCC_11=y
# BR2_TOOLCHAIN_EXTERNAL_GCC_10 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_9 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_8 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_7 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_6 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_5 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_4_9 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_4_8 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_4_7 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_4_6 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_4_5 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_4_4 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_4_3 is not set
# BR2_TOOLCHAIN_EXTERNAL_GCC_OLD is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_15 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_14 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_13 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_12 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_11 is not set
BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_10=y
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_9 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_8 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_7 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_6 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_5 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_4 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_3 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_2 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_1 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_0 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_20 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_19 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_18 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_17 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_16 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_15 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_13 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_12 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_11 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_8 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_7 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_5 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_3 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_2 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_0 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_19 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_18 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_17 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_16 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_15 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_14 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_13 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_12 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_11 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_9 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_8 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_7 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_6 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_5 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_4 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_3 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_2 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_1 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_0 is not set
# BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD is not set
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC=y
# BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC is not set
# BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL is not set
BR2_TARGET_OPTIMIZATION=""
#
# Advance setting
#
# BR2_TOOLCHAIN_EXTERNAL_WCHAR is not set
# BR2_TOOLCHAIN_EXTERNAL_LOCALE is not set
BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS=y
BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG=y
BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_SSP is not set
# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set
BR2_TOOLCHAIN_EXTERNAL_CXX=y
# BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY is not set
BR2_TOOLCHAIN_EXTRA_LIBS=""
BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS=y
BR2_INSTALL_LIBSTDCPP=y
BR2_TOOLCHAIN_HAS_THREADS=y
BR2_TOOLCHAIN_HAS_THREADS_DEBUG=y
BR2_TOOLCHAIN_HAS_THREADS_NPTL=y
BR2_TOOLCHAIN_HAS_SYNC_4=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9=y
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10=y
BR2_HOST_GCC_AT_LEAST_4_9=y
BR2_HOST_GCC_AT_LEAST_5=y
BR2_HOST_GCC_AT_LEAST_6=y
#
# Build options
#
BR2_MAKE_WITH_MULTI_THREAD=y
# BR2_OPTIMIZE_0 is not set
# BR2_OPTIMIZE_1 is not set
# BR2_OPTIMIZE_2 is not set
# BR2_OPTIMIZE_3 is not set
BR2_OPTIMIZE_S=y
# BR2_ENABLE_DEBUG is not set
BR2_STRIP_strip=y
BR2_STRIP_EXCLUDE_FILES=""
BR2_STRIP_EXCLUDE_DIRS=""
# BR2_FORCE_BUILD_FROM_SOURCE is not set
# BR2_GENERATE_PREBUILT_TARBALL is not set
#
# System configuration
#
BR2_TARGET_GENERIC_HOSTNAME="aic"
BR2_TARGET_GENERIC_ISSUE="Welcome to ArtInChip Luban Linux"
BR2_TARGET_ENABLE_ROOT_LOGIN=y
BR2_TARGET_GENERIC_ROOT_PASSWD=""
BR2_SYSTEM_DHCP=""
# BR2_TARGET_TZ_INFO is not set
BR2_ROOTFS_USERS_TABLES=""
BR2_ROOTFS_OVERLAY="target/$(LUBAN_CHIP_NAME)/$(LUBAN_BOARD_NAME)/rootfs_overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT=""
BR2_ROOTFS_POST_FAKEROOT_SCRIPT=""
BR2_ROOTFS_POST_IMAGE_SCRIPT=""
#
# Advance setting
#
BR2_ROOTFS_SKELETON_DEFAULT=y
BR2_INIT_BUSYBOX=y
# BR2_INIT_SYSV is not set
# BR2_INIT_NONE is not set
BR2_TARGET_INSTALL_ETC_CONFIG=y
BR2_ENABLE_LOCALE_PURGE=y
BR2_ENABLE_LOCALE_WHITELIST="C en_US"
#
# NLS support needs a toolchain w/ wchar, dynamic library
#
BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="console"
BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP=y
# BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 is not set
# BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 is not set
# BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 is not set
# BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 is not set
# BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 is not set
BR2_TARGET_GENERIC_GETTY_BAUDRATE="0"
BR2_TARGET_GENERIC_GETTY_TERM="vt100"
BR2_TARGET_GENERIC_GETTY_OPTIONS=""
# BR2_ROOTFS_DEVICE_CREATION_STATIC is not set
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y
# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV is not set
# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is not set
BR2_ROOTFS_DEVICE_TABLE="package/system/device_table.txt"
# BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is not set
# BR2_ROOTFS_MERGED_USR is not set
BR2_TARGET_GENERIC_PASSWD_SHA256=y
# BR2_TARGET_GENERIC_PASSWD_SHA512 is not set
BR2_SYSTEM_BIN_SH_BUSYBOX=y
#
# bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
#
# BR2_SYSTEM_BIN_SH_NONE is not set
# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
BR2_TARGET_GENERIC_PASSWD_METHOD="sha-256"
BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
#
# Filesystem images
#
#
# RootFS images
#
# BR2_TARGET_ROOTFS_EXT2 is not set
# BR2_TARGET_ROOTFS_CPIO is not set
# BR2_TARGET_ROOTFS_INITRAMFS is not set
# BR2_TARGET_ROOTFS_JFFS2 is not set
# BR2_TARGET_ROOTFS_SQUASHFS is not set
BR2_TARGET_ROOTFS_TAR=y
BR2_TARGET_ROOTFS_TAR_NONE=y
# BR2_TARGET_ROOTFS_TAR_GZIP is not set
# BR2_TARGET_ROOTFS_TAR_BZIP2 is not set
# BR2_TARGET_ROOTFS_TAR_LZ4 is not set
# BR2_TARGET_ROOTFS_TAR_LZMA is not set
# BR2_TARGET_ROOTFS_TAR_LZO is not set
# BR2_TARGET_ROOTFS_TAR_XZ is not set
BR2_TARGET_ROOTFS_TAR_OPTIONS=""
BR2_UBI_DEVICE_SPI_NAND_2K_128K=y
BR2_UBI_DEVICE_SPI_NAND_4K_256K=y
BR2_UBI_PARAM_ALL_SPI_NAND=y
# BR2_UBI_PARAM_SPI_NAND_2K_128K is not set
# BR2_UBI_PARAM_SPI_NAND_4K_256K is not set
# BR2_UBI_PARAM_USER_CUSTOM is not set
# BR2_TARGET_ROOTFS_UBI is not set
# BR2_TARGET_ROOTFS_UBIFS is not set
# BR2_TARGET_USERFS1 is not set
# BR2_TARGET_USERFS2 is not set
# BR2_TARGET_USERFS3 is not set
# BR2_GENERATE_BURNER_IMAGE is not set
# BR2_GENERATE_IMAGE_AUTO_CALCULATE_SIZE is not set
#
# Bootloader
#
#
# OpenSBI
#
BR2_PACKAGE_OPENSBI=y
# BR2_PACKAGE_OPENSBI_USE_PREBUILT is not set
BR2_PACKAGE_OPENSBI_FW_TEXT_BASE=0x40000000
#
# U-Boot
#
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_VERSION="2021.10"
BR2_TARGET_UBOOT_USE_DEFCONFIG=y
BR2_TARGET_UBOOT_BOARD_DEFCONFIG=""
#
# Advance setting
#
BR2_TARGET_UBOOT_NEEDS_PYTHON_NONE=y
# BR2_TARGET_UBOOT_NEEDS_PYTHON2 is not set
# BR2_TARGET_UBOOT_NEEDS_PYTHON3 is not set
BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
BR2_TARGET_UBOOT_NEEDS_OPENSBI=y
#
# U-Boot binary format
#
BR2_TARGET_UBOOT_FORMAT_BIN=y
# BR2_TARGET_UBOOT_FORMAT_DTB is not set
# BR2_TARGET_UBOOT_FORMAT_DTB_BIN is not set
# BR2_TARGET_UBOOT_FORMAT_NODTB_BIN is not set
# BR2_TARGET_UBOOT_FORMAT_NAND_BIN is not set
# BR2_TARGET_UBOOT_FORMAT_ELF is not set
# BR2_TARGET_UBOOT_FORMAT_IMG is not set
# BR2_TARGET_UBOOT_FORMAT_DTB_IMG is not set
# BR2_TARGET_UBOOT_FORMAT_ITB is not set
# BR2_TARGET_UBOOT_FORMAT_CUSTOM is not set
# BR2_TARGET_UBOOT_SPL is not set
BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS=""
#
# Linux kernel
#
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE=""
BR2_LINUX_KERNEL_VERSION=""
BR2_LINUX_KERNEL_USE_DEFCONFIG=y
BR2_LINUX_KERNEL_DEFCONFIG=""
#
# Advance setting
#
BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH=""
BR2_LINUX_KERNEL_IMAGE=y
# BR2_LINUX_KERNEL_IMAGEBZ2 is not set
# BR2_LINUX_KERNEL_IMAGEGZ is not set
# BR2_LINUX_KERNEL_IMAGELZ4 is not set
# BR2_LINUX_KERNEL_IMAGEXZ is not set
# BR2_LINUX_KERNEL_IMAGELZMA is not set
# BR2_LINUX_KERNEL_IMAGELZO is not set
# BR2_LINUX_KERNEL_VMLINUX is not set
# BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM is not set
#
# Linux Kernel Tools
#
#
# bpftool needs a uClibc or glibc toolchain w/ wchar, dynamic library, threads
#
# BR2_PACKAGE_LINUX_TOOLS_CPUPOWER is not set
# BR2_PACKAGE_LINUX_TOOLS_GPIO is not set
# BR2_PACKAGE_LINUX_TOOLS_SPI is not set
# BR2_PACKAGE_LINUX_TOOLS_IIO is not set
# BR2_PACKAGE_LINUX_TOOLS_PCI is not set
# BR2_PACKAGE_LINUX_TOOLS_PERF is not set
# BR2_PACKAGE_LINUX_TOOLS_TMON is not set
# BR2_PACKAGE_LINUX_TOOLS_TESTUSB is not set
#
# ArtInChip packages
#
BR2_PACKAGE_OPENSSL_HWENGINE=y
# BR2_PACKAGE_OPENSSL_HWENGINE_USE_PREBUILT is not set
BR2_PACKAGE_AIC_AUTHORIZATION=y
# BR2_PACKAGE_AIC_AUTHORIZATION_USE_PREBUILT is not set
BR2_PACKAGE_AIC_MPP=y
# BR2_PACKAGE_AIC_MPP_USE_PREBUILT is not set
BR2_PACKAGE_AIC_MPP_MIDDLEWARE=y
# BR2_PACKAGE_AIC_MPP_AAC_DECODER is not set
# BR2_PACKAGE_AIC_MPP_WAV_DEMUXER is not set
# BR2_PACKAGE_AIC_MPP_AVI_DEMUXER is not set
# BR2_PACKAGE_AIC_MPP_MKV_DEMUXER is not set
# BR2_PACKAGE_AIC_MPP_TS_DEMUXER is not set
# BR2_PACKAGE_AIC_MPP_FLV_DEMUXER is not set
# BR2_PACKAGE_AIC_MPP_RTSP_DEMUXER is not set
BR2_PACKAGE_AIC_LOGO=y
BR2_PACKAGE_LIBUSERID=y
# BR2_PACKAGE_LIBUSERID_USE_PREBUILT is not set
# BR2_PACKAGE_GST1_PLUGINS_AIC is not set
# BR2_PACKAGE_AWTK_UI is not set
# BR2_PACKAGE_LVGL_UI is not set
BR2_PACKAGE_AICP_DEC=y
BR2_PACKAGE_AIC_MEM=y
BR2_PACKAGE_AIC_MEM_USE_PREBUILT=y
# BR2_PACKAGE_WIFIMANAGER is not set
# BR2_PACKAGE_P2P_AUTO is not set
# BR2_PACKAGE_HTTP_WIFICONFIG is not set
#
# Sample code
#
BR2_PACKAGE_TEST_MTOP=y
# BR2_PACKAGE_TEST_MTOP_USE_PREBUILT is not set
BR2_PACKAGE_TEST_CE=y
# BR2_PACKAGE_TEST_CE_USE_PREBUILT is not set
BR2_PACKAGE_TEST_DMA_BUF=y
# BR2_PACKAGE_TEST_DMA_BUF_USE_PREBUILT is not set
BR2_PACKAGE_TEST_DVP=y
# BR2_PACKAGE_TEST_DVP_USE_PREBUILT is not set
BR2_PACKAGE_TEST_FB=y
# BR2_PACKAGE_TEST_FB_USE_PREBUILT is not set
BR2_PACKAGE_TEST_TOUCHSCREEN=y
# BR2_PACKAGE_TEST_TOUCHSCREEN_USE_PREBUILT is not set
BR2_PACKAGE_TEST_UART=y
# BR2_PACKAGE_TEST_UART_USE_PREBUILT is not set
BR2_PACKAGE_TEST_WATCHDOG=y
# BR2_PACKAGE_TEST_WATCHDOG_USE_PREBUILT is not set
# BR2_PACKAGE_TEST_LIBMAD is not set
BR2_PACKAGE_TEST_CLOCK=y
# BR2_PACKAGE_TEST_CLOCK_USE_PREBUILT is not set
BR2_PACKAGE_TEST_KEYADC=y
# BR2_PACKAGE_TEST_KEYADC_USE_PREBUILT is not set
# BR2_PACKAGE_TEST_BATTERY is not set
BR2_PACKAGE_REG_DUMP=y
# BR2_PACKAGE_REG_DUMP_USE_PREBUILT is not set
BR2_PACKAGE_TEST_GPIO=y
# BR2_PACKAGE_TEST_GPIO_USE_PREBUILT is not set
BR2_PACKAGE_TEST_CAN=y
# BR2_PACKAGE_TEST_CAN_USE_PREBUILT is not set
BR2_PACKAGE_TEST_ETH=y
# BR2_PACKAGE_TEST_ETH_USE_PREBUILT is not set
BR2_PACKAGE_TEST_AUDIO=y
# BR2_PACKAGE_TEST_AUDIO_USE_PREBUILT is not set
BR2_PACKAGE_TEST_BLKDEV=y
# BR2_PACKAGE_TEST_BLKDEV_USE_PREBUILT is not set
# BR2_PACKAGE_TEST_TP2825 is not set
# BR2_PACKAGE_TEST_PM_MBOX is not set
BR2_PACKAGE_TEST_EFUSE=y
# BR2_PACKAGE_TEST_EFUSE_USE_PREBUILT is not set
BR2_PACKAGE_TEST_COREDUMP=y
# BR2_PACKAGE_TEST_COREDUMP_USE_PREBUILT is not set
#
# Launchers
#
# BR2_PACKAGE_QTLAUNCHER is not set
#
# Vendor packages
#
# BR2_PACKAGE_MSNLINK is not set
# BR2_PACKAGE_ZJINNOVA is not set
# BR2_PACKAGE_CARBIT is not set
#
# Third-party packages
#
#
# ************************ System ******************************
#
BR2_PACKAGE_BUSYBOX=y
BR2_PACKAGE_BUSYBOX_USE_PREBUILT=y
BR2_PACKAGE_BUSYBOX_CONFIG="package/third-party/busybox/busybox.config"
BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES=""
# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set
# BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES is not set
# BR2_PACKAGE_BUSYBOX_WATCHDOG is not set
BR2_PACKAGE_INITSCRIPTS=y
# BR2_PACKAGE_KMOD is not set
BR2_PACKAGE_SKELETON=y
BR2_PACKAGE_HAS_SKELETON=y
BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-sysv"
BR2_PACKAGE_SKELETON_INIT_COMMON=y
BR2_PACKAGE_SKELETON_INIT_SYSV=y
# BR2_PACKAGE_UTIL_LINUX is not set
# BR2_PACKAGE_GPERF is not set
#
# eudev needs eudev /dev management
#
#
# eudev needs a toolchain w/ wchar, dynamic library
#
# BR2_PACKAGE_GMP is not set
BR2_PACKAGE_GDB_ARCH_SUPPORTS=y
#
# gdb/gdbserver >= 8.x needs a toolchain w/ C++, gcc >= 4.8
#
#
# binutils needs a toolchain w/ wchar
#
# BR2_PACKAGE_SQLITE is not set
BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=y
# BR2_PACKAGE_LIBATOMIC_OPS is not set
# BR2_PACKAGE_LIBPTHREAD_STUBS is not set
# BR2_PACKAGE_LIBDAEMON is not set
#
# ************************ Multimedia **************************
#
BR2_PACKAGE_ALSA_LIB=y
BR2_PACKAGE_ALSA_LIB_USE_PREBUILT=y
BR2_PACKAGE_ALSA_LIB_DEVDIR="/dev/snd"
BR2_PACKAGE_ALSA_LIB_PCM_PLUGINS="all"
BR2_PACKAGE_ALSA_LIB_CTL_PLUGINS="all"
BR2_PACKAGE_ALSA_LIB_ALOAD=y
BR2_PACKAGE_ALSA_LIB_MIXER=y
BR2_PACKAGE_ALSA_LIB_PCM=y
BR2_PACKAGE_ALSA_LIB_RAWMIDI=y
BR2_PACKAGE_ALSA_LIB_HWDEP=y
BR2_PACKAGE_ALSA_LIB_SEQ=y
BR2_PACKAGE_ALSA_LIB_UCM=y
BR2_PACKAGE_ALSA_LIB_ALISP=y
BR2_PACKAGE_ALSA_LIB_OLD_SYMBOLS=y
# BR2_PACKAGE_ALSA_UTILS is not set
BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC=y
#
# pulseaudio needs a toolchain w/ wchar, threads, dynamic library
#
# BR2_PACKAGE_LIBSAMPLERATE is not set
#
# directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library
#
# BR2_PACKAGE_FREETYPE is not set
# BR2_PACKAGE_FONTCONFIG is not set
# BR2_PACKAGE_JPEG is not set
# BR2_PACKAGE_LIBPNG is not set
# BR2_PACKAGE_LIBSNDFILE is not set
# BR2_PACKAGE_QT is not set
BR2_PACKAGE_QT5_JSCORE_AVAILABLE=y
#
# Qt5 needs host g++ >= 5.0, and a toolchain w/ gcc >= 5.0, wchar, NPTL, C++, dynamic library
#
#
# gstreamer 1.x needs a toolchain w/ wchar, threads
#
# BR2_PACKAGE_FBDUMP is not set
# BR2_PACKAGE_LIBDRM is not set
# BR2_PACKAGE_LIBMAD is not set
# BR2_PACKAGE_SBC is not set
# BR2_PACKAGE_FFMPEG is not set
# BR2_PACKAGE_CAIRO is not set
# BR2_PACKAGE_PIXMAN is not set
# BR2_PACKAGE_FAAD2 is not set
# BR2_PACKAGE_LAME is not set
# BR2_PACKAGE_MPG123 is not set
# BR2_PACKAGE_LIBPJSIP is not set
# BR2_PACKAGE_V4L_UTILS is not set
#
# ************************ Network *****************************
#
# BR2_PACKAGE_LIBMODBUS is not set
# BR2_PACKAGE_CAN_UTILS is not set
# BR2_PACKAGE_ETHTOOL is not set
# BR2_PACKAGE_IPROUTE2 is not set
# BR2_PACKAGE_IPERF3 is not set
# BR2_PACKAGE_LIBMNL is not set
# BR2_PACKAGE_LIBNL is not set
# BR2_PACKAGE_LIBTIRPC is not set
# BR2_PACKAGE_NETPERF is not set
# BR2_PACKAGE_WPA_SUPPLICANT is not set
# BR2_PACKAGE_WIRELESS_TOOLS is not set
# BR2_PACKAGE_PPPD is not set
# BR2_PACKAGE_LIBPCAP is not set
# BR2_PACKAGE_HOSTAPD is not set
# BR2_PACKAGE_AIC8800_FW is not set
# BR2_PACKAGE_ASR5505S_FW is not set
# BR2_PACKAGE_TCPDUMP is not set
# BR2_PACKAGE_AVAHI is not set
#
# ************************ Security ****************************
#
#
# libselinux needs a toolchain w/ threads, dynamic library, gcc >= 5
#
#
# libsepol needs a toolchain w/ threads, gcc >= 5
#
# BR2_PACKAGE_LIBSRTP is not set
BR2_PACKAGE_LIBKCAPI=y
BR2_PACKAGE_LIBKCAPI_USE_PREBUILT=y
BR2_PACKAGE_LIBKCAPI_ASYM=y
# BR2_PACKAGE_LIBKCAPI_DGSTAPP is not set
# BR2_PACKAGE_LIBKCAPI_ENCAPP is not set
# BR2_PACKAGE_LIBKCAPI_HASHER is not set
# BR2_PACKAGE_LIBKCAPI_KPP is not set
# BR2_PACKAGE_LIBKCAPI_RNGAPP is not set
# BR2_PACKAGE_LIBKCAPI_SPEED is not set
# BR2_PACKAGE_LIBKCAPI_TEST is not set
# BR2_PACKAGE_OPENSSL is not set
BR2_PACKAGE_PROVIDES_HOST_OPENSSL="host-libopenssl"
# BR2_PACKAGE_CRYPTSETUP is not set
#
# linux-pam needs a toolchain w/ wchar, locale, dynamic library
#
# BR2_PACKAGE_FSCRYPT is not set
#
# ************************ Memory ******************************
#
# BR2_PACKAGE_E2FSPROGS is not set
# BR2_PACKAGE_IOZONE is not set
# BR2_PACKAGE_MEMTESTER is not set
# BR2_PACKAGE_MTD is not set
# BR2_PACKAGE_SQUASHFS is not set
#
# ************************ Connectivity ************************
#
BR2_PACKAGE_TSLIB=y
BR2_PACKAGE_TSLIB_USE_PREBUILT=y
# BR2_PACKAGE_LIBGPIOD is not set
#
# ************* Debugging, profiling and benchmark *************
#
# BR2_PACKAGE_TRACE_CMD is not set
#
# ************************ Other Tools *************************
#
# BR2_PACKAGE_ACL is not set
#
# bluez-alsa needs a toolchain w/ wchar, NPTL, headers >= 3.4, dynamic library, gcc >= 4.9
#
# BR2_PACKAGE_BLUEZ5_UTILS_HEADERS is not set
#
# bluez5-utils needs a toolchain w/ wchar, threads, headers >= 3.4, dynamic library
#
# BR2_PACKAGE_NCURSES is not set
# BR2_PACKAGE_PKGCONF is not set
# BR2_PACKAGE_ATTR is not set
# BR2_PACKAGE_DBUS is not set
# BR2_PACKAGE_EXPAT is not set
# BR2_PACKAGE_FLEX is not set
# BR2_PACKAGE_GETTEXT is not set
BR2_PACKAGE_PROVIDES_HOST_GETTEXT="host-gettext-tiny"
# BR2_PACKAGE_JSON_C is not set
# BR2_PACKAGE_LIBAIO is not set
# BR2_PACKAGE_LIBARGON2 is not set
# BR2_PACKAGE_LIBFFI is not set
#
# libglib2 needs a toolchain w/ wchar, threads
#
# BR2_PACKAGE_LIBTOOL is not set
# BR2_PACKAGE_LVM2 is not set
# BR2_PACKAGE_ANDROID_TOOLS is not set
# BR2_PACKAGE_BZIP2 is not set
# BR2_PACKAGE_LRZSZ is not set
# BR2_PACKAGE_LZ4 is not set
# BR2_PACKAGE_LZIP is not set
# BR2_PACKAGE_LZO is not set
# BR2_PACKAGE_LZOP is not set
# BR2_PACKAGE_PCRE is not set
# BR2_PACKAGE_PCRE2 is not set
# BR2_PACKAGE_POPT is not set
# BR2_PACKAGE_READLINE is not set
# BR2_PACKAGE_XZ is not set
BR2_PACKAGE_ZLIB=y
BR2_PACKAGE_ZLIB_USE_PREBUILT=y
BR2_PACKAGE_LIBZLIB_USE_PREBUILT=y
BR2_PACKAGE_ZLIB_NG_USE_PREBUILT=y
BR2_PACKAGE_LIBZLIB=y
BR2_PACKAGE_HAS_ZLIB=y
BR2_PACKAGE_PROVIDES_ZLIB="libzlib"
BR2_PACKAGE_PROVIDES_HOST_ZLIB="host-libzlib"
# BR2_PACKAGE_ZSTD is not set
# BR2_PACKAGE_PYTHON_SETUPTOOLS is not set
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_UBOOT_TOOLS_USE_PREBUILT=y
BR2_PACKAGE_LIBUBOOTENV=y
BR2_PACKAGE_LIBUBOOTENV_USE_PREBUILT=y
BR2_PACKAGE_LIBCONFIG=y
BR2_PACKAGE_LIBCONFIG_USE_PREBUILT=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_USE_PREBUILT=y
# BR2_PACKAGE_LIBCURL_CURL is not set
# BR2_PACKAGE_LIBCURL_VERBOSE is not set
BR2_PACKAGE_LIBCURL_PROXY_SUPPORT=y
BR2_PACKAGE_LIBCURL_COOKIES_SUPPORT=y
BR2_PACKAGE_LIBCURL_EXTRA_PROTOCOLS_FEATURES=y
BR2_PACKAGE_LIBCURL_TLS_NONE=y
BR2_PACKAGE_SWUPDATE=y
BR2_PACKAGE_SWUPDATE_USE_PREBUILT=y
BR2_PACKAGE_SWUPDATE_CONFIG="package/third-party/swupdate/luban_swupdate.config"
#
# swupdate usb needs systemd
#
BR2_PACKAGE_SWUPDATE_WEBSERVER=y
BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE=y
# BR2_PACKAGE_PERL is not set
# BR2_PACKAGE_OPENSSH is not set
# BR2_PACKAGE_CJSON is not set
# BR2_PACKAGE_LIVE555 is not set
# BR2_PACKAGE_RTL8733BS_BT_FW is not set
# BR2_PACKAGE_RTL8733BU_BT_FW is not set
#
# ************************ MTP Tools *************************
#
# BR2_PACKAGE_LIBFUSE is not set
# BR2_PACKAGE_LIBICONV is not set
#
# libusb needs a toolchain w/ threads, gcc >= 4.9
#
# BR2_PACKAGE_MTPFS is not set
# BR2_PACKAGE_UMTPRD is not set
# BR2_PACKAGE_LIBMTP is not set
#
# Host utilities
#
#
# ************************ System ******************************
#
BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS=y
BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS_USE_PREBUILT=y
BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS=y
BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS=y
BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS=y
BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS_USE_PREBUILT=y
# BR2_PACKAGE_HOST_COREUTILS is not set
BR2_PACKAGE_HOST_FAKEROOT=y
BR2_PACKAGE_HOST_FAKEROOT_USE_PREBUILT=y
BR2_PACKAGE_HOST_KMOD=y
BR2_PACKAGE_HOST_KMOD_USE_PREBUILT=y
# BR2_PACKAGE_HOST_KMOD_GZ is not set
# BR2_PACKAGE_HOST_KMOD_ZSTD is not set
# BR2_PACKAGE_HOST_KMOD_XZ is not set
BR2_PACKAGE_HOST_MAKEDEVS=y
BR2_PACKAGE_HOST_MAKEDEVS_USE_PREBUILT=y
BR2_PACKAGE_HOST_MKPASSWD=y
BR2_PACKAGE_HOST_MKPASSWD_USE_PREBUILT=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
BR2_PACKAGE_HOST_UBOOT_TOOLS_USE_PREBUILT=y
# BR2_PACKAGE_HOST_UTIL_LINUX is not set
BR2_PACKAGE_HOST_ZIC=y
BR2_PACKAGE_HOST_ZIC_USE_PREBUILT=y
BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS=y
#
# Host GDB Options
#
# BR2_PACKAGE_HOST_GDB is not set
#
# Binutils Options
#
BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI=y
# BR2_BINUTILS_VERSION_2_37_X is not set
BR2_BINUTILS_VERSION_2_38_X=y
# BR2_BINUTILS_VERSION_2_39_X is not set
BR2_BINUTILS_VERSION="2.38"
BR2_BINUTILS_EXTRA_CONFIG_OPTIONS=""
#
# ************************ Storage/Memory **********************
#
# BR2_PACKAGE_HOST_E2FSPROGS is not set
# BR2_PACKAGE_HOST_MTD is not set
# BR2_PACKAGE_HOST_SQUASHFS is not set
#
# ************************ Security ****************************
#
# BR2_PACKAGE_HOST_CRYPTSETUP is not set
#
# ************************ Multimedia **************************
#
#
# ************************ Compression *************************
#
# BR2_PACKAGE_HOST_TAR is not set
# BR2_PACKAGE_HOST_BZIP2 is not set
# BR2_PACKAGE_HOST_GZIP is not set
# BR2_PACKAGE_HOST_LZ4 is not set
# BR2_PACKAGE_HOST_LZMA is not set
# BR2_PACKAGE_HOST_LZO is not set
# BR2_PACKAGE_HOST_LZOP is not set
# BR2_PACKAGE_HOST_XZ is not set
# BR2_PACKAGE_HOST_LIBZLIB is not set
# BR2_PACKAGE_HOST_ZSTD is not set
#
# ************************ Tools *******************************
#
# BR2_PACKAGE_HOST_ANDROID_TOOLS is not set
# BR2_PACKAGE_HOST_ACL is not set
# BR2_PACKAGE_HOST_ATTR is not set
BR2_PACKAGE_HOST_AUTOCONF=y
BR2_PACKAGE_HOST_AUTOCONF_USE_PREBUILT=y
# BR2_PACKAGE_HOST_AUTOCONF_ARCHIVE is not set
BR2_PACKAGE_HOST_AUTOMAKE=y
BR2_PACKAGE_HOST_AUTOMAKE_USE_PREBUILT=y
BR2_PACKAGE_HOST_BISON=y
BR2_PACKAGE_HOST_BISON_USE_PREBUILT=y
# BR2_PACKAGE_HOST_CMAKE is not set
# BR2_PACKAGE_HOST_FLEX is not set
# BR2_PACKAGE_HOST_LIBTOOL is not set
# BR2_PACKAGE_HOST_MAKE is not set
# BR2_PACKAGE_HOST_MESON is not set
# BR2_PACKAGE_HOST_NINJA is not set
# BR2_PACKAGE_HOST_PKGCONF is not set
BR2_PACKAGE_HOST_PATCHELF=y
BR2_PACKAGE_HOST_PATCHELF_USE_PREBUILT=y
# BR2_PACKAGE_HOST_PYTHON3 is not set
BR2_PACKAGE_HOST_PYTHON3_FDT=y
BR2_PACKAGE_HOST_PYTHON3_FDT_USE_PREBUILT=y
BR2_PACKAGE_HOST_PYTHON3_PYCRYPTODOMEX=y
BR2_PACKAGE_HOST_PYTHON3_PYCRYPTODOMEX_USE_PREBUILT=y
# BR2_PACKAGE_HOST_SWIG is not set
#
# Firmwares
#

View File

@ -1,3 +0,0 @@
make list
make d211_demo128_nand_defconfig
make

View File

@ -1,61 +0,0 @@
make distclean
#rm source/uboot-2021.10/include/configs/image_cfg.json
rm -fr output/*
rm tools/scripts/Cryptodome/Cipher/AES.pyc
rm tools/scripts/Cryptodome/Cipher/__init__.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_cbc.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_ccm.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_cfb.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_ctr.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_eax.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_ecb.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_gcm.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_ocb.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_ofb.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_openpgp.pyc
rm tools/scripts/Cryptodome/Cipher/_mode_siv.pyc
rm tools/scripts/Cryptodome/Hash/BLAKE2s.pyc
rm tools/scripts/Cryptodome/Hash/CMAC.pyc
rm tools/scripts/Cryptodome/Hash/HMAC.pyc
rm tools/scripts/Cryptodome/Hash/MD5.pyc
rm tools/scripts/Cryptodome/Hash/SHA1.pyc
rm tools/scripts/Cryptodome/Hash/SHA256.pyc
rm tools/scripts/Cryptodome/Hash/__init__.pyc
rm tools/scripts/Cryptodome/Math/Numbers.pyc
rm tools/scripts/Cryptodome/Math/Primality.pyc
rm tools/scripts/Cryptodome/Math/_IntegerBase.pyc
rm tools/scripts/Cryptodome/Math/_IntegerGMP.pyc
rm tools/scripts/Cryptodome/Math/__init__.pyc
rm tools/scripts/Cryptodome/Protocol/KDF.pyc
rm tools/scripts/Cryptodome/Protocol/__init__.pyc
rm tools/scripts/Cryptodome/PublicKey/RSA.pyc
rm tools/scripts/Cryptodome/PublicKey/__init__.pyc
rm tools/scripts/Cryptodome/Random/__init__.pyc
rm tools/scripts/Cryptodome/Signature/PKCS1_v1_5.pyc
rm tools/scripts/Cryptodome/Signature/__init__.pyc
rm tools/scripts/Cryptodome/Signature/pkcs1_15.pyc
rm tools/scripts/Cryptodome/Util/__init__.pyc
rm tools/scripts/Cryptodome/Util/_cpu_features.pyc
rm tools/scripts/Cryptodome/Util/_file_system.pyc
rm tools/scripts/Cryptodome/Util/_raw_api.pyc
rm tools/scripts/Cryptodome/Util/asn1.pyc
rm tools/scripts/Cryptodome/Util/number.pyc
rm tools/scripts/Cryptodome/Util/py3compat.pyc
rm tools/scripts/Cryptodome/Util/strxor.pyc
rm tools/scripts/Cryptodome/__init__.pyc
rm tools/scripts/asn1crypto/__init__.pyc
rm tools/scripts/asn1crypto/_errors.pyc
rm tools/scripts/asn1crypto/_iri.pyc
rm tools/scripts/asn1crypto/_ordereddict.pyc
rm tools/scripts/asn1crypto/_teletex_codec.pyc
rm tools/scripts/asn1crypto/_types.pyc
rm tools/scripts/asn1crypto/core.pyc
rm tools/scripts/asn1crypto/parser.pyc
rm tools/scripts/asn1crypto/util.pyc
rm tools/scripts/asn1crypto/version.pyc
rm tools/scripts/gmssl/__init__.pyc
rm tools/scripts/gmssl/func.pyc
rm tools/scripts/gmssl/sm2.pyc
rm tools/scripts/gmssl/sm3.pyc
rm tools/scripts/gmssl/sm4.pyc

View File

@ -1 +0,0 @@
BR2_PACKAGE_SWUPDATE=y

View File

@ -1 +0,0 @@
https://aicdoc.artinchip.com/topics/sdk/wifi/wifi-rtl8821cs-luban.html

View File

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.34.1
# Wed Apr 15 10:32:02 2026
# Tue Nov 21 10:34:55 2023
#
CONFIG_HAVE_DOT_CONFIG=y
@ -936,10 +936,10 @@ CONFIG_FEATURE_NETSTAT_PRG=y
# CONFIG_NSLOOKUP is not set
# CONFIG_FEATURE_NSLOOKUP_BIG is not set
# CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS is not set
CONFIG_NTPD=y
CONFIG_FEATURE_NTPD_SERVER=y
CONFIG_FEATURE_NTPD_CONF=y
CONFIG_FEATURE_NTP_AUTH=y
# CONFIG_NTPD is not set
# CONFIG_FEATURE_NTPD_SERVER is not set
# CONFIG_FEATURE_NTPD_CONF is not set
# CONFIG_FEATURE_NTP_AUTH is not set
CONFIG_PING=y
# CONFIG_PING6 is not set
CONFIG_FEATURE_FANCY_PING=y

View File

@ -25,4 +25,3 @@ for i in /etc/init.d/S??* ;do
esac
done
/data/bin/e_player &

View File

@ -288,15 +288,4 @@ define SWUPDATE_INSTALL_INIT_SYSV
$(TARGET_DIR)/usr/lib/swupdate
endef
# When BR2_PACKAGE_SWUPDATE_USE_PREBUILT is enabled, the package infrastructure
# installs files from the prebuilt tarball into TARGET_DIR/STAGING_DIR.
# Ensure our local helper scripts override any prebuilt versions.
define SWUPDATE_OVERWRITE_HELPER_SCRIPTS
$(INSTALL) -D -m 755 $(SWUPDATE_PKGDIR)/swupdate_cmd.sh \
$(TARGET_DIR)/usr/lib/swupdate/swupdate_cmd.sh
$(INSTALL) -D -m 755 $(SWUPDATE_PKGDIR)/swupdate_end.sh \
$(TARGET_DIR)/usr/lib/swupdate/swupdate_end.sh
endef
SWUPDATE_POST_INSTALL_TARGET_HOOKS += SWUPDATE_OVERWRITE_HELPER_SCRIPTS
$(eval $(kconfig-package))

View File

@ -29,8 +29,8 @@ swupdate_cmd()
echo "###now do swupdate###"
echo "##swupdate -v $swu_param -e "$swu_boardname,$swu_entry" ##"
swupdate -v $swu_param -e "$swu_boardname,$swu_entry"
echo "##swupdate -v$swu_param -e "$swu_boardname,$swu_entry" ##"
swupdate -v$swu_param -e "$swu_boardname,$swu_entry"
swu_reboot=$(fw_printenv -n swu_reboot 2>/dev/null)
echo "swu_reboot: ##$swu_reboot##"

View File

@ -569,21 +569,10 @@ $(BUILD_DIR)/%/.stamp_prebuilt_rsynced:
$(Q)touch $@
$(BUILD_DIR)/%/.stamp_prebuilt_patched:
$(Q)touch $@
#$(BUILD_DIR)/%/.stamp_prebuilt_extracted:
# @$(call MESSAGE,"Extracting prebuilt binary tarball")
# $($(PKG)_PREBUILT_EXTRACT_CMDS)
# @tools/support/scripts/fix-prebuilt-rpath.sh $($(PKG)_NAME) $($(PKG)_BASENAME) $($(PKG)_DIR)
# $(Q)touch $@
$(BUILD_DIR)/%/.stamp_prebuilt_extracted:
@$(call MESSAGE,"Extracting prebuilt binary tarball: $($(PKG)_NAME)")
# 创建解压目录避免tar解压失败
$(Q)mkdir -p $(BUILD_DIR)/$($(PKG)_BASENAME)
# 执行解压命令(添加容错参数,输出详细日志)
$(Q)$($(PKG)_PREBUILT_EXTRACT_CMDS) 2>&1 | tee $(BUILD_DIR)/$($(PKG)_BASENAME)/tar_extract.log || \
(echo "WARN: Extract failed, skip error files..." && true)
# 修复预编译包的RPATH运行时库路径
@$(call MESSAGE,"Extracting prebuilt binary tarball")
$($(PKG)_PREBUILT_EXTRACT_CMDS)
@tools/support/scripts/fix-prebuilt-rpath.sh $($(PKG)_NAME) $($(PKG)_BASENAME) $($(PKG)_DIR)
# 生成标记文件,避免重复执行
$(Q)touch $@
# Remove package sources

View File

@ -94,14 +94,11 @@ CONFIG_NET_ARTINCHIP_MAC=y
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_NET_VENDOR_XILINX is not set
CONFIG_REALTEK_PHY=y
# CONFIG_RTL_CARDS is not set
CONFIG_AIC_WLAN_SUPPORT=y
CONFIG_AIC8800_WLAN_SUPPORT=m
CONFIG_AIC8800_BTLPM_SUPPORT=m
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_ARTINCHIP=y
CONFIG_TOUCHSCREEN_GT9XX=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
@ -130,12 +127,11 @@ CONFIG_FB=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_PWM=y
CONFIG_BACKLIGHT_GPIO=y
CONFIG_LT8911EXB=y
CONFIG_ARTINCHIP_GE=y
CONFIG_ARTINCHIP_VE=y
CONFIG_ARTINCHIP_FB=y
CONFIG_AIC_DISP_MIPI_DSI=y
CONFIG_AIC_PANEL_DSI_SIMPLE=y
CONFIG_AIC_DISP_LVDS=y
CONFIG_AIC_PANEL_LVDS_GENERAL=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SOC=y
@ -201,8 +197,8 @@ CONFIG_CRYPTO_STATS=y
CONFIG_CRYPTO_USER_API_AKCIPHER=y
CONFIG_CRYPTO_DEV_ARTINCHIP_CE=y
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=52
CONFIG_CMA_MPP_SIZE_MBYTES=28
CONFIG_CMA_SIZE_MBYTES=24
CONFIG_CMA_MPP_SIZE_MBYTES=16
CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y

View File

@ -46,15 +46,10 @@ extern int aicwf_dbg_level_bsp;
#define AICWF_LOG "AICWFDBG("
//#define AICWFDBG(level, args, arg...) \
do { \
if (aicwf_dbg_level_bsp & level) { \
printk(AICWF_LOG#level")\t" args, ##arg); \
} \
} while (0)
#define AICWFDBG(level, args, arg...) \
do { \
if (aicwf_dbg_level_bsp & level) { \
printk(AICWF_LOG#level")\t" args, ##arg); \
} \
} while (0)

View File

@ -20,15 +20,10 @@ void rwnx_data_dump(char* tag, void* data, unsigned long len);
#define AICWF_LOG "AICWFDBG("
//#define AICWFDBG(level, args, arg...) \
do { \
if (aicwf_dbg_level & level) { \
printk(AICWF_LOG#level")\t" args, ##arg); \
} \
} while (0)
#define AICWFDBG(level, args, arg...) \
do { \
if (aicwf_dbg_level & level) { \
printk(AICWF_LOG#level")\t" args, ##arg); \
} \
} while (0)

View File

@ -24,7 +24,6 @@ source "drivers/video/fbdev/Kconfig"
endmenu
source "drivers/video/backlight/Kconfig"
source "drivers/video/lt8911exb/Kconfig"
config VGASTATE
tristate

View File

@ -9,7 +9,6 @@ obj-y += backlight/
obj-y += fbdev/
obj-y += artinchip/
obj-y += lt8911exb/
obj-$(CONFIG_VIDEOMODE_HELPERS) += display_timing.o videomode.o
ifeq ($(CONFIG_OF),y)

View File

@ -71,15 +71,15 @@ static struct aic_panel_funcs panel_funcs = {
/* Init the videomode parameter, dts will override the initial value. */
static struct videomode panel_vm = {
.pixelclock = 150 * 1000 * 1000,
.hactive = 1920,
.hfront_porch = 188,
.hback_porch = 148,
.hsync_len = 44,
.vactive = 1080,
.vfront_porch = 4,
.vback_porch = 36,
.vsync_len = 5,
.pixelclock = 130000000,
.hactive = 1200,
.hfront_porch = 160,
.hback_porch = 160,
.hsync_len = 40,
.vactive = 1920,
.vfront_porch = 10,
.vback_porch = 20,
.vsync_len = 8,
.flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE
};

View File

@ -1,10 +0,0 @@
config LT8911EXB
tristate "LT8911EXB Driver"
default n
help
Control LT8911EXB Chip
Select m:build as a separate module;
Select y:Build into the kernel
Select n:Not build

View File

@ -1,32 +0,0 @@
#include "include/include.h"
bool g_irq_flag = 0;
int LT8911EXB_Main(void *data)
{
printk("LT8911EXB Init Start:");
LT8911_Reset();
msleep(100);
LT8911_ChipID();
LT8911_SetVideoTiming(&video);
LT8911_Init(&video);
LT8911_LinkTrain();
LT8911_LinkTrainResultCheck();
LT8911_video_check() ;
LT8911_pcr_mk_printk();
LT8911_htotal_stable_printk();
while(!atomic_read(&thread_should_stop))
{
LT8911_MainLoop(&video);
msleep(500);
}
return 0;
}

View File

@ -1,283 +0,0 @@
#include "include/include.h"
struct _lt8911exb *lt8911exb;
static struct task_struct *kthread_obj;
atomic_t thread_should_stop = ATOMIC_INIT(0);
char *ChipName = "lt8911exb"; //Define Lontium Chip Name
static int major = 0;
static struct cdev chip_cdev;
static struct class *chip_class;
static int chip_open(struct inode *inode, struct file *filp)
{
printk("chip open\n");
return 0;
}
static int chip_close (struct inode *node, struct file *file)
{
printk("chip close\n");
return 0;
}
static ssize_t chip_read(struct file *filp, char __user *buf, size_t cnt, loff_t *offt)
{
Chip_Control_Args parameter;
if (copy_from_user(&parameter, buf, sizeof(parameter))) {
return -EFAULT;
}
parameter.value = HDMI_ReadI2C_Byte(parameter.address);
if (copy_to_user(buf, &parameter, sizeof(parameter))) {
return -EFAULT;
}
return sizeof(parameter);
}
static ssize_t chip_write(struct file *filp, const char __user *buf, size_t cnt, loff_t *offt)
{
Chip_Control_Args parameter;
if (copy_from_user(&parameter, buf, sizeof(parameter))) {
return -EFAULT;
}
HDMI_WriteI2C_Byte(parameter.address, parameter.value);
return sizeof(parameter);
}
static struct file_operations chip_drv = {
.owner = THIS_MODULE,
.open = chip_open,
.release = chip_close,
.read = chip_read,
.write = chip_write,
};
static int chip_dev_init(void)
{
int ret;
dev_t devid;
ret = alloc_chrdev_region(&devid, 0, 1, ChipName);
if (ret < 0) {
return ret;
}
major = MAJOR(devid);
cdev_init(&chip_cdev, &chip_drv);
cdev_add(&chip_cdev, devid, 1);
chip_class = class_create(THIS_MODULE, "chip_class");
if (IS_ERR(chip_class)) {
unregister_chrdev(major, ChipName);
return -1;
}
device_create(chip_class, NULL, MKDEV(major, 0), NULL, ChipName); /* /dev/ChipName */
return 0;
}
static void chip_dev_exit(void)
{
device_destroy(chip_class, MKDEV(major, 0));
class_destroy(chip_class);
cdev_del(&chip_cdev);
unregister_chrdev_region(MKDEV(major,0), 1);
}
static const struct regmap_range chip_ranges[] = {
{ .range_min = 0, .range_max = 0xffff },
};
static const struct regmap_access_table chip_table = {
.yes_ranges = chip_ranges,
.n_yes_ranges = ARRAY_SIZE(chip_ranges),
};
static const struct regmap_config chip_regmap_config = {
.reg_bits = 8,
.val_bits = 8,
.volatile_table = &chip_table,
.cache_type = REGCACHE_NONE,
};
/*
* devm_gpiod_get_optional - If this fails, NULL is returned and no error pointer.
*
* devm_gpiod_get - If this fails, an error pointer is returned, usually ERR_PTR(-ENOENT).
*
* The devm_gpiod_get function is recommended for practical use.
*/
static int chip_parse_dts(struct device *dev)
{
//Gets the handle to power gpio in dts
lt8911exb->power_gpio=devm_gpiod_get_optional(dev, "power", GPIOD_OUT_LOW);
if (IS_ERR(lt8911exb->power_gpio)) {
dev_err(dev, "Failed to get power GPIO\n");
return PTR_ERR(lt8911exb->power_gpio);
}
//Gets the handle to reset gpio in dts
lt8911exb->reset_gpio=devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(lt8911exb->reset_gpio)) {
dev_err(dev, "Failed to get reset GPIO\n");
return PTR_ERR(lt8911exb->reset_gpio);
}
// Additional GPIO pins can be added here if needed
return 0;
}
static int chip_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
int ret;
chip_dev_init();
lt8911exb = devm_kzalloc(&client->dev, sizeof(*lt8911exb), GFP_KERNEL);
if (lt8911exb == NULL)
return -ENOMEM;
lt8911exb->trans_i2c = client;
lt8911exb->dev = &client->dev;
lt8911exb->chip_regmap = devm_regmap_init_i2c(client, &chip_regmap_config);
if (IS_ERR(lt8911exb->chip_regmap)) {
dev_err(&client->dev, "Failed to initialize regmap\n");
return PTR_ERR(lt8911exb->chip_regmap);
}
ret = chip_parse_dts(lt8911exb->dev);
if (ret<0){
dev_err(&client->dev, "Failed to parse device tree\n");
return ret;
}
i2c_set_clientdata(client, lt8911exb);
kthread_obj = kthread_run(LT8911EXB_Main, NULL, "LT8911EXB_kthread");
if (IS_ERR(kthread_obj)) {
kthread_obj = NULL;
chip_dev_exit();
dev_err(&client->dev, "Failed to create kernel thread\n");
return PTR_ERR(kthread_obj);
}
return 0;
}
static int chip_remove(struct i2c_client *client)
{
if (kthread_obj) {
atomic_set(&thread_should_stop, 1);
kthread_stop(kthread_obj);
kthread_obj = NULL;
}
chip_dev_exit();
printk("driver removed\n");
return 0;
}
static int chip_suspend(struct device *dev)
{
//power off
atomic_set(&thread_should_stop, 1);
kthread_stop(kthread_obj);
msleep(5);
gpiod_set_value(lt8911exb->power_gpio,0);
printk(KERN_INFO "lt8911exb Suspend");
return 0;
}
static int chip_resume(struct device *dev)
{
//power on
gpiod_set_value(lt8911exb->power_gpio,1);
msleep(5);
atomic_set(&thread_should_stop, 0);
kthread_obj = kthread_run(LT8911EXB_Main, NULL, "LT8911EXB_kthread");
printk(KERN_INFO "lt8911exb Resume");
return 0;
}
static const struct dev_pm_ops chip_pm_ops = {
.suspend = chip_suspend,
.resume = chip_resume,
};
static const struct i2c_device_id chip_ids[] = {
{"lt8911exb", 0},
{ }
};
MODULE_DEVICE_TABLE(i2c, chip_ids);
static const struct of_device_id chip_id_table[] = {
{.compatible = "lontium,lt8911exb"},
{ }
};
MODULE_DEVICE_TABLE(of, chip_id_table);
static struct i2c_driver chip_driver = {
.driver = {
.owner = THIS_MODULE,
.name = "lt8911exb",
.pm = &chip_pm_ops,
.of_match_table = chip_id_table,
},
.probe = chip_probe,
.remove = chip_remove,
.id_table = chip_ids,
};
module_i2c_driver(chip_driver);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("LT8911EXB driver");
MODULE_AUTHOR("Tony <syyang@lontium.com>");

View File

@ -1,5 +0,0 @@
lt8911exb-y := LontiumDrv.o LT8911EXB_Main.o OcmI2cMaster.o lt8911.o
obj-$(CONFIG_LT8911EXB) += lt8911exb.o

View File

@ -1,72 +0,0 @@
#include "include/include.h"
static unsigned char g_ucLogLevel = LOG_DEBUG;
static char *messageTypeStr[] = {"DEBUG","INFO","WARN", "ERROR","CRIT"};
//void Ocm_PrintLevel_Set(unsigned char ucLvl)
//{
// g_ucLogLevel = ucLvl;
//}
void LTLog(unsigned char ucLvl, const char *fmt, ...)
{
char buf[MAX_NUMBER_BYTES] = {0};
va_list args;
if (ucLvl > LOG_NOTRACE)
{
return;
}
//打印大于等于该级别的字符串
if(ucLvl >= g_ucLogLevel)
{
va_start(args, fmt);
vsprintf(buf, fmt, args);
va_end(args);
//左对齐5个字符
printk("\n[%-5s] %s", messageTypeStr[ucLvl], buf);
}
}
int HDMI_WriteI2C_Byte(u8 addr,u8 data)
{
int ret = 0;
ret = regmap_write(lt8911exb->chip_regmap, addr, data);
if (ret < 0) {
printk("regmap_write error: (0x%02x 0x%02x 0x%02x) %d",
lt8911exb->trans_i2c->addr, addr, data, ret);
return ret;
}
return 0;
}
int HDMI_ReadI2C_Byte(u8 addr)
{
int ret = 0;
unsigned int val = 0;
ret = regmap_read(lt8911exb->chip_regmap, addr, &val);
if (ret < 0) {
printk("regmap_read error: (0x%02x 0x%02x) %d",
lt8911exb->trans_i2c->addr, addr, ret);
return ret;
}
return (u8)val;
}
EXPORT_SYMBOL(HDMI_WriteI2C_Byte);
EXPORT_SYMBOL(HDMI_ReadI2C_Byte);

View File

@ -1,11 +0,0 @@
#ifndef _LT8911EXB_MAIN_H_
#define _LT8911EXB_MAIN_H_
extern bool g_irq_flag;
extern int LT8911EXB_Main(void *data);
#endif

View File

@ -1,27 +0,0 @@
#ifndef _LONTIUMDRV_H_
#define _LONTIUMDRV_H_
struct _lt8911exb{
struct device *dev;
struct mutex ocm_lock;
struct gpio_desc *reset_gpio;
struct gpio_desc *power_gpio;
struct i2c_client *trans_i2c;
struct regmap *chip_regmap;
};
typedef struct
{
u8 address; // 寄存器地址
u8 value; // 寄存器值
} Chip_Control_Args;
extern struct _lt8911exb *lt8911exb;
extern atomic_t thread_should_stop;
#endif

View File

@ -1,22 +0,0 @@
#ifndef _OCMI2CMASTER_H_
#define _OCMI2CMASTER_H_
#define MAX_NUMBER_BYTES 128
typedef enum
{
LOG_DEBUG =0x00,
LOG_INFO,
LOG_WARN,
LOG_ERROR,
LOG_CRITICAL,
LOG_NOTRACE,
} LT_LogLevel;
void LTLog(unsigned char ucLvl, const char *fmt, ...);
extern int HDMI_WriteI2C_Byte(u8 addr,u8 data);
extern int HDMI_ReadI2C_Byte(u8 addr);
#endif

View File

@ -1,39 +0,0 @@
#ifndef _INCLUDE_H_
#define _INCLUDE_H_
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
#include <linux/gpio.h>
#include <linux/kobject.h>
#include <linux/sysfs.h>
#include <linux/printk.h>
#include <linux/miscdevice.h>
#include <linux/kernel.h>
#include <linux/major.h>
#include <linux/mutex.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/stat.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/tty.h>
#include <linux/kmod.h>
#include <linux/gfp.h>
#include <linux/module.h>
#include <linux/kthread.h>
#include <linux/atomic.h>
#include "type.h"
#include "LontiumDrv.h"
#include "LT8911EXB_Main.h"
#include "lt8911.h"
#include "OcmI2cMaster.h"
#endif

View File

@ -1,72 +0,0 @@
#ifndef _LT8911EXB_H_
#define _LT8911EXB_H_
//////////////////////LT8911 Config///////////////////
//#define _1920x1200_eDP_Panel_
#define _1080P_eDP_Panel_
//#define _1366x768_eDP_Panel_
//#define _1280x800_eDP_Panel_
//#define _1600x900_eDP_Panel_
#define SCRAMBLE_MODE 0x00 //0x80: edp, 0x00: dp
//#define sync_polarity 0x00 //0x00: no_adj; 0x20: vs_adj; 0x10: hs_adj; 0x30: H/Vs adj;
//#define _6bit_
//#define _dither_enable_
#define _eDP_2G7_
//#define _eDP_1G62_
#define _link_train_enable_
//////////option for debug///////////
//#define _read_edid_
//#define _EDP_Pattern_
//#define _Msa_Active_Only_
#define _pcr_mk_printk_
#define _htotal_stable_check_
//#define _gpio_sync_output_
//#define sync_source 0x01 //gpio output lvds Rx sync
#define sync_source 0x02 //gpio output lvds portA sync
//#define sync_source 0x03 //gpio output lvds portB sync
//gpio2: de, gpio3: vs, gpio4: hs.
struct video_timing{
u16 hfp;
u16 hs;
u16 hbp;
u16 hact;
u16 htotal;
u16 vfp;
u16 vs;
u16 vbp;
u16 vact;
u16 vtotal;
u32 pclk_khz;
};
struct Lane_No{
u8 swing_high_byte;
u8 swing_low_byte;
u8 emph_high_byte;
u8 emph_low_byte;
};
extern struct video_timing video;
extern void LT8911_Reset(void);
extern void LT8911_ChipID(void);
extern void LT8911_SetVideoTiming(struct video_timing *video_format);
extern void LT8911_Init(struct video_timing *video_format);
extern void LT8911_LinkTrain(void);
extern void LT8911_LinkTrainResultCheck(void);
extern void LT8911_video_check(void);
extern void LT8911_pcr_mk_printk(void);
extern void LT8911_htotal_stable_printk(void);
extern void LT8911_MainLoop(struct video_timing *video_format);
#endif

View File

@ -1,10 +0,0 @@
#ifndef _TYPE_H_
#define _TYPE_H_
#define HIGH 1
#define LOW 0
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +0,0 @@
---- LT8911_Init Matches (3 in 3 files) ----
Lt8911.c (d:\龙迅产品程序整理(深圳)\lt8911\lt8911\lt8911exb\democode\for linux\lt8911exb_linux_driver_v1.0.2):void LT8911_Init(struct video_timing *video_format)
Lt8911.h (d:\龙迅产品程序整理(深圳)\lt8911\lt8911\lt8911exb\democode\for linux\lt8911exb_linux_driver_v1.0.2\include):extern void LT8911_Init(struct video_timing *video_format);
LT8911EXB_Main.c (d:\龙迅产品程序整理(深圳)\lt8911\lt8911\lt8911exb\democode\for linux\lt8911exb_linux_driver_v1.0.2): LT8911_Init();

View File

@ -99,7 +99,6 @@ CONFIG_NAND_BBT_OFFSET=0x240000
CONFIG_SYS_SPI_NAND_U_BOOT_LOCATIONS=y
CONFIG_SPI_NAND_WINBOND=y
CONFIG_SPI_NAND_GIGADEVICE=y
CONFIG_SPI_NAND_TOSHIBA=y
CONFIG_SPI_NAND_FMSH=y
CONFIG_SPI_NAND_FORESEE=y
CONFIG_SPI_NAND_ZBIT=y
@ -139,8 +138,8 @@ CONFIG_DM_VIDEO=y
CONFIG_DISPLAY=y
CONFIG_ARTINCHIP_GRAPHICS=y
CONFIG_VIDEO_ARTINCHIP=y
CONFIG_AIC_DISP_MIPI_DSI=y
CONFIG_AIC_PANEL_DSI_SIMPLE=y
CONFIG_AIC_DISP_LVDS=y
CONFIG_AIC_PANEL_LVDS_GENERAL=y
# CONFIG_WATCHDOG is not set
# CONFIG_WATCHDOG_AUTOSTART is not set
CONFIG_WDT=y

View File

@ -139,16 +139,12 @@ static struct aic_pll clk_plls[] = {
0, AIC_PLL_INT),
CLK_PLL(CLK_PLL_INT1, PLL_INT1_GEN_REG, PLL_INT1_CFG_REG,
0, AIC_PLL_INT),
// CLK_PLL(CLK_PLL_FRA0, PLL_FRA0_GEN_REG, PLL_FRA0_CFG_REG,
// PLL_FRA0_SDM_REG, AIC_PLL_SDM),
CLK_PLL(CLK_PLL_FRA0, PLL_FRA0_GEN_REG, PLL_FRA0_CFG_REG,
PLL_FRA0_SDM_REG, AIC_PLL_FRA),
PLL_FRA0_SDM_REG, AIC_PLL_SDM),
CLK_PLL(CLK_PLL_FRA1, PLL_FRA1_GEN_REG, PLL_FRA1_CFG_REG,
PLL_FRA1_SDM_REG, AIC_PLL_FRA),
// CLK_PLL_VIDEO(CLK_PLL_FRA2, PLL_FRA2_GEN_REG, PLL_FRA2_CFG_REG,
// PLL_FRA2_SDM_REG, AIC_PLL_SDM, 0, 1200000000),
CLK_PLL_VIDEO(CLK_PLL_FRA2, PLL_FRA2_GEN_REG, PLL_FRA2_CFG_REG,
PLL_FRA2_SDM_REG, AIC_PLL_FRA, 0, 1200000000),
PLL_FRA2_SDM_REG, AIC_PLL_SDM, 0, 1200000000),
};

View File

@ -192,26 +192,6 @@ static const struct spinand_info gigadevice_spinand_table[] = {
SPINAND_HAS_QE_BIT,
SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
gd5fxgq4uexxg_ecc_get_status)),
SPINAND_INFO("GD5F2GM7UEY1G",
SPINAND_ID(0x92),
NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
NAND_ECCREQ(8, 512),
SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
&write_cache_variants,
&update_cache_variants),
SPINAND_HAS_QE_BIT,
SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
gd5fxgq4uexxg_ecc_get_status)),
SPINAND_INFO("GD5F2GQ5UEY1G",
SPINAND_ID(0x52),
NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
NAND_ECCREQ(8, 512),
SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
&write_cache_variants,
&update_cache_variants),
SPINAND_HAS_QE_BIT,
SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
gd5fxgq4uexxg_ecc_get_status)),
};
static int gigadevice_spinand_detect(struct spinand_device *spinand)

View File

@ -281,7 +281,7 @@ static void aicfb_video_init(struct udevice *dev)
uc_priv->fb = (void *)priv->fb_start;
uc_priv->fb_size = dt->stride * dt->height;
memset(uc_priv->fb, 0, uc_priv->fb_size);
memset(uc_priv->fb, 0xFF, uc_priv->fb_size);
flush_dcache_range(priv->fb_start, priv->fb_start + uc_priv->fb_size);
#endif
}

View File

@ -62,15 +62,6 @@ static struct aic_panel_funcs panel_funcs = {
/* Init the videomode parameter, dts will override the initial value. */
static struct fb_videomode panel_vm = {
.pixclock = 150 * 1000 * 1000,
.xres = 1920,
.right_margin = 188,
.left_margin = 148,
.hsync_len = 44,
.yres = 1080,
.lower_margin = 4,
.upper_margin = 36,
.vsync_len = 5,
.flag = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE
};

View File

@ -1 +0,0 @@
/opt/linuxOS_D21X/target/d211/demo128_nand/image_cfg.json

View File

@ -7,7 +7,7 @@ BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
BR2_TARGET_GENERIC_HOSTNAME="ArtInChip-Device"
# BR2_TARGET_ENABLE_ROOT_LOGIN is not set
BR2_TARGET_TZ_INFO=y
BR2_TARGET_LOCALTIME="UTC"
BR2_TARGET_LOCALTIME="Asia/Shanghai"
BR2_ROOTFS_POST_IMAGE_SCRIPT="target/d211/common/post-image.sh"
# BR2_TARGET_GENERIC_GETTY is not set
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
@ -17,15 +17,6 @@ BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
BR2_TARGET_ROOTFS_UBI=y
BR2_TARGET_ROOTFS_UBIFS_MAX_SIZE=0x4000000
BR2_TARGET_ROOTFS_UBIFS_OPTS="-F"
BR2_TARGET_USERFS1=y
BR2_TARGET_USERFS1_NAME="system"
BR2_TARGET_USERFS1_TYPE_UBIFS=y
BR2_TARGET_USERFS1_OVERLAY="target/$(LUBAN_CHIP_NAME)/$(LUBAN_BOARD_NAME)/system"
BR2_TARGET_USERFS2=y
BR2_TARGET_USERFS2_NAME="data"
BR2_TARGET_USERFS2_TYPE_UBIFS=y
BR2_TARGET_USERFS2_OVERLAY="target/$(LUBAN_CHIP_NAME)/$(LUBAN_BOARD_NAME)/data"
BR2_GENERATE_BURNER_IMAGE=y
BR2_GENERATE_IMAGE_AUTO_CALCULATE_SIZE=y
BR2_PACKAGE_OPENSBI_FW_TEXT_BASE=0x47FE0000
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="d211_demo128_nand"
@ -44,10 +35,9 @@ BR2_LINUX_KERNEL_DEFCONFIG="d211_demo128_nand"
BR2_LINUX_KERNEL_IMAGEGZ=y
BR2_PACKAGE_LINUX_TOOLS_SELFTESTS=y
# BR2_PACKAGE_AIC_AUTHORIZATION is not set
BR2_PACKAGE_AIC_MPP_AAC_DECODER=y
BR2_PACKAGE_LVGL_UI=y
# BR2_PACKAGE_TEST_DVP is not set
# BR2_PACKAGE_TEST_TOUCHSCREEN is not set
# BR2_PACKAGE_BUSYBOX_USE_PREBUILT is not set
BR2_PACKAGE_BUSYBOX_CONFIG="package/third-party/busybox/configs/d211_demo128_nand_defconfig"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_UTIL_LINUX_BINARIES=y
@ -60,31 +50,12 @@ BR2_PACKAGE_ALSA_UTILS_ACONNECT=y
BR2_PACKAGE_FBDUMP=y
BR2_PACKAGE_CAN_UTILS=y
BR2_PACKAGE_ETHTOOL=y
BR2_PACKAGE_IPERF3=y
BR2_PACKAGE_LIBMNL=y
BR2_PACKAGE_LIBNL_TOOLS=y
BR2_PACKAGE_NETPERF=y
BR2_PACKAGE_WPA_SUPPLICANT=y
# BR2_PACKAGE_WPA_SUPPLICANT_USE_PREBUILT is not set
BR2_PACKAGE_WPA_SUPPLICANT_WEXT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y
BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT=y
BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG=y
BR2_PACKAGE_WPA_SUPPLICANT_WPS=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA3=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_PACKAGE_WIRELESS_TOOLS=y
# BR2_PACKAGE_WIRELESS_TOOLS_USE_PREBUILT is not set
BR2_PACKAGE_WIRELESS_TOOLS_LIB=y
BR2_PACKAGE_HOSTAPD=y
# BR2_PACKAGE_HOSTAPD_USE_PREBUILT is not set
BR2_PACKAGE_HOSTAPD_DRIVER_WIRED=y
BR2_PACKAGE_HOSTAPD_EAP=y
BR2_PACKAGE_HOSTAPD_WPS=y
BR2_PACKAGE_HOSTAPD_WPA3=y
BR2_PACKAGE_AIC8800_FW=y
BR2_PACKAGE_LIBKCAPI_ENCAPP=y
BR2_PACKAGE_LIBKCAPI_HASHER=y
BR2_PACKAGE_LIBKCAPI_RNGAPP=y
@ -102,7 +73,6 @@ BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y
BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL=y
BR2_PACKAGE_BLUEZ_TOOLS=y
BR2_PACKAGE_ANDROID_TOOLS=y
BR2_PACKAGE_SWUPDATE=y
BR2_PACKAGE_RTL8733BS_BT_FW=y
# BR2_PACKAGE_HOST_UBOOT_TOOLS is not set
BR2_PACKAGE_HOST_E2FSPROGS=y

Binary file not shown.

View File

@ -1481,8 +1481,8 @@
<AIC_PINMUX('C', 2, 2)>,
<AIC_PINMUX('C', 3, 2)>,
<AIC_PINMUX('C', 4, 2)>,
<AIC_PINMUX('C', 5, 2)>;
//<AIC_PINMUX('C', 6, 2)>;
<AIC_PINMUX('C', 5, 2)>,
<AIC_PINMUX('C', 6, 2)>;
bias-pull-up;
drive-strength = <3>;
};

View File

@ -34,7 +34,7 @@ kernel_comp_size=0x1000000
# set_commonargs=setenv bootargs earlycon=${earlycon} earlyprintk rdinit=${init} initramfs_dbg=${ramfs_dbg}
set_commonargs_recovery=setenv bootargs earlycon=${earlycon} earlyprintk rdinit=/linuxrc
# Case 2: Mount rootfs directly
set_commonargs=setenv bootargs earlycon=${earlycon} earlyprintk init=/linuxrc firmware_class.path=/etc/firmware
set_commonargs=setenv bootargs quiet earlycon=${earlycon} earlyprintk init=/linuxrc firmware_class.path=/etc/firmware
#===============================================================================
@ -63,7 +63,7 @@ set_nand_mtdargs=env delete mtdparts
set_nand_bootargs=run set_nand_mtdargs; \
run set_commonargs; \
setenv bootargs ${bootargs} mtdparts=${MTD} ubi.mtd=${ubi_rootfs_mtd} ubi.mtd=11 root=${nand_root} rootfstype=${nand_rootfstype}
setenv bootargs ${bootargs} mtdparts=${MTD} ubi.mtd=${ubi_rootfs_mtd} root=${nand_root} rootfstype=${nand_rootfstype}
set_nand_bootargs_recovery=run set_nand_mtdargs; \
run set_commonargs_recovery; \

View File

@ -167,19 +167,78 @@
};
#endif
panel_dsi {
compatible = "artinchip,aic-dsi-panel-simple";
u-boot,dm-pre-reloc;
backlight = <&backlight>;
status = "okay";
panel_rgb {
compatible = "artinchip,aic-general-rgb-panel";
status = "disabled";
//reset-gpios = <&gpio_e 1 GPIO_ACTIVE_HIGH>;
enable-gpios = <&gpio_e 19 GPIO_ACTIVE_HIGH>;
rgb-mode = <PRGB>;
interface-format = <PRGB_16BIT_LD>;
clock-phase = <DEGREE_0>;
data-order = <RGB>;
disp-dither = <DITHER_RGB565>;
u-boot,dm-pre-reloc;
port {
u-boot,dm-pre-reloc;
panel_dsi_in: endpoint {
panel_rgb_in: endpoint {
remote-endpoint = <&rgb0_out>;
u-boot,dm-pre-reloc;
};
};
display-timings {
native-mode = <&timing0>;
u-boot,dm-pre-reloc;
timing0: 1024x600 {
clock-frequency = <52000000>;
hactive = <1024>;
vactive = <600>;
hback-porch = <160>;
hfront-porch = <160>;
hsync-len = <20>;
vback-porch = <12>;
vfront-porch = <20>;
vsync-len = <3>;
de-active = <1>;
pixelclk-active = <1>;
u-boot,dm-pre-reloc;
};
};
};
panel_lvds {
compatible = "artinchip,aic-general-lvds-panel";
data-mapping = "vesa-24";
data-channel = "single-link1";
status = "okay";
u-boot,dm-pre-reloc;
enable-gpios = <&gpio_c 7 GPIO_ACTIVE_HIGH>;
sleep-gpios = <&gpio_a 3 GPIO_ACTIVE_HIGH>;
port {
panel_lvds_in: endpoint {
remote-endpoint = <&lvds0_out>;
u-boot,dm-pre-reloc;
};
};
display-timings {
native-mode = <&timing1>;
u-boot,dm-pre-reloc;
timing1: 1024x600 {
clock-frequency = <52000000>;
hactive = <1024>;
vactive = <600>;
hback-porch = <160>;
hfront-porch = <160>;
hsync-len = <20>;
vback-porch = <20>;
vfront-porch = <12>;
vsync-len = <3>;
de-active = <1>;
pixelclk-active = <1>;
u-boot,dm-pre-reloc;
remote-endpoint = <&dsi0_out>;
};
};
};
@ -187,29 +246,27 @@
backlight: backlight {
compatible = "pwm-backlight";
/* pwm node name; pwm device No.; period_ns; pwm_polarity */
pwms = <&pwm 0 1000000 0>;
pwms = <&pwm 3 1000000 0>;
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
default-brightness-level = <6>;
u-boot,dm-pre-reloc;
status = "okay";
status = "disabled";
};
rfkill_bt {
compatible = "rfkill-gpio";
rfkill-name = "bluetooth";
rfkill-type = <2>;
reset-gpios = <&gpio_c 6 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio_d 3 GPIO_ACTIVE_HIGH>;
status = "okay";
};
/*
rfkill_wlan {
compatible = "rfkill-gpio";
rfkill-name = "wlan";
rfkill-type = <1>;
//reset-gpios = <&gpio_c 6 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio_d 1 GPIO_ACTIVE_HIGH>;
status = "okay";
};
*/
keys: gpio-keys {
compatible = "gpio-keys";
@ -313,9 +370,8 @@
&uart2 {
pinctrl-names = "default";
//pinctrl-0 = <&uart2_pins_a>;
pinctrl-0 = <&uart2_pins_a>, <&uart2_rts_pins_a>, <&uart2_cts_pins_a>;
status = "okay";
pinctrl-0 = <&uart2_pins_a>;
status = "disabled";
};
&uart3 {
@ -353,16 +409,11 @@
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_b>;
status = "okay";
lt8911exb@29 {
status = "okay";
compatible = "lontium,lt8911exb";
reg = <0x29>;
reset-gpios = <&gpio_e 6 GPIO_ACTIVE_HIGH>;
power-gpios = <&gpio_e 2 GPIO_ACTIVE_HIGH>;
status = "disabled";
rtc@32 {
compatible = "epson,rx8010";
reg = <0x32>;
};
};
&i2c1 {
@ -380,10 +431,10 @@
&i2c3 {
pinctrl-names = "default";
pinctrl-0 = <&i2c3_pins_a>;
status = "disabled";
status = "okay";
gt9xx@5d {
status = "disabled";
status = "okay";
compatible = "goodix,gt9xx";
reg = <0x5d>;
reset-gpios = <&gpio_a 8 GPIO_ACTIVE_LOW>;
@ -450,14 +501,10 @@
&sdmc1 {
pinctrl-names = "default";
pinctrl-0 = <&sdmc1_pins>;
max-frequency= <40000000>;
//power-gpios = <&gpio_c 6 GPIO_ACTIVE_HIGH>;
bus-width = <4>;
no-mmc;
no-sd;
non-removable;
cap-sdio-irq;
cap-sd-highspeed;
status = "okay";
u-boot,dm-pre-reloc;
};
&sdmc2 {
@ -468,7 +515,7 @@
no-sd;
non-removable;
cap-sdio-irq;
status = "disabled";
status = "okay";
};
/* case 1: USB0 = OTG Enable */
@ -563,9 +610,9 @@
};
};
pwm0_pins_d: pwm0-3 {
pwm3_pins_d: pwm3-3 {
pins {
pinmux = <AIC_PINMUX('E', 1, 8)>;
pinmux = <AIC_PINMUX('E', 19, 5)>;
bias-disable;
drive-strength = <3>;
};
@ -596,7 +643,7 @@
gpio_f: bank-5 {
u-boot,dm-pre-reloc;
};
dsi_pins: dsi-0 {
lvds1_pins: lvds1-0 {
u-boot,dm-pre-reloc;
pins {
u-boot,dm-pre-reloc;
@ -617,12 +664,6 @@
u-boot,dm-pre-reloc;
};
};
pwm0_pins_d: pwm0-3 {
u-boot,dm-pre-reloc;
pins {
u-boot,dm-pre-reloc;
};
};
sdmc1_pins: sdmc1-0 {
u-boot,dm-pre-reloc;
pins {
@ -642,7 +683,7 @@
aic,use_extclk;
status = "disabled";
status = "okay";
gmac0_mdio: mdio {
compatible = "aicmac-mdio";
@ -660,8 +701,8 @@
&codec {
pinctrl-names = "default";
pinctrl-0 = <&spk_pins_c>, <&dmic_pins_a>;
pa-gpios = <&gpio_a 7 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&spk_pins_d>, <&dmic_pins_a>;
pa-gpios = <&gpio_a 7 GPIO_ACTIVE_LOW>;
status = "okay";
};
@ -677,7 +718,7 @@
&fb0 {
artinchip,uboot-logo-on=<1>;
height-virtual = <2160>;
height-virtual = <1200>;
u-boot,dm-pre-reloc;
port {
u-boot,dm-pre-reloc;
@ -698,7 +739,6 @@
port@0 {
reg = <0>;
u-boot,dm-pre-reloc;
de0_in: endpoint {
remote-endpoint = <&fb0_out>;
u-boot,dm-pre-reloc;
@ -707,28 +747,25 @@
port@1 {
reg = <1>;
u-boot,dm-pre-reloc;
de0_out: endpoint {
remote-endpoint = <&dsi0_in>;
remote-endpoint = <&lvds0_in>;
u-boot,dm-pre-reloc;
};
};
};
&dsi0 {
pinctrl-names = "default";
pinctrl-0 = <&dsi_pins>;
status = "okay";
&rgb0 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&lcd_rgb565_ld_pins>;
pinctrl-1 = <&lcd_rgb565_ld_sleep_pins>;
u-boot,dm-pre-reloc;
data-lanes = <3 2 1 0>;
lane-polarities = <0 0 0 0>;
status = "disabled";
port@0 {
reg = <0>;
u-boot,dm-pre-reloc;
dsi0_in: endpoint {
remote-endpoint = <&de0_out>;
rgb0_in: endpoint {
remote-endpoint = <&rgb0_in>;
u-boot,dm-pre-reloc;
};
};
@ -736,8 +773,31 @@
port@1 {
reg = <1>;
u-boot,dm-pre-reloc;
dsi0_out: endpoint {
remote-endpoint = <&panel_dsi_in>;
rgb0_out: endpoint {
remote-endpoint = <&panel_rgb_in>;
u-boot,dm-pre-reloc;
};
};
};
&lvds0 {
pinctrl-names = "default";
pinctrl-0 = <&lvds1_pins>;
status = "okay";
u-boot,dm-pre-reloc;
port@0 {
reg = <0>;
lvds0_in: endpoint {
remote-endpoint = <&de0_out>;
u-boot,dm-pre-reloc;
};
};
port@1 {
reg = <1>;
lvds0_out: endpoint {
remote-endpoint = <&panel_lvds_in>;
u-boot,dm-pre-reloc;
};
};
@ -817,10 +877,10 @@
};
&pwm {
status = "okay";
status = "disabled";
u-boot,dm-pre-reloc;
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pins_d>;
pinctrl-0 = <&pwm3_pins_d>;
/* mode: up-count, down-count, up-down-count
action: none, low, high, inverse */
pwm0 {
@ -831,7 +891,7 @@
/* CBD, CBU, CAD, CAU, PRD, ZRO */
aic,action0 = "none", "none", "none", "low", "none", "high";
aic,action1 = "none", "none", "none", "high", "none", "low";
status = "okay";
status = "disabled";
u-boot,dm-pre-reloc;
};

View File

@ -1,6 +1,6 @@
{
"spi-nand": { // Device, The name should be the same with string in image:info:media:type
"size": "256m", // Size of SPI NAND
"size": "128m", // Size of SPI NAND
"partitions": {
"spl": { "size": "1m" },
"uboot": { "size": "1m" },
@ -13,7 +13,7 @@
"kernel": { "size": "12m" },
"recovery": { "size": "16m" },
"ubiroot": {
"size": "40m",
"size": "64m",
"ubi": { // Volume in UBI device
"rootfs": { "size": "-" },
},
@ -21,8 +21,7 @@
"ubisystem": {
"size": "-",
"ubi": { // Volume in UBI device
"system": { "size": "8m" },
"data": { "size": "-" },
"user": { "size": "-" },
},
},
}
@ -104,15 +103,10 @@
"attr": ["ubi", "required"],
"part": ["ubiroot:rootfs"]
},
"system": {
"file": "system*.ubifs",
"app": {
"file": "user*.ubifs",
"attr": ["ubi", "optional"],
"part": ["ubisystem:system"]
},
"data": {
"file": "data*.ubifs",
"attr": ["ubi", "optional"],
"part": ["ubisystem:data"]
"part": ["ubisystem:user"]
},
},
},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1 +0,0 @@
placeholder

View File

@ -1,11 +0,0 @@
# <file system> <mount pt> <type> <options> <dump> <pass>
/dev/root / ext2 rw,noauto 0 1
proc /proc proc defaults 0 0
devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0
tmpfs /dev/shm tmpfs mode=0777 0 0
tmpfs /tmp tmpfs mode=1777 0 0
tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0
sysfs /sys sysfs defaults 0 0
ubi1:system /system ubifs ro,defaults 0 0
ubi1:data /data ubifs defaults 0 0

View File

@ -1,55 +0,0 @@
#!/bin/sh
#
# Auto-create and mount UBI volumes for system and data partitions
#
start() {
echo "Initializing UBI volumes..."
# Check if ubi1 device exists
if [ ! -e /dev/ubi1 ]; then
echo "ubi1 device not found, skipping..."
return 0
fi
# Create mount points
mkdir -p /system /data
# Mount system (read-only)
if ! mountpoint -q /system; then
echo "Mounting /system..."
mount -t ubifs -o ro ubi1:system /system 2>/dev/null || echo "Failed to mount /system"
fi
# Mount data (read-write)
if ! mountpoint -q /data; then
echo "Mounting /data..."
mount -t ubifs ubi1:data /data 2>/dev/null || echo "Failed to mount /data"
fi
echo "UBI volumes initialized"
}
stop() {
echo "Unmounting UBI volumes..."
umount /data 2>/dev/null
umount /system 2>/dev/null
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

View File

@ -1,114 +0,0 @@
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HCI_DEV=hci0
UART_DEV=/dev/ttyS2
HCIATTACH_BIN=/usr/bin/hciattach
HCIATTACH_ARGS="-s 1500000 ${UART_DEV} any 1500000 flow nosleep"
HCI_TOOL=/usr/bin/bt-hci-tool
BTGATT_BIN=/usr/bin/btgatt-server
BTGATT_ARGS="-m 256 -i ${HCI_DEV} -s low -t public"
BLUETOOTHD_BIN=/usr/libexec/bluetooth/bluetoothd
BT_LOCAL_NAME="AIC-BT"
HCI_WAIT_TIMEOUT=10
ATTACH_PIDFILE=/var/run/hciattach.pid
BTGATT_PIDFILE=/var/run/btgatt-server.pid
BLUETOOTHD_PIDFILE=/var/run/bluetoothd.pid
wait_for_hci()
{
"${HCI_TOOL}" wait "${HCI_DEV}" "${HCI_WAIT_TIMEOUT}"
}
bring_hci_up()
{
"${HCI_TOOL}" up "${HCI_DEV}"
}
start_bt()
{
echo "[BT] Init AIC8800..."
insmod /lib/modules/5.10.44/kernel/drivers/net/wireless/aic8800/aic8800_btlpm/aic8800_btlpm.ko 2>/dev/null
sleep 1
killall hciattach 2>/dev/null
killall bluetoothd 2>/dev/null
killall btgatt-server 2>/dev/null
rm -f "${ATTACH_PIDFILE}" "${BLUETOOTHD_PIDFILE}" "${BTGATT_PIDFILE}"
"${HCIATTACH_BIN}" ${HCIATTACH_ARGS} &
echo $! > "${ATTACH_PIDFILE}"
if ! wait_for_hci; then
echo "[BT] ERROR: ${HCI_DEV} not ready"
return 1
fi
if ! bring_hci_up; then
echo "[BT] ERROR: failed to bring ${HCI_DEV} up"
return 1
fi
# 先启动 LE 广播
hciconfig ${HCI_DEV} leadv 0
sleep 1
# <20><><EFBFBD>动 bluetoothd
"${BLUETOOTHD_BIN}" &
echo $! > "${BLUETOOTHD_PIDFILE}"
echo "[BT] Waiting 10 seconds before init..."
sleep 10
# 启动 btgatt-server
"${BTGATT_BIN}" ${BTGATT_ARGS} >/dev/null 2>&1 &
echo $! > "${BTGATT_PIDFILE}"
echo "[BT] Bluetooth ready with GATT server"
}
stop_bt()
{
hciconfig ${HCI_DEV} noleadv 2>/dev/null
if [ -f "${BTGATT_PIDFILE}" ]; then
kill "$(cat "${BTGATT_PIDFILE}")" 2>/dev/null
rm -f "${BTGATT_PIDFILE}"
else
killall btgatt-server 2>/dev/null
fi
if [ -f "${BLUETOOTHD_PIDFILE}" ]; then
kill "$(cat "${BLUETOOTHD_PIDFILE}")" 2>/dev/null
rm -f "${BLUETOOTHD_PIDFILE}"
else
killall bluetoothd 2>/dev/null
fi
if [ -f "${ATTACH_PIDFILE}" ]; then
kill "$(cat "${ATTACH_PIDFILE}")" 2>/dev/null
rm -f "${ATTACH_PIDFILE}"
else
killall hciattach 2>/dev/null
fi
}
case "$1" in
start)
start_bt >/dev/null 2>&1 &
;;
stop)
stop_bt
;;
restart)
stop_bt
sleep 1
start_bt
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $?

View File

@ -1,42 +0,0 @@
# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
#
# Note: BusyBox init doesn't support runlevels. The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use
# sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id == tty to run on, or empty for /dev/console
# runlevels == ignored
# action == one of sysinit, respawn, askfirst, wait, and once
# process == program to run
# Startup the system
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,rw /
::sysinit:/bin/mkdir -p /dev/pts /dev/shm
::sysinit:/bin/mount -a
::sysinit:/sbin/swapon -a
null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/etc/init.d/rcS
# e_player monitor and auto-restart
::respawn:/usr/bin/e_player_wrapper
::sysinit:/bin/cat /etc/issue # Put a getty on the serial port
console::respawn:-/bin/sh # GENERIC_SERIAL
# Stuff to do for the 3-finger salute
#::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r

View File

@ -1 +0,0 @@
demo128_nand-ota-marker=2026-04-27_v1001

View File

@ -3,12 +3,32 @@
case "$1" in
start)
echo "swupdate_main: /data should already be mounted by S01ubivol"
mountpoint -q /data && echo "/data is ready" || \
echo "Warning: /data is NOT mounted"
echo -n "Starting swupdate... "
# obtain ubisystem mtd number
param=$(cat /proc/mtd | grep "ubisystem")
mtd_param=$(echo "$param" | awk -F ':' '{print $1}')
mtd_num=$(echo "$mtd_param" | awk -F 'mtd' '{print $2}')
echo "ubisystem mtd number is $mtd_num"
ubiattach /dev/ubi_ctrl -m $mtd_num
# obtain the ota part device node
param=$(grep -H -r "ota" /sys/class/ubi/* | sed 1q)
ubi_param=$(echo "$param" | awk -F '/name:ota' '{print $1}')
ubi_param=$(echo "$ubi_param" | awk -F '/sys/class/ubi/' '{print $2}')
ubi_param=$(echo "$ubi_param" | awk -F '/' '{print $2}')
echo "ota part device node is /dev/$ubi_param"
if [ -c "/dev/$ubi_param" ]; then
mkdir -p /mnt/ota
mount -t ubifs /dev/$ubi_param /mnt/ota
fi
;;
stop)
echo "swupdate_main: nothing to do (/data is managed by S01ubivol)"
echo -n "Stopping swupdate... "
umount /mnt/ota
;;
esac

View File

@ -1,106 +0,0 @@
#!/bin/sh
# e_player 崩溃监控和恢复脚本
CRASH_COUNT_FILE="/data/.e_player_crash_count"
STABLE_COUNT_FILE="/data/.e_player_stable_count"
MAX_CRASH=5
CHECK_INTERVAL=1
STABLE_CHECKS=120 # 连续检测120s 进程存在才认为稳定
if [ ! -f "$CRASH_COUNT_FILE" ]; then
echo 0 > "$CRASH_COUNT_FILE"
fi
if [ ! -f "$STABLE_COUNT_FILE" ]; then
echo 0 > "$STABLE_COUNT_FILE"
fi
echo "$(date): e_player_wrapper starting, waiting for e_player..." >> /data/crash.log
WAIT_COUNT=0
while [ $WAIT_COUNT -lt 20 ]; do
if ps | grep -v grep | grep -v e_player_wrapper | grep e_player > /dev/null; then
echo "$(date): e_player detected after ${WAIT_COUNT} checks, starting monitoring..." >> /data/crash.log
break
fi
sleep 3
WAIT_COUNT=$((WAIT_COUNT + 1))
done
if ! ps | grep -v grep | grep -v e_player_wrapper | grep e_player > /dev/null; then
echo "$(date): WARNING - e_player not found after 60s, will monitor anyway..." >> /data/crash.log
fi
echo "$(date): Starting main monitoring loop..." >> /data/crash.log
HEARTBEAT=0
while true; do
HEARTBEAT=$((HEARTBEAT + 1))
if [ $HEARTBEAT -ge 120 ]; then
echo "$(date): [Heartbeat] Monitoring active, stable_count=$(cat $STABLE_COUNT_FILE)" >> /data/crash.log
HEARTBEAT=0
fi
if ! ps | grep -v grep | grep -v e_player_wrapper | grep e_player > /dev/null; then
# 进程不存在,崩溃了
echo 0 > "$STABLE_COUNT_FILE" # 重置稳定计数
COUNT=$(cat "$CRASH_COUNT_FILE")
COUNT=$((COUNT + 1))
echo $COUNT > "$CRASH_COUNT_FILE"
echo "$(date): e_player crashed, count: $COUNT" >> /data/crash.log
if [ $COUNT -ge $MAX_CRASH ]; then
echo "$(date): Crash count exceeded $MAX_CRASH, restoring from factory..." >> /data/crash.log
# 从factory恢复bin文件
if [ -f /system/factory/bin/e_player ]; then
cp /system/factory/bin/e_player /data/bin/e_player
chmod +x /data/bin/e_player
echo "$(date): Restored e_player from factory" >> /data/crash.log
fi
if [ -f /system/factory/bin/lbh_client ]; then
cp /system/factory/bin/lbh_client /data/bin/lbh_client
chmod +x /data/bin/lbh_client
echo "$(date): Restored lbh_client from factory" >> /data/crash.log
fi
# 恢复配置文件
if [ -f /system/factory/system_properties.cfg ]; then
cp /system/factory/system_properties.cfg /data/system_properties.cfg
echo "$(date): Restored system_properties.cfg from factory" >> /data/crash.log
fi
# 重置崩溃计数,重新开始
echo 0 > "$CRASH_COUNT_FILE"
echo "$(date): Reset crash count, retrying..." >> /data/crash.log
fi
echo "$(date): Restarting e_player..." >> /data/crash.log
killall -9 e_player 2>/dev/null
sleep 1
export LD_LIBRARY_PATH=/data/bin/libs:/vendor/qua/lib:/lib:/usr/lib:$LD_LIBRARY_PATH
cd /data
/data/bin/e_player &
sleep 3
else
# 进程存在,累加稳定计数
STABLE=$(cat "$STABLE_COUNT_FILE")
STABLE=$((STABLE + 1))
echo $STABLE > "$STABLE_COUNT_FILE"
# 如果稳定运行120秒重置崩溃计数
if [ $STABLE -ge $STABLE_CHECKS ]; then
COUNT=$(cat "$CRASH_COUNT_FILE")
if [ $COUNT -gt 0 ]; then
echo "$(date): e_player stable, resetting crash count" >> /data/crash.log
echo 0 > "$CRASH_COUNT_FILE"
fi
echo 0 > "$STABLE_COUNT_FILE" # 重置稳定计数,下次再累计
fi
fi
sleep $CHECK_INTERVAL
done

View File

@ -1,6 +1,6 @@
software =
{
version = "1.0.0.1";
version = "1.0.0.0";
description = "Firmware update for Luban Project";
stable = {
@ -66,16 +66,6 @@ software =
* Step1: Download and upgrade partitons
* Step2: Setup ENV variables, and mark OTA "finish"
* Step3: Reboot to main system
*
* data UBIFS (ubi1:data, ubisystem):
* Optional factory/user data image built from
* target/.../data/ overlay (see image_cfg.json "data").
* Listed last so earlier images are processed first.
*
* IMPORTANT: If the .swu file itself is stored on /data (ubi1:data),
* updating this volume can corrupt the stream while it is being read.
* Prefer placing the package in RAM (/tmp), on the network, or on
* external media for OTA that includes "data".
*/
upgrade_kernel = {
images: (
@ -96,12 +86,6 @@ software =
volume = "rootfs";
installed-directly = true;
sha256 = "@rootfs";
},
{
filename = "data";
volume = "data";
installed-directly = true;
sha256 = "@data";
}
);

View File

@ -4,7 +4,5 @@ ${BINARIES_DIR}/recovery.itb:recovery
${BINARIES_DIR}/kernel.itb:kernel
${BINARIES_DIR}/logo.itb:logo
${BINARIES_DIR}/rootfs_page_2k_block_128k.ubifs:rootfs
${BINARIES_DIR}/data_page_2k_block_128k.ubifs:data
#${BINARIES_DIR}/rootfs_page_4k_block_256k.ubifs:rootfs
#${BINARIES_DIR}/data_page_4k_block_256k.ubifs:data
)

View File

@ -1,152 +1,34 @@
#!/bin/sh
# Run the swupdate daemon (recovery side, second stage of OTA)
attach_ubi_by_name()
{
want="$1"
mtdline=$(grep "\"$want\"" /proc/mtd)
[ -z "$mtdline" ] && {
echo "S91: cannot find mtd partition '$want'"
return 1
}
mtd_num=$(echo "$mtdline" | sed -e 's/^mtd//' -e 's/:.*//')
echo "S91: '$want' is on mtd${mtd_num}"
# If some ubi device is already on this mtd, do nothing.
for u in /sys/class/ubi/ubi[0-9]*; do
[ -e "$u/mtd_num" ] || continue
cur=$(cat "$u/mtd_num" 2>/dev/null)
[ "x$cur" = "x$mtd_num" ] && {
echo "S91: $u already attached to mtd${mtd_num}"
return 0
}
done
ubiattach /dev/ubi_ctrl -m "$mtd_num" 2>&1
}
# If the .swu path in swu_param is under /data, swupdate cannot rewrite the
# ubi "data" volume while UBIFS holds it mounted (kernel: ubi_open_volume -EBUSY).
# Copy the archive to a dedicated tmpfs and umount /data before swupdate_cmd runs.
# Note: the .swu must fit in RAM (tmpfs quota below).
#
# Initramfs root is often ramfs/tmpfs where "remount,size=" does not give swupdate's
# statvfs() enough reported space; it then fails extracting kernel with ~8 MiB free.
# A fresh tmpfs on /mnt/swutmp with an explicit size= fixes that; TMPDIR must point
# there before swupdate runs (see start).
relocate_swu_off_data()
{
swu_param=$(fw_printenv -n swu_param 2>/dev/null) || return 0
[ -z "$swu_param" ] && return 0
set -- $swu_param
swu_in=""
while [ $# -gt 0 ]; do
if [ "$1" = "-i" ] && [ -n "$2" ]; then
swu_in="$2"
break
fi
shift
done
[ -z "$swu_in" ] && return 0
[ ! -f "$swu_in" ] && return 0
case "$swu_in" in
/data/*) ;;
*) return 0 ;;
esac
SWU_STAGED=/mnt/swutmp/ota.swu
mkdir -p /mnt/swutmp
umount /mnt/swutmp 2>/dev/null
echo "S91: mount dedicated tmpfs on /mnt/swutmp for .swu + swupdate extract"
if ! mount -t tmpfs -o size=110m,nr_inodes=16k tmpfs /mnt/swutmp; then
echo "S91: ERROR: tmpfs mount /mnt/swutmp failed"
return 1
fi
echo "S91: OTA package on $swu_in — copy to $SWU_STAGED and umount /data (unlock ubi data volume)"
if ! cp "$swu_in" "$SWU_STAGED"; then
echo "S91: ERROR: copy to $SWU_STAGED failed (increase tmpfs size= ?)"
umount /mnt/swutmp 2>/dev/null
return 1
fi
sync
if ! umount /data; then
echo "S91: ERROR: umount /data failed"
umount /mnt/swutmp 2>/dev/null
return 1
fi
set -- $swu_param
new_param=""
first=1
while [ $# -gt 0 ]; do
if [ "$1" = "-i" ] && [ -n "$2" ]; then
if [ $first -eq 1 ]; then
new_param="-i $SWU_STAGED"
first=0
else
new_param="$new_param -i $SWU_STAGED"
fi
shift 2
continue
fi
if [ $first -eq 1 ]; then
new_param="$1"
first=0
else
new_param="$new_param $1"
fi
shift
done
# Values starting with "-i" are parsed as fw_setenv options; use import file.
printf 'swu_param=%s\n' "$new_param" > /tmp/swu_param.relocsave
fw_setenv -s /tmp/swu_param.relocsave
sync
echo "S91: swu_param is now $(fw_printenv -n swu_param 2>/dev/null)"
touch /mnt/swutmp/.ota_use_tmpdir
return 0
}
# Run the swupdate daemon
case "$1" in
start)
echo "S91: starting OTA second stage"
echo -n "Starting swupdate... "
# obtain ubisystem mtd number
param=$(cat /proc/mtd | grep "ubisystem")
mtd_param=$(echo "$param" | awk -F ':' '{print $1}')
mtd_num=$(echo "$mtd_param" | awk -F 'mtd' '{print $2}')
# Attach both UBI devices so swupdate can write to:
# /dev/mtdX (logo, kernel, recovery)
# ubi0:rootfs (ubiroot)
# ubi1:data (ubisystem) -- holds the .swu package
attach_ubi_by_name "ubiroot"
attach_ubi_by_name "ubisystem"
echo "ubisystem mtd number is $mtd_num"
ubiattach dev/ubi_ctrl -m $mtd_num
# Mount ubi*:data so we can read the .swu placed there by main system.
mkdir -p /data
if ! mountpoint -q /data; then
# Try ubi0 then ubi1 — depending on attach order data may be on either.
for d in /dev/ubi1 /dev/ubi0; do
[ -e "$d" ] || continue
idx=$(echo "$d" | sed 's|.*ubi||')
if mount -t ubifs "ubi${idx}:data" /data 2>/dev/null; then
echo "S91: mounted ubi${idx}:data on /data"
break
fi
done
mountpoint -q /data || echo "S91: WARNING /data not mounted"
# obtain the ota part device node
param=$(grep -H -r "ota" /sys/class/ubi/* | sed 1q)
ubi_param=$(echo "$param" | awk -F '/name:ota' '{print $1}')
ubi_param=$(echo "$ubi_param" | awk -F '/sys/class/ubi/' '{print $2}')
ubi_param=$(echo "$ubi_param" | awk -F '/' '{print $2}')
echo "ota part device node is /dev/$ubi_param"
if [ -c "/dev/$ubi_param" ]; then
mkdir -p /mnt/ota
mount -t ubifs /dev/$ubi_param /mnt/ota
fi
if ! relocate_swu_off_data; then
echo "S91: ERROR: could not move OTA package off /data; aborting swupdate"
exit 1
fi
if [ -f /mnt/swutmp/.ota_use_tmpdir ]; then
export TMPDIR=/mnt/swutmp
echo "S91: TMPDIR=$TMPDIR (swupdate extract uses same tmpfs as .swu)"
fi
exec /usr/lib/swupdate/swupdate_cmd.sh
./usr/lib/swupdate/swupdate_cmd.sh
;;
stop)
umount /data 2>/dev/null
umount /mnt/swutmp 2>/dev/null
echo -n "Stopping swupdate... "
umount /mnt/ota
;;
esac

View File

@ -9,7 +9,7 @@ case "$1" in
mkdir -p /mnt/ota
mount /dev/mmcblk0p11 /mnt/ota
/usr/lib/swupdate/swupdate_cmd.sh
./usr/lib/swupdate/swupdate_cmd.sh
;;
stop)
echo -n "Stopping swupdate... "