diff --git a/.gitignore b/.gitignore index f41f4beb64..080bce7ad1 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,8 @@ ncscope.* __pycache__ .vscode + +buildroot-2021.05/buildroot-2021.05/ +buildroot-2021.05/dl/ + +build.log diff --git a/README.md b/README.md index 813028478e..38f1872599 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ milkv-duos-emmc cv1813h_milkv_duos_emmc milkv-duo-spinand cv1800b_milkv_duo_spinand milkv-duo-spinor milkv-duo-spinor milkv-duos-sd cv1813h_milkv_duos_sd +milkv-duos-ota-sd milkv-duos-ota-sd_musl_riscv64_defconfig ``` ```bash diff --git a/build/Makefile b/build/Makefile index 7b93fc39b5..55aa47d0ad 100644 --- a/build/Makefile +++ b/build/Makefile @@ -639,6 +639,33 @@ else $(COMMON_TOOLS_PATH)/sd_tools/sd_gen_burn_image.sh $(OUTPUT_DIR) endif +sd_image_gz: + $(call print_target) + -${Q}rm $(OUTPUT_DIR)/fs +ifeq ($(CONFIG_BUILDROOT_FS),y) + ${Q}rm $(OUTPUT_DIR)/br-rootfs -rf + ${Q}ln -s $(OUTPUT_DIR)/br-rootfs $(OUTPUT_DIR)/fs + ${Q}mkdir $(OUTPUT_DIR)/br-rootfs + ${Q}tar xvf $(BR_DIR)/output/$(BR_BOARD)/images/rootfs.tar.xz -C $(OUTPUT_DIR)/br-rootfs +else + ${Q}ln -s $(OUTPUT_DIR)/rootfs $(OUTPUT_DIR)/fs +endif +ifeq ($(MV_VENDOR), milkv) + $(TOP_DIR)/device/gen_burn_image_sd.sh $(OUTPUT_DIR) +else + $(COMMON_TOOLS_PATH)/sd_tools/sd_gen_burn_image.sh $(OUTPUT_DIR) +endif + ${Q}if [ -f "$(OUTPUT_DIR)/$(MV_BOARD).img" ]; then \ + gzip -f $(OUTPUT_DIR)/$(MV_BOARD).img; \ + fi + + +gen_swu_ota: + $(call print_target) + @echo "Generating SWU package..." + @$(TOP_DIR)/device/gen_swu.sh $(OUTPUT_DIR)/rootfs.ext4 $(SWU_VERSION) + + jffs2: $(call print_target) ifeq ($(STORAGE_TYPE),spinor) diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/config.json b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/config.json new file mode 100644 index 0000000000..35b6ec4748 --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/config.json @@ -0,0 +1,9 @@ +{ + "ddr_cfg_list": [ + "", + "ddr3_1866_x16", + "ddr3_2133_x16", + "ddr_auto_x16" + ], + "board_information": "C906B + EMMC 8GB + BGA SIP 256MB" +} diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/cv1813h_milkv_duos_ota_sd_defconfig b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/cv1813h_milkv_duos_ota_sd_defconfig new file mode 100644 index 0000000000..5e586eb012 --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/cv1813h_milkv_duos_ota_sd_defconfig @@ -0,0 +1,28 @@ +CONFIG_CHIP_cv1813h=y +CONFIG_BOARD_milkv_duos_ota_sd=y +CONFIG_DDR_CFG_ddr3_1866_x16=y +CONFIG_ARCH="riscv" +CONFIG_CROSS_COMPILE="riscv64-unknown-linux-musl-" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_KERNEL_ENTRY_HACK=y +CONFIG_KERNEL_ENTRY_HACK_ADDR="0x80200000" +CONFIG_TOOLCHAIN_MUSL_RISCV64=y +CONFIG_FLASH_SIZE_SHRINK=y +CONFIG_BOOT_IMAGE_SINGLE_DTB=y +CONFIG_OD_CLK_SEL=y +CONFIG_STORAGE_TYPE_sd=y +CONFIG_SENSOR_GCORE_GC2053=y +CONFIG_SENSOR_GCORE_GC2083=y +CONFIG_SENSOR_GCORE_GC4653=y +CONFIG_SENSOR_OV_OV5647=y +CONFIG_SENSOR_SMS_SC035HGS=y +CONFIG_SENSOR_SMS_SC200AI=y +CONFIG_MIPI_PANEL_MILKV_8HD=y +CONFIG_UBOOT_2021_10=y +CONFIG_KERNEL_SRC_5.10=y +CONFIG_KERNEL_LZMA=y +CONFIG_SKIP_RAMDISK=y +CONFIG_BUILDROOT_FS=y +CONFIG_ENABLE_FREERTOS=y +CONFIG_ENABLE_RTOS_DUMP_PRINT=y +CONFIG_DUMP_PRINT_SZ_IDX=17 diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/dts_riscv/cv1813h_milkv_duos_ota_sd.dts b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/dts_riscv/cv1813h_milkv_duos_ota_sd.dts new file mode 100644 index 0000000000..1ea1d46320 --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/dts_riscv/cv1813h_milkv_duos_ota_sd.dts @@ -0,0 +1,109 @@ +/dts-v1/; +#include "cv181x_base_riscv.dtsi" +#include "cv181x_asic_bga.dtsi" +#include "cv181x_asic_sd.dtsi" +#include "cv181x_default_memmap.dtsi" + +&mipi_rx{ + snsr-reset = <&porta 2 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>, <&porta 2 GPIO_ACTIVE_LOW>; +}; + +&dac{ + /delete-property/ mute-gpio-l; + /delete-property/ mute-gpio-r; +}; + +&i2c0 { + status = "disabled"; +}; + +&i2c1 { + status = "okay"; +}; + +&i2c2 { + status = "okay"; +}; + +&i2c3 { + status = "okay"; +}; + +&i2c4 { + status = "okay"; + + gt9xx: gt9xx@14 { + compatible = "goodix,gt9xx"; + reg = <0x14>; + goodix,irq-gpio = <&porta 18 0>; + goodix,rst-gpio = <&porta 19 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; +}; + +&spi3 { + status = "okay"; + + spidev@0 { + status = "okay"; + }; +}; + +&usb { + vbus-gpio = <&portb 6 0>; +}; + +&wifisd { + status = "okay"; + cap-sd-highspeed; + sd-uhs-sdr25; + sd-uhs-ddr50; + sd-uhs-sdr104; + min-frequency = <400000>; + max-frequency = <187500000>; +}; + +&wifi_pin { + compatible = "cvitek,wifi-pin"; + poweron-gpio = <&porta 15 GPIO_ACTIVE_HIGH>; + wakeup-gpio = <&porte 7 GPIO_ACTIVE_HIGH>; +}; + +&uart1 { + status = "okay"; +}; + +&uart2 { + status = "okay"; +}; + +&uart3 { + status = "okay"; +}; + +&uart4 { + status = "okay"; +}; + +/* mipi dsi for u-boot */ +&vo { + compatible = "cvitek,vo"; + reset-gpio = <&porte 2 GPIO_ACTIVE_LOW>; + pwm-gpio = <&porte 0 GPIO_ACTIVE_HIGH>; + power-gpio = <&porte 1 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + +/* mipi dsi for kernel */ +&mipi_tx { + compatible = "cvitek,mipi_tx"; + reset-gpio = <&porte 2 GPIO_ACTIVE_LOW>; + pwm-gpio = <&porte 0 GPIO_ACTIVE_HIGH>; + power-ct-gpio = <&porte 1 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + +/ { + model = "Milk-V DuoS"; +}; + diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/linux/cvitek_cv1813h_milkv_duos_ota_sd_defconfig b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/linux/cvitek_cv1813h_milkv_duos_ota_sd_defconfig new file mode 100644 index 0000000000..9e6875d1f8 --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/linux/cvitek_cv1813h_milkv_duos_ota_sd_defconfig @@ -0,0 +1,3611 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/riscv 5.10.4 Kernel Configuration +# +CONFIG_CC_VERSION_TEXT="riscv64-unknown-linux-musl-gcc (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906) 10.2.0" +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=100200 +CONFIG_LD_VERSION=235000000 +CONFIG_CLANG_VERSION=0 +CONFIG_LLD_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_IRQ_WORK=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_BUILD_SALT="" +CONFIG_DEFAULT_INIT="" +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +# CONFIG_WATCH_QUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set +# CONFIG_AUDIT is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y +CONFIG_ARCH_CLOCKSOURCE_INIT=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ is not set +CONFIG_HIGH_RES_TIMERS=y +# end of Timers subsystem + +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPTION=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +CONFIG_PREEMPT_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_RCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +# end of RCU Subsystem + +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_IKHEADERS is not set +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +CONFIG_GENERIC_SCHED_CLOCK=y + +# +# Scheduler features +# +# end of Scheduler features + +CONFIG_CC_HAS_INT128=y +CONFIG_ARCH_SUPPORTS_INT128=y +# CONFIG_CGROUPS is not set +# CONFIG_NAMESPACES is not set +# CONFIG_CHECKPOINT_RESTORE is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SCHED_CVITEK=y +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_RD_LZ4=y +CONFIG_RD_ZSTD=y +# CONFIG_BOOT_CONFIG is not set +# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_BPF=y +CONFIG_EXPERT=y +CONFIG_MULTIUSER=y +# CONFIG_SGETMASK_SYSCALL is not set +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_FHANDLE is not set +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +# CONFIG_BUG is not set +CONFIG_ELF_CORE=y +# CONFIG_BASE_FULL is not set +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_HAVE_FUTEX_CMPXCHG=y +CONFIG_EPOLL=y +# CONFIG_SIGNALFD is not set +# CONFIG_TIMERFD is not set +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +# CONFIG_AIO is not set +# CONFIG_IO_URING is not set +# CONFIG_ADVISE_SYSCALLS is not set +CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_BASE_RELATIVE=y +# CONFIG_BPF_SYSCALL is not set +# CONFIG_USERFAULTFD is not set +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set + +# +# Kernel Performance Events And Counters +# +# CONFIG_PERF_EVENTS is not set +# end of Kernel Performance Events And Counters + +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_SLUB_DEBUG is not set +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SLAB_FREELIST_HARDENED is not set +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +CONFIG_SYSTEM_DATA_VERIFICATION=y +# CONFIG_PROFILING is not set +# end of General setup + +CONFIG_64BIT=y +CONFIG_RISCV=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_BITS_MAX=24 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=17 +CONFIG_RISCV_SBI=y +CONFIG_MMU=y +CONFIG_ZONE_DMA32=y +CONFIG_VA_BITS=39 +CONFIG_PA_BITS=56 +CONFIG_PAGE_OFFSET=0xffffffe000000000 +CONFIG_FORCE_MAX_ZONEORDER=10 +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=3 +CONFIG_LOCKDEP_SUPPORT=y + +# +# SoC selection +# +# CONFIG_SOC_SIFIVE is not set +# CONFIG_SOC_VIRT is not set +CONFIG_ARCH_CVITEK=y +CONFIG_SOC_THEAD=y +# end of SoC selection + +# +# Platform type +# +# CONFIG_ARCH_RV32I is not set +CONFIG_ARCH_RV64I=y +# CONFIG_CMODEL_MEDLOW is not set +CONFIG_CMODEL_MEDANY=y +CONFIG_MODULE_SECTIONS=y +# CONFIG_MAXPHYSMEM_2GB is not set +CONFIG_MAXPHYSMEM_128GB=y +# CONFIG_SMP is not set +CONFIG_TUNE_GENERIC=y +CONFIG_RISCV_ISA_C=y +CONFIG_NO_SFENCE_VMA=y +# CONFIG_RISCV_SWIOTLB is not set +CONFIG_FPU=y +CONFIG_VECTOR=y +# CONFIG_VECTOR_1_0 is not set +CONFIG_VECTOR_0_7=y +# CONFIG_VECTOR_EMU is not set +# end of Platform type + +# +# Kernel features +# +# CONFIG_HZ_12 is not set +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_SCHED_HRTICK=y +CONFIG_RISCV_SBI_V01=y +# CONFIG_COMPAT is not set +# end of Kernel features + +# +# Boot options +# +CONFIG_CMDLINE="" +CONFIG_EFI_STUB=y +CONFIG_EFI=y +# end of Boot options + +# +# Power management options +# +# CONFIG_PM is not set +# end of Power management options + +# +# Firmware Drivers +# +# CONFIG_FIRMWARE_MEMMAP is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_ESRT=y +CONFIG_EFI_PARAMS_FROM_FDT=y +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_GENERIC_STUB=y +# CONFIG_EFI_BOOTLOADER_CONTROL is not set +# CONFIG_EFI_CAPSULE_LOADER is not set +# CONFIG_EFI_TEST is not set +# CONFIG_RESET_ATTACK_MITIGATION is not set +# CONFIG_EFI_DISABLE_PCI_DMA is not set +# end of EFI (Extensible Firmware Interface) Support + +CONFIG_EFI_EARLYCON=y + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +CONFIG_ARCH_CV181X=y +# CONFIG_ARCH_CV180X is not set +CONFIG_ARCH_CVITEK_CHIP="cv181x" +# CONFIG_ARCH_CV181X_PALLADIUM is not set +# CONFIG_ARCH_CV181X_FPGA is not set +CONFIG_ARCH_CV181X_ASIC=y + +# +# General architecture-dependent options +# +CONFIG_SET_FS=y +# CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set +CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_HAVE_ARCH_SECCOMP=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +# CONFIG_STRICT_KERNEL_RWX is not set +CONFIG_ARCH_USE_MEMREMAP_PROT=y +# CONFIG_LOCK_EVENT_COUNTS is not set + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_HAVE_GCC_PLUGINS=y +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=1 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_COMPRESS is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_BLOCK=y +CONFIG_BLK_SCSI_REQUEST=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_ZONED is not set +CONFIG_BLK_CMDLINE_PARSER=y +# CONFIG_BLK_WBT is not set +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set +# CONFIG_BLK_INLINE_ENCRYPTION is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AIX_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y + +# CONFIG_SYSV68_PARTITION is not set +CONFIG_CMDLINE_PARTITION=y +# end of Partition Types + +# +# IO Schedulers +# +# CONFIG_MQ_IOSCHED_DEADLINE is not set +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_IOSCHED_BFQ is not set +# end of IO Schedulers + +CONFIG_ASN1=y +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_HAS_MMIOWB=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_ARCH_HAS_BINFMT_FLAT=y +# CONFIG_BINFMT_FLAT is not set +# CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_COMPACTION=y +# CONFIG_PAGE_REPORTING is not set +CONFIG_MIGRATION=y +CONFIG_CONTIG_ALLOC=y +CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_NEED_PER_CPU_KM=y +# CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_AREAS=7 +# CONFIG_ZPOOL is not set +# CONFIG_ZBUD is not set +CONFIG_ZSMALLOC=y +CONFIG_ZSMALLOC_STAT=y +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_IDLE_PAGE_TRACKING is not set +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_BENCHMARK is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +# end of Memory Management options + +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +CONFIG_UNIX_SCM=y +# CONFIG_UNIX_DIAG is not set +# CONFIG_TLS is not set +# CONFIG_XFRM_USER is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +# CONFIG_IP_PNP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_NET_IP_TUNNEL=y +CONFIG_IP_MROUTE_COMMON=y +# CONFIG_IP_MROUTE is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_NET_IPVTI is not set +# CONFIG_NET_FOU is not set +# CONFIG_NET_FOU_IP_TUNNELS is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +CONFIG_INET_TUNNEL=y +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +# CONFIG_INET6_IPCOMP is not set +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=y +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_TUNNEL is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +CONFIG_IPV6_MROUTE=y +# CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set +# CONFIG_IPV6_PIMSM_V2 is not set +# CONFIG_IPV6_SEG6_LWTUNNEL is not set +# CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_IPV6_RPL_LWTUNNEL is not set +# CONFIG_MPTCP is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +# CONFIG_NETFILTER is not set +# CONFIG_BPFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +# CONFIG_BRIDGE is not set +CONFIG_HAVE_NET_DSA=y +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +# CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set +# CONFIG_DNS_RESOLVER is not set +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_DIAG is not set +# CONFIG_MPLS is not set +# CONFIG_NET_NSH is not set +# CONFIG_HSR is not set +# CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set +# CONFIG_QRTR is not set +# CONFIG_NET_NCSI is not set +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +# CONFIG_BPF_JIT is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# end of Network testing +# end of Networking options + +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +CONFIG_BT=y +CONFIG_BT_BREDR=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_BT_HS=y +CONFIG_BT_LE=y +# CONFIG_BT_MSFTEXT is not set +CONFIG_BT_DEBUGFS=y +# CONFIG_BT_SELFTEST is not set + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIBTUSB is not set +# CONFIG_BT_HCIBTSDIO is not set +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +# CONFIG_BT_HCIUART_BCSP is not set +# CONFIG_BT_HCIUART_ATH3K is not set +# CONFIG_BT_HCIUART_INTEL is not set +# CONFIG_BT_HCIUART_AG6XX is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_BT_MRVL is not set +# CONFIG_BT_MTKSDIO is not set +# end of Bluetooth device drivers + +# CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +CONFIG_CFG80211_CRDA_SUPPORT=y +# CONFIG_CFG80211_WEXT is not set +# CONFIG_MAC80211 is not set +CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 +# CONFIG_WIMAX is not set +CONFIG_RFKILL=y +# CONFIG_RFKILL_INPUT is not set +# CONFIG_RFKILL_GPIO is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +# CONFIG_PSAMPLE is not set +# CONFIG_NET_IFE is not set +# CONFIG_LWTUNNEL is not set +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +CONFIG_PAGE_POOL=y +# CONFIG_FAILOVER is not set +CONFIG_ETHTOOL_NETLINK=y +CONFIG_HAVE_EBPF_JIT=y + +# +# Device Drivers +# +CONFIG_HAVE_PCI=y +# CONFIG_PCI is not set +# CONFIG_PCCARD is not set + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER=y +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_FW_LOADER_COMPRESS is not set +# end of Firmware loader + +# CONFIG_ALLOW_DEV_COREDUMP is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_MMIO=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +# end of Generic Driver Options + +# +# Bus devices +# +# CONFIG_MOXTET is not set +# CONFIG_MHI_BUS is not set +# end of Bus devices + +# CONFIG_CONNECTOR is not set +# CONFIG_GNSS is not set +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set + +# +# Partition parsers +# +# CONFIG_MTD_AR7_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_OF_PARTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# end of Partition parsers + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set +# CONFIG_MTD_PARTITIONED_MASTER is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# end of RAM/ROM/Flash chip drivers + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set +# end of Mapping drivers for chip access + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_MCHP23K256 is not set +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +# end of Self-contained MTD device drivers + +# +# NAND +# +CONFIG_MTD_NAND_CORE=y +# CONFIG_MTD_ONENAND is not set +CONFIG_MTD_NAND_ECC_SW_HAMMING=y +# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set +CONFIG_MTD_RAW_NAND=y +# CONFIG_MTD_NAND_ECC_SW_BCH is not set + +# +# Raw/parallel NAND flash controllers +# +# CONFIG_MTD_NAND_DENALI_DT is not set +# CONFIG_MTD_NAND_MXIC is not set +# CONFIG_MTD_NAND_GPIO is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_NAND_CADENCE is not set +# CONFIG_MTD_NAND_ARASAN is not set + +# +# Misc +# +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_CVSNFC is not set +# CONFIG_MTD_SPI_NAND is not set + +# +# ECC engine support +# +CONFIG_MTD_NAND_ECC=y +# end of ECC engine support +# end of NAND + +# +# LPDDR & LPDDR2 PCM memory drivers +# +# CONFIG_MTD_LPDDR is not set +# end of LPDDR & LPDDR2 PCM memory drivers + +# CONFIG_MTD_SPI_NOR is not set +# CONFIG_MTD_UBI is not set +# CONFIG_MTD_HYPERBUS is not set +CONFIG_DTC=y +CONFIG_OF=y +# CONFIG_OF_UNITTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_KOBJ=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_NET=y +CONFIG_OF_RESERVED_MEM=y +# CONFIG_OF_OVERLAY is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +CONFIG_ZRAM=m +CONFIG_ZRAM_WRITEBACK=y +CONFIG_ZRAM_MEMORY_TRACKING=y +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_BLK_DEV_RBD is not set + +# +# NVME Support +# +# CONFIG_NVME_FC is not set +# CONFIG_NVME_TARGET is not set +# end of NVME Support + +# +# Misc devices +# +# CONFIG_AD525X_DPOT is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +# CONFIG_XILINX_SDFEC is not set +# CONFIG_PVPANIC is not set +# CONFIG_HISI_HIKEY_USB is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_AT25 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +# CONFIG_EEPROM_93CX6 is not set +# CONFIG_EEPROM_93XX46 is not set +# CONFIG_EEPROM_IDT_89HPESX is not set +# CONFIG_EEPROM_EE1004 is not set +# end of EEPROM support + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_TI_ST is not set +# end of Texas Instruments shared transport line discipline + +# CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set +# CONFIG_ALTERA_STAPL is not set +# CONFIG_ECHO is not set +# CONFIG_MISC_RTSX_USB is not set +# end of Misc devices + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +# end of SCSI Transports + +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_UFSHCD is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_DH is not set +# end of SCSI device support + +# CONFIG_ATA is not set +# CONFIG_MD is not set +# CONFIG_TARGET_CORE is not set +CONFIG_NETDEVICES=y +CONFIG_MII=y +# CONFIG_NET_CORE is not set + +# +# Distributed Switch Architecture drivers +# +# end of Distributed Switch Architecture drivers + +CONFIG_ETHERNET=y +# CONFIG_NET_VENDOR_ALACRITECH is not set +# CONFIG_ALTERA_TSE is not set +# CONFIG_NET_VENDOR_AMAZON is not set +# CONFIG_NET_VENDOR_AQUANTIA is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_AURORA is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CADENCE is not set +# CONFIG_NET_VENDOR_CAVIUM is not set +# CONFIG_NET_VENDOR_CORTINA is not set +# CONFIG_DNET is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +CONFIG_NET_VENDOR_GOOGLE=y +# CONFIG_NET_VENDOR_HUAWEI is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +CONFIG_NET_VENDOR_MELLANOX=y +# CONFIG_MLXSW_CORE is not set +# CONFIG_MLXFW is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MICROSEMI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +# CONFIG_NET_VENDOR_NI is not set +# CONFIG_ETHOC is not set +CONFIG_NET_VENDOR_PENSANDO=y +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set +# CONFIG_NET_VENDOR_SOCIONEXT is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=y +# CONFIG_STMMAC_SELFTESTS is not set +CONFIG_STMMAC_PLATFORM=y +# CONFIG_DWMAC_DWC_QOS_ETH is not set +# CONFIG_DWMAC_GENERIC is not set +CONFIG_DWMAC_CVITEK=y +# CONFIG_DWMAC_INTEL_PLAT is not set +# CONFIG_NET_VENDOR_SYNOPSYS is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_NET_VENDOR_XILINX=y +# CONFIG_XILINX_AXI_EMAC is not set +# CONFIG_XILINX_LL_TEMAC is not set +CONFIG_PHYLINK=y +CONFIG_PHYLIB=y +CONFIG_SWPHY=y +CONFIG_FIXED_PHY=y +# CONFIG_SFP is not set + +# +# MII PHY device drivers +# +# CONFIG_AMD_PHY is not set +# CONFIG_ADIN_PHY is not set +# CONFIG_AQUANTIA_PHY is not set +# CONFIG_AX88796B_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_BCM54140_PHY is not set +# CONFIG_BCM7XXX_PHY is not set +# CONFIG_BCM84881_PHY is not set +# CONFIG_BCM87XX_PHY is not set +# CONFIG_CICADA_PHY is not set +CONFIG_CVITEK_PHY=y +# CONFIG_CORTINA_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_INTEL_XWAY_PHY is not set +# CONFIG_LSI_ET1011C_PHY is not set +# CONFIG_MARVELL_PHY is not set +# CONFIG_MARVELL_10G_PHY is not set +# CONFIG_MICREL_PHY is not set +# CONFIG_MICROCHIP_PHY is not set +# CONFIG_MICROCHIP_T1_PHY is not set +# CONFIG_MICROSEMI_PHY is not set +# CONFIG_NATIONAL_PHY is not set +# CONFIG_NXP_TJA11XX_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_REALTEK_PHY is not set +# CONFIG_RENESAS_PHY is not set +# CONFIG_ROCKCHIP_PHY is not set +CONFIG_SMSC_PHY=y +# CONFIG_STE10XP is not set +# CONFIG_TERANETICS_PHY is not set +# CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set +# CONFIG_DP83848_PHY is not set +# CONFIG_DP83867_PHY is not set +# CONFIG_DP83869_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_XILINX_GMII2RGMII is not set +# CONFIG_MICREL_KS8995MA is not set +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y +CONFIG_OF_MDIO=y +CONFIG_MDIO_DEVRES=y +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_HISI_FEMAC is not set +# CONFIG_MDIO_MVUSB is not set +# CONFIG_MDIO_MSCC_MIIM is not set +# CONFIG_MDIO_OCTEON is not set +# CONFIG_MDIO_IPQ4019 is not set +# CONFIG_MDIO_IPQ8064 is not set + +# +# MDIO Multiplexers +# +# CONFIG_MDIO_BUS_MUX_GPIO is not set +# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set + +# +# PCS device drivers +# +CONFIG_PCS_XPCS=y +# end of PCS device drivers + +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +CONFIG_USB_NET_DRIVERS=y +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_RTL8152 is not set +# CONFIG_USB_LAN78XX is not set +CONFIG_USB_USBNET=y +CONFIG_USB_NET_AX8817X=y +CONFIG_USB_NET_AX88179_178A=y +CONFIG_USB_NET_CDCETHER=y +# CONFIG_USB_NET_CDC_EEM is not set +CONFIG_USB_NET_CDC_NCM=y +# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set +# CONFIG_USB_NET_CDC_MBIM is not set +# CONFIG_USB_NET_DM9601 is not set +# CONFIG_USB_NET_SR9700 is not set +# CONFIG_USB_NET_SR9800 is not set +# CONFIG_USB_NET_SMSC75XX is not set +CONFIG_USB_NET_SMSC95XX=y +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=y +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +CONFIG_USB_NET_CDC_SUBSET_ENABLE=y +CONFIG_USB_NET_CDC_SUBSET=y +# CONFIG_USB_ALI_M5632 is not set +# CONFIG_USB_AN2720 is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +# CONFIG_USB_KC2190 is not set +CONFIG_USB_NET_ZAURUS=y +# CONFIG_USB_NET_CX82310_ETH is not set +# CONFIG_USB_NET_KALMIA is not set +# CONFIG_USB_NET_QMI_WWAN is not set +# CONFIG_USB_HSO is not set +# CONFIG_USB_NET_INT51X1 is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_USB_SIERRA_NET is not set +# CONFIG_USB_VL600 is not set +# CONFIG_USB_NET_CH9200 is not set +# CONFIG_USB_NET_AQC111 is not set +CONFIG_WLAN=y +# CONFIG_WIRELESS_WDS is not set +# CONFIG_WLAN_VENDOR_ADMTEK is not set +# CONFIG_WLAN_VENDOR_ATH is not set +# CONFIG_WLAN_VENDOR_ATMEL is not set +# CONFIG_WLAN_VENDOR_BROADCOM is not set +# CONFIG_WLAN_VENDOR_CISCO is not set +# CONFIG_WLAN_VENDOR_INTEL is not set +# CONFIG_WLAN_VENDOR_INTERSIL is not set +# CONFIG_WLAN_VENDOR_MARVELL is not set +# CONFIG_WLAN_VENDOR_MEDIATEK is not set +CONFIG_WLAN_VENDOR_MICROCHIP=y +# CONFIG_WILC1000_SDIO is not set +# CONFIG_WILC1000_SPI is not set +# CONFIG_WLAN_VENDOR_RALINK is not set +CONFIG_WLAN_VENDOR_REALTEK=y +# CONFIG_RTL8188FU is not set +# CONFIG_RTL8189FS is not set +# CONFIG_RTL8723DS is not set +# CONFIG_RTL8821CS is not set +# CONFIG_WLAN_VENDOR_RSI is not set +# CONFIG_WLAN_VENDOR_ST is not set +# CONFIG_WLAN_VENDOR_TI is not set +# CONFIG_WLAN_VENDOR_ZYDAS is not set +CONFIG_WLAN_VENDOR_QUANTENNA=y +CONFIG_WLAN_VENDOR_ICOMMSEMI=y +# CONFIG_SV6115 is not set +CONFIG_WLAN_VENDOR_AICSEMI=y +CONFIG_AIC8800=y +CONFIG_AIC_FW_PATH="/mnt/system/firmware/aic8800" +CONFIG_AIC8800_WLAN_SUPPORT=m +CONFIG_AIC8800_BTLPM_SUPPORT=m +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_VIRT_WIFI is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +# CONFIG_NETDEVSIM is not set +# CONFIG_NET_FAILOVER is not set +# CONFIG_ISDN is not set +# CONFIG_NVM is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1050 is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_DLINK_DIR685 is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_KEYBOARD_GPIO_POLLED is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8333 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_OMAP4 is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_CAP11XX is not set +# CONFIG_KEYBOARD_BCM is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +# CONFIG_MOUSE_PS2_SENTELIC is not set +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_PS2_FOCALTECH=y +CONFIG_MOUSE_PS2_SMBUS=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_CYAPA is not set +# CONFIG_MOUSE_ELAN_I2C is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_GPIO is not set +# CONFIG_MOUSE_SYNAPTICS_I2C is not set +# CONFIG_MOUSE_SYNAPTICS_USB is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_GPIO_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +# CONFIG_VT is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_LDISC_AUTOLOAD=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_16550A_VARIANTS=y +# CONFIG_SERIAL_8250_FINTEK is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_NR_UARTS=5 +CONFIG_SERIAL_8250_RUNTIME_UARTS=5 +# CONFIG_SERIAL_8250_EXTENDED is not set +# CONFIG_SERIAL_8250_ASPEED_VUART is not set +CONFIG_SERIAL_8250_DWLIB=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_RT288X is not set +# CONFIG_SERIAL_OF_PLATFORM is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_EARLYCON_RISCV_SBI=y +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_FSL_LINFLEXUART is not set +# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set +# CONFIG_SERIAL_SPRD is not set +# end of Serial drivers + +CONFIG_SERIAL_MCTRL_GPIO=y +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +# CONFIG_NULL_TTY is not set +# CONFIG_TRACE_SINK is not set +# CONFIG_HVC_RISCV_SBI is not set +# CONFIG_SERIAL_DEV_BUS is not set +# CONFIG_TTY_PRINTK is not set +# CONFIG_VIRTIO_CONSOLE is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_BA431 is not set +# CONFIG_HW_RANDOM_CCTRNG is not set +# CONFIG_HW_RANDOM_XIPHERA is not set +CONFIG_DEVMEM=y +# CONFIG_DEVKMEM is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_XILLYBUS is not set +# end of Character devices + +# CONFIG_RANDOM_TRUST_BOOTLOADER is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y + +# +# Multiplexer I2C Chip support +# +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_MUX_GPIO is not set +# CONFIG_I2C_MUX_GPMUX is not set +# CONFIG_I2C_MUX_LTC4306 is not set +# CONFIG_I2C_MUX_PCA9541 is not set +# CONFIG_I2C_MUX_PCA954x is not set +# CONFIG_I2C_MUX_PINCTRL is not set +# CONFIG_I2C_MUX_REG is not set +# CONFIG_I2C_DEMUX_PINCTRL is not set +# CONFIG_I2C_MUX_MLXCPLD is not set +# end of Multiplexer I2C Chip support + +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_CBUS_GPIO is not set +CONFIG_I2C_DESIGNWARE_CORE=y +# CONFIG_I2C_DESIGNWARE_SLAVE is not set +CONFIG_I2C_DESIGNWARE_PLATFORM=y +# CONFIG_I2C_DESIGNWARE_ICE is not set +# CONFIG_I2C_EMEV2 is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_RK3X is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# end of I2C Hardware Bus support + +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# end of I2C support + +# CONFIG_I3C is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_AXI_SPI_ENGINE is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_CADENCE is not set +CONFIG_SPI_DESIGNWARE=y +# CONFIG_SPI_DW_DMA is not set +CONFIG_SPI_DW_MMIO=y +# CONFIG_SPI_NXP_FLEXSPI is not set +# CONFIG_SPI_GPIO is not set +# CONFIG_SPI_FSL_SPI is not set +# CONFIG_SPI_OC_TINY is not set +# CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_SIFIVE is not set +# CONFIG_SPI_MXIC is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_ZYNQMP_GQSPI is not set +# CONFIG_SPI_AMD is not set + +# +# SPI Multiplexer support +# +# CONFIG_SPI_MUX is not set + +# +# SPI Protocol Masters +# +CONFIG_SPI_SPIDEV=y +# CONFIG_SPI_LOOPBACK_TEST is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPI_SLAVE is not set +# CONFIG_SPMI is not set +# CONFIG_HSI is not set +# CONFIG_PPS is not set + +# +# PTP clock support +# +# CONFIG_PTP_1588_CLOCK is not set + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +# end of PTP clock support + +CONFIG_PINCTRL=y +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_MCP23S08 is not set +# CONFIG_PINCTRL_SINGLE is not set +# CONFIG_PINCTRL_SX150X is not set +# CONFIG_PINCTRL_STMFX is not set +# CONFIG_PINCTRL_OCELOT is not set + +# +# Renesas pinctrl drivers +# +# end of Renesas pinctrl drivers + +CONFIG_CVITEK_PINCTRL_CV1835=y +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 +CONFIG_OF_GPIO=y +CONFIG_GPIOLIB_IRQCHIP=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_CDEV_V1=y +CONFIG_GPIO_GENERIC=y + +# +# Memory mapped GPIO drivers +# +# CONFIG_GPIO_74XX_MMIO is not set +# CONFIG_GPIO_ALTERA is not set +# CONFIG_GPIO_CADENCE is not set +CONFIG_GPIO_DWAPB=y +# CONFIG_GPIO_FTGPIO010 is not set +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_HLWD is not set +# CONFIG_GPIO_LOGICVC is not set +# CONFIG_GPIO_MB86S7X is not set +# CONFIG_GPIO_SAMA5D2_PIOBU is not set +# CONFIG_GPIO_SIFIVE is not set +# CONFIG_GPIO_SYSCON is not set +# CONFIG_GPIO_XILINX is not set +# CONFIG_GPIO_AMD_FCH is not set +# end of Memory mapped GPIO drivers + +# +# I2C GPIO expanders +# +# CONFIG_GPIO_ADP5588 is not set +# CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_GW_PLD is not set +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCA9570 is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_TPIC2810 is not set +# end of I2C GPIO expanders + +# +# MFD GPIO expanders +# +# end of MFD GPIO expanders + +# +# SPI GPIO expanders +# +# CONFIG_GPIO_74X164 is not set +# CONFIG_GPIO_MAX3191X is not set +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_PISOSR is not set +# CONFIG_GPIO_XRA1403 is not set +# end of SPI GPIO expanders + +# +# USB GPIO expanders +# +# end of USB GPIO expanders + +# CONFIG_GPIO_AGGREGATOR is not set +# CONFIG_GPIO_MOCKUP is not set +# CONFIG_W1 is not set +CONFIG_POWER_RESET=y +# CONFIG_POWER_RESET_GPIO is not set +# CONFIG_POWER_RESET_GPIO_RESTART is not set +# CONFIG_POWER_RESET_LTC2952 is not set +# CONFIG_POWER_RESET_RESTART is not set +# CONFIG_POWER_RESET_SYSCON is not set +# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_SYSCON_REBOOT_MODE is not set +# CONFIG_NVMEM_REBOOT_MODE is not set +# CONFIG_POWER_SUPPLY is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_AD7314 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM1177 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7310 is not set +# CONFIG_SENSORS_ADT7410 is not set +# CONFIG_SENSORS_ADT7411 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_AS370 is not set +# CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_AXI_FAN_CONTROL is not set +# CONFIG_SENSORS_ASPEED is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_CORSAIR_CPRO is not set +# CONFIG_SENSORS_DS620 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_FTSTEUTATES is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_G762 is not set +# CONFIG_SENSORS_GPIO_FAN is not set +# CONFIG_SENSORS_HIH6130 is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_JC42 is not set +# CONFIG_SENSORS_POWR1220 is not set +# CONFIG_SENSORS_LINEAGE is not set +# CONFIG_SENSORS_LTC2945 is not set +# CONFIG_SENSORS_LTC2947_I2C is not set +# CONFIG_SENSORS_LTC2947_SPI is not set +# CONFIG_SENSORS_LTC2990 is not set +# CONFIG_SENSORS_LTC4151 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4222 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LTC4260 is not set +# CONFIG_SENSORS_LTC4261 is not set +# CONFIG_SENSORS_MAX1111 is not set +# CONFIG_SENSORS_MAX16065 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX1668 is not set +# CONFIG_SENSORS_MAX197 is not set +# CONFIG_SENSORS_MAX31722 is not set +# CONFIG_SENSORS_MAX31730 is not set +# CONFIG_SENSORS_MAX6621 is not set +# CONFIG_SENSORS_MAX6639 is not set +# CONFIG_SENSORS_MAX6642 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set +# CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_TC654 is not set +# CONFIG_SENSORS_MR75203 is not set +# CONFIG_SENSORS_ADCXX is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM70 is not set +# CONFIG_SENSORS_LM73 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LM95234 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_LM95245 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_NTC_THERMISTOR is not set +# CONFIG_SENSORS_NCT6683 is not set +# CONFIG_SENSORS_NCT6775 is not set +# CONFIG_SENSORS_NCT7802 is not set +# CONFIG_SENSORS_NCT7904 is not set +# CONFIG_SENSORS_NPCM7XX is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_PMBUS is not set +# CONFIG_SENSORS_PWM_FAN is not set +# CONFIG_SENSORS_SHT15 is not set +# CONFIG_SENSORS_SHT21 is not set +# CONFIG_SENSORS_SHT3x is not set +# CONFIG_SENSORS_SHTC1 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_EMC1403 is not set +# CONFIG_SENSORS_EMC2103 is not set +# CONFIG_SENSORS_EMC6W201 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SCH5627 is not set +# CONFIG_SENSORS_SCH5636 is not set +# CONFIG_SENSORS_STTS751 is not set +# CONFIG_SENSORS_SMM665 is not set +# CONFIG_SENSORS_ADC128D818 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_ADS7871 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_INA209 is not set +# CONFIG_SENSORS_INA2XX is not set +# CONFIG_SENSORS_INA3221 is not set +# CONFIG_SENSORS_TC74 is not set +# CONFIG_SENSORS_THMC50 is not set +# CONFIG_SENSORS_TMP102 is not set +# CONFIG_SENSORS_TMP103 is not set +# CONFIG_SENSORS_TMP108 is not set +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_TMP513 is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_W83773G is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83795 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_NETLINK=y +# CONFIG_THERMAL_STATISTICS is not set +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_OF=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y +# CONFIG_THERMAL_GOV_BANG_BANG is not set +# CONFIG_THERMAL_GOV_USER_SPACE is not set +# CONFIG_CPU_THERMAL is not set +CONFIG_THERMAL_EMULATION=y +# CONFIG_THERMAL_MMIO is not set +CONFIG_CV181X_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y +CONFIG_WATCHDOG_OPEN_TIMEOUT=0 +# CONFIG_WATCHDOG_SYSFS is not set + +# +# Watchdog Pretimeout Governors +# +# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +# CONFIG_GPIO_WATCHDOG is not set +# CONFIG_XILINX_WATCHDOG is not set +# CONFIG_ZIIRAVE_WATCHDOG is not set +# CONFIG_CADENCE_WATCHDOG is not set +# CONFIG_DW_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set +CONFIG_ICE_WDT=y +# CONFIG_MEN_A21_WDT is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_ACT8945A is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_AS3722 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_ATMEL_FLEXCOM is not set +# CONFIG_MFD_ATMEL_HLCDC is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set +# CONFIG_MFD_AXP20X_I2C is not set +# CONFIG_MFD_MADERA is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_GATEWORKS_GSC is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_MP2629 is not set +# CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_MFD_IQS62X is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77620 is not set +# CONFIG_MFD_MAX77650 is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6360 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_RK808 is not set +# CONFIG_MFD_RN5T618 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_TI_LMU is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TI_LP87565 is not set +# CONFIG_MFD_TPS65218 is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_LOCHNAGAR is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_ROHM_BD718XX is not set +# CONFIG_MFD_ROHM_BD70528 is not set +# CONFIG_MFD_ROHM_BD71828 is not set +# CONFIG_MFD_STPMIC1 is not set +# CONFIG_MFD_STMFX is not set +# CONFIG_MFD_INTEL_M10_BMC is not set +# end of Multifunction device drivers + +# CONFIG_REGULATOR is not set +# CONFIG_RC_CORE is not set +# CONFIG_MEDIA_CEC_SUPPORT is not set +# CONFIG_MEDIA_SUPPORT is not set + +# +# Graphics support +# +# CONFIG_DRM is not set + +# +# ARM devices +# +# end of ARM devices + +# +# Frame buffer Devices +# +CONFIG_FB_CMDLINE=y +CONFIG_FB_NOTIFY=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_EFI is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_SMSCUFX is not set +# CONFIG_FB_UDL is not set +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +CONFIG_FB_SIMPLE=y +# CONFIG_FB_SSD1307 is not set +CONFIG_FB_CVITEK=m +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +# end of Backlight & LCD device support + +# CONFIG_LOGO is not set +# end of Graphics support + +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_DMAENGINE_PCM=y +CONFIG_SND_HWDEP=y +CONFIG_SND_RAWMIDI=y +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +# CONFIG_SND_OSSEMUL is not set +CONFIG_SND_PCM_TIMER=y +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +# CONFIG_SND_SUPPORT_OLD_API is not set +# CONFIG_SND_PROC_FS is not set +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_SEQUENCER is not set +# CONFIG_SND_DRIVERS is not set + +# +# HD-Audio +# +# end of HD-Audio + +CONFIG_SND_HDA_PREALLOC_SIZE=1 +# CONFIG_SND_SPI is not set +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=y +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_6FIRE is not set +# CONFIG_SND_USB_HIFACE is not set +# CONFIG_SND_BCD2000 is not set +# CONFIG_SND_USB_POD is not set +# CONFIG_SND_USB_PODHD is not set +# CONFIG_SND_USB_TONEPORT is not set +# CONFIG_SND_USB_VARIAX is not set +CONFIG_SND_SOC=y +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +# CONFIG_SND_SOC_AMD_ACP is not set +# CONFIG_SND_ATMEL_SOC is not set +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set +# CONFIG_SND_SOC_CV1835_ADAU1372 is not set +# CONFIG_SND_SOC_CV1835_CV1835PDM is not set +# CONFIG_SND_SOC_CV182X_CV182XPDM is not set +# CONFIG_SND_SOC_CV1835_CV1835ADC is not set +# CONFIG_SND_SOC_CV1835_CV1835DAC is not set +# CONFIG_SND_SOC_CV182X_CV182XADC is not set +# CONFIG_SND_SOC_CV182X_CV182XDAC is not set +CONFIG_SND_SOC_CV182XA_CV182XAADC=y +CONFIG_SND_SOC_CV182XA_CV182XADAC=y +CONFIG_SND_CV1835_I2S=y +# CONFIG_SND_SOC_CV1835PDM is not set +# CONFIG_SND_SOC_CV1835ADC is not set +# CONFIG_SND_SOC_CV182XADC is not set +CONFIG_SND_SOC_CV182XAADC=y +# CONFIG_SND_SOC_CV1835DAC is not set +# CONFIG_SND_SOC_CV182XDAC is not set +CONFIG_SND_SOC_CV182XADAC=y +# CONFIG_SND_SOC_CV1835_CONCURRENT_I2S is not set +# CONFIG_SND_SOC_CV183x_DUMMY_CARD is not set +CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y +CONFIG_CV1835_I2S_SUBSYS=y +# CONFIG_SND_SOC_CV1835_LT9611 is not set +# CONFIG_SND_DESIGNWARE_I2S is not set + +# +# SoC Audio for Freescale CPUs +# + +# +# Common SoC Audio options for Freescale CPUs: +# +# CONFIG_SND_SOC_FSL_ASRC is not set +# CONFIG_SND_SOC_FSL_SAI is not set +# CONFIG_SND_SOC_FSL_AUDMIX is not set +# CONFIG_SND_SOC_FSL_SSI is not set +# CONFIG_SND_SOC_FSL_SPDIF is not set +# CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_FSL_MICFIL is not set +# CONFIG_SND_SOC_IMX_AUDMUX is not set +# end of SoC Audio for Freescale CPUs + +# CONFIG_SND_I2S_HI6210_I2S is not set +# CONFIG_SND_SOC_IMG is not set +# CONFIG_SND_SOC_MTK_BTCVSD is not set +# CONFIG_SND_SOC_SOF_TOPLEVEL is not set + +# +# STMicroelectronics STM32 SOC audio support +# +# end of STMicroelectronics STM32 SOC audio support + +# CONFIG_SND_SOC_XILINX_I2S is not set +# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set +# CONFIG_SND_SOC_XILINX_SPDIF is not set +# CONFIG_SND_SOC_XTFPGA_I2S is not set +# CONFIG_ZX_TDM is not set +CONFIG_SND_SOC_I2C_AND_SPI=y + +# +# CODEC drivers +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_ADAU1701 is not set +# CONFIG_SND_SOC_ADAU1761_I2C is not set +# CONFIG_SND_SOC_ADAU1761_SPI is not set +# CONFIG_SND_SOC_ADAU7002 is not set +# CONFIG_SND_SOC_ADAU7118_HW is not set +# CONFIG_SND_SOC_ADAU7118_I2C is not set +# CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4118 is not set +# CONFIG_SND_SOC_AK4458 is not set +# CONFIG_SND_SOC_AK4554 is not set +# CONFIG_SND_SOC_AK4613 is not set +# CONFIG_SND_SOC_AK4642 is not set +# CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_AK5558 is not set +# CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_BD28623 is not set +# CONFIG_SND_SOC_BT_SCO is not set +# CONFIG_SND_SOC_CS35L32 is not set +# CONFIG_SND_SOC_CS35L33 is not set +# CONFIG_SND_SOC_CS35L34 is not set +# CONFIG_SND_SOC_CS35L35 is not set +# CONFIG_SND_SOC_CS35L36 is not set +# CONFIG_SND_SOC_CS42L42 is not set +# CONFIG_SND_SOC_CS42L51_I2C is not set +# CONFIG_SND_SOC_CS42L52 is not set +# CONFIG_SND_SOC_CS42L56 is not set +# CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS4234 is not set +# CONFIG_SND_SOC_CS4265 is not set +# CONFIG_SND_SOC_CS4270 is not set +# CONFIG_SND_SOC_CS4271_I2C is not set +# CONFIG_SND_SOC_CS4271_SPI is not set +# CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS43130 is not set +# CONFIG_SND_SOC_CS4341 is not set +# CONFIG_SND_SOC_CS4349 is not set +# CONFIG_SND_SOC_CS53L30 is not set +# CONFIG_SND_SOC_CX2072X is not set +# CONFIG_SND_SOC_DA7213 is not set +# CONFIG_SND_SOC_DMIC is not set +# CONFIG_SND_SOC_ES7134 is not set +# CONFIG_SND_SOC_ES7241 is not set +# CONFIG_SND_SOC_ES8316 is not set +# CONFIG_SND_SOC_ES8328_I2C is not set +# CONFIG_SND_SOC_ES8328_SPI is not set +# CONFIG_SND_SOC_GTM601 is not set +# CONFIG_SND_SOC_INNO_RK3036 is not set +# CONFIG_SND_SOC_MAX98088 is not set +# CONFIG_SND_SOC_MAX98357A is not set +# CONFIG_SND_SOC_MAX98504 is not set +# CONFIG_SND_SOC_MAX9867 is not set +# CONFIG_SND_SOC_MAX98927 is not set +# CONFIG_SND_SOC_MAX98373_I2C is not set +# CONFIG_SND_SOC_MAX98390 is not set +# CONFIG_SND_SOC_MAX9860 is not set +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set +# CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM1789_I2C is not set +# CONFIG_SND_SOC_PCM179X_I2C is not set +# CONFIG_SND_SOC_PCM179X_SPI is not set +# CONFIG_SND_SOC_PCM186X_I2C is not set +# CONFIG_SND_SOC_PCM186X_SPI is not set +# CONFIG_SND_SOC_PCM3060_I2C is not set +# CONFIG_SND_SOC_PCM3060_SPI is not set +# CONFIG_SND_SOC_PCM3168A_I2C is not set +# CONFIG_SND_SOC_PCM3168A_SPI is not set +# CONFIG_SND_SOC_PCM512x_I2C is not set +# CONFIG_SND_SOC_PCM512x_SPI is not set +# CONFIG_SND_SOC_RK3328 is not set +# CONFIG_SND_SOC_RT5616 is not set +# CONFIG_SND_SOC_RT5631 is not set +# CONFIG_SND_SOC_SGTL5000 is not set +# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set +# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set +# CONFIG_SND_SOC_SPDIF is not set +# CONFIG_SND_SOC_SSM2305 is not set +# CONFIG_SND_SOC_SSM2602_SPI is not set +# CONFIG_SND_SOC_SSM2602_I2C is not set +# CONFIG_SND_SOC_SSM4567 is not set +# CONFIG_SND_SOC_STA32X is not set +# CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set +# CONFIG_SND_SOC_TAS2552 is not set +# CONFIG_SND_SOC_TAS2562 is not set +# CONFIG_SND_SOC_TAS2764 is not set +# CONFIG_SND_SOC_TAS2770 is not set +# CONFIG_SND_SOC_TAS5086 is not set +# CONFIG_SND_SOC_TAS571X is not set +# CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TAS6424 is not set +# CONFIG_SND_SOC_TDA7419 is not set +# CONFIG_SND_SOC_TFA9879 is not set +# CONFIG_SND_SOC_TLV320AIC23_I2C is not set +# CONFIG_SND_SOC_TLV320AIC23_SPI is not set +# CONFIG_SND_SOC_TLV320AIC31XX is not set +# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set +# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set +# CONFIG_SND_SOC_TLV320AIC3X is not set +# CONFIG_SND_SOC_TLV320ADCX140 is not set +# CONFIG_SND_SOC_TS3A227E is not set +# CONFIG_SND_SOC_TSCS42XX is not set +# CONFIG_SND_SOC_TSCS454 is not set +# CONFIG_SND_SOC_UDA1334 is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8523 is not set +# CONFIG_SND_SOC_WM8524 is not set +# CONFIG_SND_SOC_WM8580 is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8728 is not set +# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8737 is not set +# CONFIG_SND_SOC_WM8741 is not set +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8770 is not set +# CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8782 is not set +# CONFIG_SND_SOC_WM8804_I2C is not set +# CONFIG_SND_SOC_WM8804_SPI is not set +# CONFIG_SND_SOC_WM8903 is not set +# CONFIG_SND_SOC_WM8904 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8962 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8978 is not set +# CONFIG_SND_SOC_WM8985 is not set +# CONFIG_SND_SOC_ZL38060 is not set +# CONFIG_SND_SOC_ZX_AUD96P22 is not set +# CONFIG_SND_SOC_MAX9759 is not set +# CONFIG_SND_SOC_MT6351 is not set +# CONFIG_SND_SOC_MT6358 is not set +# CONFIG_SND_SOC_MT6660 is not set +# CONFIG_SND_SOC_NAU8540 is not set +# CONFIG_SND_SOC_NAU8810 is not set +# CONFIG_SND_SOC_NAU8822 is not set +# CONFIG_SND_SOC_NAU8824 is not set +# CONFIG_SND_SOC_TPA6130A2 is not set +# end of CODEC drivers + +# CONFIG_SND_SIMPLE_CARD is not set +# CONFIG_SND_AUDIO_GRAPH_CARD is not set + +# +# HID support +# +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +# CONFIG_HIDRAW is not set +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACCUTOUCH is not set +# CONFIG_HID_ACRUX is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_APPLEIR is not set +# CONFIG_HID_AUREAL is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_BETOP_FF is not set +# CONFIG_HID_CHERRY is not set +# CONFIG_HID_CHICONY is not set +# CONFIG_HID_COUGAR is not set +# CONFIG_HID_MACALLY is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CMEDIA is not set +# CONFIG_HID_CREATIVE_SB0540 is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_ELO is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set +# CONFIG_HID_GLORIOUS is not set +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_VIVALDI is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_VIEWSONIC is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_ICADE is not set +# CONFIG_HID_ITE is not set +# CONFIG_HID_JABRA is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LENOVO is not set +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MALTRON is not set +# CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_REDRAGON is not set +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTI is not set +# CONFIG_HID_NTRIG is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PENMOUNT is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_RETRODE is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAITEK is not set +# CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEAM is not set +# CONFIG_HID_STEELSERIES is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_UDRAW_PS3 is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_ALPS is not set +# CONFIG_HID_MCP2221 is not set +# end of Special HID drivers + +# +# USB HID support +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +# CONFIG_USB_HIDDEV is not set +# end of USB HID support + +# +# I2C HID support +# +# CONFIG_I2C_HID is not set +# end of I2C HID support +# end of HID support + +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +# CONFIG_USB_ULPI_BUS is not set +# CONFIG_USB_CONN_GPIO is not set +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_FEW_INIT_RETRIES is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG_PRODUCTLIST is not set +# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set +CONFIG_USB_AUTOSUSPEND_DELAY=2 +# CONFIG_USB_MON is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_XHCI_HCD is not set +# CONFIG_USB_EHCI_HCD is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_MAX3421_HCD is not set +# CONFIG_USB_OHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HCD_TEST_MODE is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_UAS is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USBIP_CORE is not set +# CONFIG_USB_CDNS3 is not set +# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_DWC3 is not set +CONFIG_USB_DWC2=y +# CONFIG_USB_DWC2_HOST is not set + +# +# Gadget/Dual-role mode requires USB Gadget support to be enabled +# +# CONFIG_USB_DWC2_PERIPHERAL is not set +CONFIG_USB_DWC2_DUAL_ROLE=y +# CONFIG_USB_DWC2_DEBUG is not set +# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set +# CONFIG_USB_CHIPIDEA is not set +# CONFIG_USB_ISP1760 is not set +# CONFIG_USB_CVITEK_DRD is not set +# CONFIG_USB_CVITEK_GADGET is not set + +# +# Platform Glue Driver Support +# + +# +# USB port drivers +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_APPLE_MFI_FASTCHARGE is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_EZUSB_FX2 is not set +# CONFIG_USB_HUB_USB251XB is not set +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_HSIC_USB4604 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +# CONFIG_USB_CHAOSKEY is not set + +# +# USB Physical Layer drivers +# +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +# end of USB Physical Layer drivers + +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +# CONFIG_U_SERIAL_CONSOLE is not set + +# +# USB Peripheral Controller +# +# CONFIG_USB_FOTG210_UDC is not set +# CONFIG_USB_GR_UDC is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +# CONFIG_USB_SNP_UDC_PLAT is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_BDC_UDC is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_GADGET_XILINX is not set +# CONFIG_USB_MAX3420_UDC is not set +# CONFIG_USB_DUMMY_HCD is not set +# end of USB Peripheral Controller + +CONFIG_USB_LIBCOMPOSITE=y +CONFIG_USB_F_ACM=y +CONFIG_USB_U_SERIAL=y +CONFIG_USB_U_ETHER=y +CONFIG_USB_U_AUDIO=y +CONFIG_USB_F_SERIAL=y +CONFIG_USB_F_NCM=y +CONFIG_USB_F_RNDIS=y +CONFIG_USB_F_MASS_STORAGE=y +CONFIG_USB_F_UAC1=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +# CONFIG_USB_CONFIGFS_OBEX is not set +CONFIG_USB_CONFIGFS_NCM=y +# CONFIG_USB_CONFIGFS_ECM is not set +# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set +CONFIG_USB_CONFIGFS_RNDIS=y +# CONFIG_USB_CONFIGFS_EEM is not set +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +# CONFIG_USB_CONFIGFS_F_LB_SS is not set +# CONFIG_USB_CONFIGFS_F_FS is not set +CONFIG_USB_CONFIGFS_F_UAC1=y +# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set +# CONFIG_USB_CONFIGFS_F_UAC2 is not set +# CONFIG_USB_CONFIGFS_F_MIDI is not set +# CONFIG_USB_CONFIGFS_F_HID is not set +# CONFIG_USB_CONFIGFS_F_PRINTER is not set + +# +# USB Gadget precomposed configurations +# +# CONFIG_USB_ZERO is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_ETH is not set +# CONFIG_USB_G_NCM is not set +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FUNCTIONFS is not set +# CONFIG_USB_MASS_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_ACM_MS is not set +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_G_HID is not set +# CONFIG_USB_G_DBGP is not set +# CONFIG_USB_RAW_GADGET is not set +# end of USB Gadget precomposed configurations + +# CONFIG_TYPEC is not set +CONFIG_USB_ROLE_SWITCH=y +CONFIG_MMC=y +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SIMPLE=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_SDHCI_OF_ARASAN is not set +# CONFIG_MMC_SDHCI_OF_ASPEED is not set +# CONFIG_MMC_SDHCI_OF_AT91 is not set +# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set +# CONFIG_MMC_SDHCI_OF_LIGHT_MPW is not set +# CONFIG_MMC_SDHCI_CADENCE is not set +# CONFIG_MMC_SDHCI_F_SDH30 is not set +# CONFIG_MMC_SDHCI_MILBEAUT is not set +CONFIG_MMC_SDHCI_CVI=y +# CONFIG_MMC_SPI is not set +# CONFIG_MMC_DW is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MMC_USDHI6ROL0 is not set +# CONFIG_MMC_CQHCI is not set +# CONFIG_MMC_HSQ is not set +# CONFIG_MMC_MTK is not set +# CONFIG_MMC_SDHCI_XENON is not set +# CONFIG_MMC_SDHCI_OMAP is not set +# CONFIG_MMC_SDHCI_AM654 is not set +# CONFIG_MEMSTICK is not set +# CONFIG_NEW_LEDS is not set +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_EDAC_SUPPORT=y +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABEOZ9 is not set +# CONFIG_RTC_DRV_ABX80X is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_HYM8563 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_ISL12026 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF85363 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8010 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3028 is not set +# CONFIG_RTC_DRV_RV3032 is not set +# CONFIG_RTC_DRV_RV8803 is not set +# CONFIG_RTC_DRV_SD3078 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1302 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1343 is not set +# CONFIG_RTC_DRV_DS1347 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_MAX6916 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RX4581 is not set +# CONFIG_RTC_DRV_RX6110 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_PCF2123 is not set +# CONFIG_RTC_DRV_MCP795 is not set +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1685_FAMILY is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +# CONFIG_RTC_DRV_EFI is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_DRV_ZYNQMP is not set + +# +# on-CPU RTC drivers +# +# CONFIG_RTC_DRV_CADENCE is not set +# CONFIG_RTC_DRV_FTRTC010 is not set +# CONFIG_RTC_DRV_R7301 is not set + +# +# HID Sensor RTC drivers +# +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y +# CONFIG_ALTERA_MSGDMA is not set +# CONFIG_DW_AXI_DMAC is not set +# CONFIG_FSL_EDMA is not set +# CONFIG_INTEL_IDMA64 is not set +# CONFIG_XILINX_ZYNQMP_DPDMA is not set +# CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_HIDMA is not set +# CONFIG_DW_DMAC is not set +# CONFIG_SF_PDMA is not set +CONFIG_DW_DMAC_CVITEK=y + +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_DMATEST is not set + +# +# DMABUF options +# +# CONFIG_SYNC_FILE is not set +CONFIG_UDMABUF=y +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_SELFTESTS is not set +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_HEAPS_SYSTEM=y +# CONFIG_DMABUF_HEAPS_CMA is not set +# end of DMABUF options + +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VDPA is not set +CONFIG_VHOST_MENU=y +# CONFIG_VHOST_NET is not set +# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set + +# +# Microsoft Hyper-V guest support +# +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +CONFIG_STAGING=y +# CONFIG_PRISM2_USB is not set +# CONFIG_COMEDI is not set +# CONFIG_RTLLIB is not set +# CONFIG_RTL8723BS is not set +# CONFIG_R8712U is not set +# CONFIG_R8188EU is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# CONFIG_ASHMEM is not set +CONFIG_ION=y +CONFIG_ION_SYSTEM_HEAP=y +CONFIG_ION_CARVEOUT_HEAP=y +# CONFIG_ION_CHUNK_HEAP is not set +CONFIG_ION_CMA_HEAP=y +CONFIG_ION_CVITEK=y +# end of Android + +# CONFIG_STAGING_BOARD is not set +# CONFIG_LTE_GDM724X is not set +# CONFIG_GS_FPGABOOT is not set +# CONFIG_UNISYSSPAR is not set +# CONFIG_FB_TFT is not set +# CONFIG_KS7010 is not set +# CONFIG_PI433 is not set + +# +# Gasket devices +# +# end of Gasket devices + +# CONFIG_XIL_AXIS_FIFO is not set +# CONFIG_FIELDBUS_DEV is not set +# CONFIG_GOLDFISH is not set +CONFIG_HAVE_CLK=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y +# CONFIG_COMMON_CLK_MAX9485 is not set +# CONFIG_COMMON_CLK_SI5341 is not set +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI544 is not set +# CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_CDCE925 is not set +# CONFIG_COMMON_CLK_CS2000_CP is not set +# CONFIG_COMMON_CLK_PWM is not set +# CONFIG_COMMON_CLK_VC5 is not set +# CONFIG_COMMON_CLK_FIXED_MMIO is not set +# CONFIG_CLK_SIFIVE is not set +CONFIG_COMMON_CLK_CVITEK=y +# CONFIG_COMMON_CLK_CV1832_TPU_500M is not set +# CONFIG_HWSPINLOCK is not set + +# +# Clock Source drivers +# +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_RISCV_TIMER=y +# CONFIG_MICROCHIP_PIT64B is not set +# end of Clock Source drivers + +# CONFIG_MAILBOX is not set +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +# CONFIG_RPMSG_VIRTIO is not set +# end of Rpmsg drivers + +# CONFIG_SOUNDWIRE is not set + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +# end of Amlogic SoC drivers + +# +# Aspeed SoC drivers +# +# end of Aspeed SoC drivers + +# +# Broadcom SoC drivers +# +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# end of NXP/Freescale QorIQ SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# Qualcomm SoC drivers +# +# end of Qualcomm SoC drivers + +# CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# CONFIG_XILINX_VCU is not set +# end of Xilinx SoC drivers + +# +# CVITEK SoC drivers +# +CONFIG_CV1835_SYSDMA_REMAP=y +CONFIG_CVI_WIFI_PIN=y +# CONFIG_CVI_BT_PIN is not set +CONFIG_CVI_MAILBOX=y +# end of CVITEK SoC drivers +# end of SOC (System On Chip) specific Drivers + +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set +CONFIG_PWM=y +CONFIG_PWM_SYSFS=y +# CONFIG_PWM_DEBUG is not set +# CONFIG_PWM_FSL_FTM is not set +# CONFIG_PWM_PCA9685 is not set +# CONFIG_PWM_SIFIVE is not set + +# +# IRQ chip support +# +CONFIG_IRQCHIP=y +# CONFIG_AL_FIC is not set +CONFIG_RISCV_INTC=y +CONFIG_SIFIVE_PLIC=y +# end of IRQ chip support + +# CONFIG_IPACK_BUS is not set +CONFIG_RESET_CONTROLLER=y +# CONFIG_RESET_BRCMSTB_RESCAL is not set +# CONFIG_RESET_INTEL_GW is not set +# CONFIG_RESET_TI_SYSCON is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_USB_LGM_PHY is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_PHY_CADENCE_TORRENT is not set +# CONFIG_PHY_CADENCE_DPHY is not set +# CONFIG_PHY_CADENCE_SIERRA is not set +# CONFIG_PHY_CADENCE_SALVO is not set +# CONFIG_PHY_FSL_IMX8MQ_USB is not set +# CONFIG_PHY_MIXEL_MIPI_DPHY is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_MAPPHONE_MDM6600 is not set +# CONFIG_PHY_OCELOT_SERDES is not set +# CONFIG_PHY_SAMSUNG_USB2 is not set +# end of PHY Subsystem + +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set +# CONFIG_RAS is not set + +# +# Android +# +CONFIG_ANDROID=y +# CONFIG_ANDROID_BINDER_IPC is not set +# end of Android + +# CONFIG_LIBNVDIMM is not set +# CONFIG_DAX is not set +CONFIG_NVMEM=y +CONFIG_NVMEM_SYSFS=y + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# end of HW tracing support + +# CONFIG_FPGA is not set +# CONFIG_FSI is not set +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# CONFIG_MOST is not set +CONFIG_EFUSE=y +CONFIG_CV181X_EFUSE=y +# end of Device Drivers + +# +# File systems +# +# CONFIG_VALIDATE_FS_PARSER is not set +CONFIG_FS_IOMAP=y +# CONFIG_EXT2_FS is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT2=y +# CONFIG_EXT4_FS_POSIX_ACL is not set +# CONFIG_EXT4_FS_SECURITY is not set +CONFIG_EXT4_DEBUG=y +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_F2FS_FS is not set +# CONFIG_FS_DAX is not set +# CONFIG_EXPORTFS_BLOCK_OPS is not set +CONFIG_FILE_LOCKING=y +# CONFIG_MANDATORY_FILE_LOCKING is not set +# CONFIG_FS_ENCRYPTION is not set +# CONFIG_FS_VERITY is not set +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_FUSE_FS is not set +# CONFIG_OVERLAY_FS is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/EXFAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set +# CONFIG_EXFAT_FS is not set +# CONFIG_NTFS_FS is not set +# end of DOS/FAT/EXFAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +# CONFIG_PROC_KCORE is not set +CONFIG_PROC_SYSCTL=y +# CONFIG_PROC_PAGE_MONITOR is not set +# CONFIG_PROC_CHILDREN is not set +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_TMPFS_XATTR is not set +# CONFIG_TMPFS_INODE64 is not set +# CONFIG_HUGETLBFS is not set +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_CONFIGFS_FS=y +CONFIG_EFIVAR_FS=m +# end of Pseudo filesystems + +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +# CONFIG_SQUASHFS_XATTR is not set +# CONFIG_SQUASHFS_ZLIB is not set +CONFIG_SQUASHFS_LZ4=y +# CONFIG_SQUASHFS_LZO is not set +CONFIG_SQUASHFS_XZ=y +# CONFIG_SQUASHFS_ZSTD is not set +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_EROFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V2=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_DISABLE_UDP_SUPPORT=y +# CONFIG_NFSD is not set +CONFIG_GRACE_PERIOD=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_CEPH_FS is not set +# CONFIG_CIFS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=y +CONFIG_NLS_ISO8859_3=y +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +# CONFIG_NLS_UTF8 is not set +# CONFIG_DLM is not set +# CONFIG_UNICODE is not set +# end of File systems + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_KEYS_REQUEST_CACHE is not set +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +# CONFIG_HARDENED_USERCOPY is not set +# CONFIG_STATIC_USERMODEHELPER is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,bpf" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +# end of Memory initialization +# end of Kernel hardening options +# end of Security options + +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=y +CONFIG_CRYPTO_ACOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_CRYPTD is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Public-key cryptography +# +CONFIG_CRYPTO_RSA=y +# CONFIG_CRYPTO_DH is not set +CONFIG_CRYPTO_ECC=y +CONFIG_CRYPTO_ECDH=y +# CONFIG_CRYPTO_ECRDSA is not set +# CONFIG_CRYPTO_SM2 is not set +# CONFIG_CRYPTO_CURVE25519 is not set + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_SEQIV is not set +# CONFIG_CRYPTO_ECHAINIV is not set + +# +# Block modes +# +# CONFIG_CRYPTO_CBC is not set +# CONFIG_CRYPTO_CFB is not set +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_ESSIV is not set + +# +# Hash modes +# +CONFIG_CRYPTO_CMAC=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_XXHASH is not set +# CONFIG_CRYPTO_BLAKE2B is not set +# CONFIG_CRYPTO_BLAKE2S is not set +# CONFIG_CRYPTO_CRCT10DIF is not set +# CONFIG_CRYPTO_GHASH is not set +# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_MD4 is not set +# CONFIG_CRYPTO_MD5 is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +# CONFIG_CRYPTO_SHA1 is not set +CONFIG_CRYPTO_SHA256=y +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_STREEBOG is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SM4 is not set +# CONFIG_CRYPTO_TWOFISH is not set + +# +# Compression +# +# CONFIG_CRYPTO_DEFLATE is not set +CONFIG_CRYPTO_LZO=m +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_DRBG_HMAC=y +# CONFIG_CRYPTO_DRBG_HASH is not set +# CONFIG_CRYPTO_DRBG_CTR is not set +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_JITTERENTROPY=y +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +# CONFIG_CRYPTO_USER_API_RNG is not set +# CONFIG_CRYPTO_USER_API_AEAD is not set +CONFIG_CRYPTO_HASH_INFO=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_AES=y +# CONFIG_CRYPTO_LIB_BLAKE2S is not set +# CONFIG_CRYPTO_LIB_CHACHA is not set +# CONFIG_CRYPTO_LIB_CURVE25519 is not set +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1 +# CONFIG_CRYPTO_LIB_POLY1305 is not set +# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_LIB_SHA256=y +# CONFIG_CRYPTO_HW is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set + +# +# Certificates for signature checking +# +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set +# end of Certificates for signature checking + +# +# Library routines +# +# CONFIG_PACKING is not set +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +# CONFIG_CORDIC is not set +# CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y +CONFIG_GENERIC_PCI_IOMAP=y +# CONFIG_CRC_CCITT is not set +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC64 is not set +# CONFIG_CRC4 is not set +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +# CONFIG_CRC8 is not set +CONFIG_XXHASH=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_XZ_DEC=y +# CONFIG_XZ_DEC_X86 is not set +# CONFIG_XZ_DEC_POWERPC is not set +# CONFIG_XZ_DEC_IA64 is not set +CONFIG_XZ_DEC_ARM=y +# CONFIG_XZ_DEC_ARMTHUMB is not set +# CONFIG_XZ_DEC_SPARC is not set +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_LZ4=y +CONFIG_DECOMPRESS_ZSTD=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HAS_DMA_WRITE_COMBINE=y +CONFIG_DMA_DECLARE_COHERENT=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y +CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y +CONFIG_DMA_NONCOHERENT_MMAP=y +CONFIG_DMA_COHERENT_POOL=y +CONFIG_DMA_REMAP=y +CONFIG_DMA_DIRECT_REMAP=y +CONFIG_DMA_CMA=y +# CONFIG_DMA_PERNUMA_CMA is not set + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=0 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +# CONFIG_DMA_API_DEBUG is not set +CONFIG_SGL_ALLOC=y +CONFIG_DQL=y +CONFIG_NLATTR=y +CONFIG_CLZ_TAB=y +# CONFIG_IRQ_POLL is not set +CONFIG_MPILIB=y +CONFIG_LIBFDT=y +CONFIG_OID_REGISTRY=y +CONFIG_UCS2_STRING=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_FONT_SUPPORT=y +CONFIG_FONT_8x16=y +CONFIG_FONT_AUTOSELECT=y +CONFIG_SG_POOL=y +CONFIG_ARCH_STACKWALK=y +CONFIG_SBITMAP=y +# CONFIG_STRING_SELFTEST is not set +# end of Library routines + +CONFIG_GENERIC_IOREMAP=y + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DYNAMIC_DEBUG_CORE=y +CONFIG_SYMBOLIC_ERRNAME=y +# end of printk and dmesg options + +# +# Compile-time checks and compiler options +# +# CONFIG_DEBUG_INFO is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_FRAME_WARN=2048 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +# CONFIG_HEADERS_INSTALL is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set +CONFIG_ARCH_WANT_FRAME_POINTERS=y +# CONFIG_FRAME_POINTER is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +# +# Generic Kernel Debugging Instruments +# +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_KGDB_QXFER_PKT=y +# CONFIG_KGDB is not set +# CONFIG_UBSAN is not set +# end of Generic Kernel Debugging Instruments + +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_MISC is not set + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_POISONING is not set +CONFIG_ARCH_HAS_DEBUG_WX=y +# CONFIG_DEBUG_WX is not set +CONFIG_GENERIC_PTDUMP=y +# CONFIG_PTDUMP_DEBUGFS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VM_PGTABLE is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +# CONFIG_KASAN is not set +# end of Memory Debugging + +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Oops, Lockups and Hangs +# +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +# CONFIG_SOFTLOCKUP_DETECTOR is not set +# CONFIG_DETECT_HUNG_TASK is not set +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_TEST_LOCKUP is not set +# end of Debug Oops, Lockups and Hangs + +# +# Scheduler Debugging +# +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +# end of Scheduler Debugging + +# CONFIG_DEBUG_TIMEKEEPING is not set +CONFIG_DEBUG_PREEMPT=y + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +# CONFIG_STACKTRACE is not set +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set + +# +# Debug kernel data structures +# +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# end of Debug kernel data structures + +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_SCALE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +CONFIG_RCU_TRACE=y +# CONFIG_RCU_EQS_DEBUG is not set +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_LATENCYTOP is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_TRACE_CLOCK=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +# CONFIG_FUNCTION_TRACER is not set +# CONFIG_STACK_TRACER is not set +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_HWLAT_TRACER is not set +# CONFIG_ENABLE_DEFAULT_TRACERS is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_TRACER_SNAPSHOT is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_SYNTH_EVENTS is not set +# CONFIG_TRACEPOINT_BENCHMARK is not set +# CONFIG_PREEMPTIRQ_DELAY_TEST is not set +# CONFIG_SAMPLES is not set + +# +# riscv Debugging +# + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_MIN_HEAP is not set +# CONFIG_TEST_SORT is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_STRSCPY is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_XARRAY is not set +# CONFIG_TEST_OVERFLOW is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_HASH is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_BITOPS is not set +# CONFIG_TEST_VMALLOC is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_BLACKHOLE_DEV is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_STACKINIT is not set +# CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_FREE_PAGES is not set +# CONFIG_MEMTEST is not set +# end of Kernel Testing and Coverage +# end of Kernel hacking diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/memmap.py b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/memmap.py new file mode 100644 index 0000000000..3ab8e7e174 --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/memmap.py @@ -0,0 +1,91 @@ +SIZE_1M = 0x100000 +SIZE_1K = 1024 + + +# Only attributes in class MemoryMap are generated to .h +class MemoryMap: + # No prefix "CVIMMAP_" for the items in _no_prefix[] + _no_prefix = [ + "CONFIG_SYS_TEXT_BASE" # u-boot's CONFIG_SYS_TEXT_BASE is used without CPP. + ] + + DRAM_BASE = 0x80000000 + DRAM_SIZE = 512 * SIZE_1M + + # ============== + # C906L FreeRTOS + # ============== + FREERTOS_SIZE = 2 * SIZE_1M + # FreeRTOS is at the end of DRAM + FREERTOS_ADDR = DRAM_BASE + DRAM_SIZE - FREERTOS_SIZE + FSBL_C906L_START_ADDR = FREERTOS_ADDR + + # ================================ + # Shared memory FreeRTOS <=> Linux + # ================================ + SHMEM_SIZE = 1 * SIZE_1M + SHMEM_ADDR = FREERTOS_ADDR - SHMEM_SIZE + + # ============================== + # OpenSBI | arm-trusted-firmware + # ============================== + # Monitor is at the begining of DRAM + MONITOR_ADDR = DRAM_BASE + + ATF_SIZE = 512 * SIZE_1K + OPENSBI_SIZE = 512 * SIZE_1K + OPENSBI_FDT_ADDR = MONITOR_ADDR + OPENSBI_SIZE + + # ========================= + # memory@DRAM_BASE in .dts. + # ========================= + # Ignore the area of FreeRTOS in u-boot and kernel + KERNEL_MEMORY_ADDR = DRAM_BASE + KERNEL_MEMORY_SIZE = DRAM_SIZE - FREERTOS_SIZE - SHMEM_SIZE + + # ================= + # Multimedia buffer. Used by u-boot/kernel/FreeRTOS + # ================= + ION_SIZE = 170 * SIZE_1M + H26X_BITSTREAM_SIZE = 2 * SIZE_1M + H26X_ENC_BUFF_SIZE = 0 + ISP_MEM_BASE_SIZE = 20 * SIZE_1M + FREERTOS_RESERVED_ION_SIZE = H26X_BITSTREAM_SIZE + H26X_ENC_BUFF_SIZE + ISP_MEM_BASE_SIZE + + # ION after FreeRTOS/Shared memory + ION_ADDR = SHMEM_ADDR - ION_SIZE + + # Buffers of the fast image are inside the ION buffer + H26X_BITSTREAM_ADDR = ION_ADDR + H26X_ENC_BUFF_ADDR = H26X_BITSTREAM_ADDR + H26X_BITSTREAM_SIZE + ISP_MEM_BASE_ADDR = H26X_ENC_BUFF_ADDR + H26X_ENC_BUFF_SIZE + + assert ISP_MEM_BASE_ADDR + ISP_MEM_BASE_SIZE <= ION_ADDR + ION_SIZE + + # Boot logo is after the ION buffer + # Framebuffer uses boot logo's reserved memory + BOOTLOGO_SIZE = 8000 * SIZE_1K + BOOTLOGO_ADDR = ION_ADDR - BOOTLOGO_SIZE + FRAMEBUFFER_SIZE = BOOTLOGO_SIZE + FRAMEBUFFER_ADDR = BOOTLOGO_ADDR + + # =================== + # FSBL and u-boot-2021 + # =================== + CVI_UPDATE_HEADER_SIZE = SIZE_1K + UIMAG_SIZE = 16 * SIZE_1M + + # kernel image loading buffer + UIMAG_ADDR = DRAM_BASE + 24 * SIZE_1M + CVI_UPDATE_HEADER_ADDR = UIMAG_ADDR - CVI_UPDATE_HEADER_SIZE + + # FSBL decompress buffer + FSBL_UNZIP_ADDR = UIMAG_ADDR + FSBL_UNZIP_SIZE = UIMAG_SIZE + + assert UIMAG_ADDR + UIMAG_SIZE <= BOOTLOGO_ADDR + + # u-boot's run address and entry point + CONFIG_SYS_TEXT_BASE = DRAM_BASE + 2 * SIZE_1M + # u-boot's init stack point is only used before board_init_f() + CONFIG_SYS_INIT_SP_ADDR = UIMAG_ADDR + UIMAG_SIZE diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/partition/partition_sd.xml b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/partition/partition_sd.xml new file mode 100644 index 0000000000..f3da8627c7 --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/partition/partition_sd.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/rootfs_script/clean_rootfs.sh b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/rootfs_script/clean_rootfs.sh new file mode 100755 index 0000000000..26692d889e --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/rootfs_script/clean_rootfs.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +SYSTEM_DIR=$1 +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libz* +rm -f $SYSTEM_DIR/mnt/system/lib/libz* + +rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libcvi* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libmad* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libmp3* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/3rd/libopencv* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libopencv* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvi_rtsp.so +rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libcvi_rtsp.so +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvikernel.so +rm -f $SYSTEM_DIR/mnt/system/usr/lib/*.a +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libgst* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libg* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/gstreamer-1.0/libgst* +rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libcrypto.so* +rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libssl.so* +rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libcvi_protobuf.so* +rm -f $SYSTEM_DIR/mnt/system/data/install/lib/libprotobuf-lite.so* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcviai* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvi_ispd.so* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libraw_replay.so* +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvi_ive_tpu.so* +rm -rf $SYSTEM_DIR/mnt/system/usr/lib/gio +rm -rf $SYSTEM_DIR/mnt/system/usr/lib/glib* +rm -rf $SYSTEM_DIR/mnt/system/usr/lib/gstreamer-1.0* +rm -rf $SYSTEM_DIR/mnt/system/usr/libexec* +rm -rf $SYSTEM_DIR/mnt/system/usr/bin +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcvimath.so +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcviruntime.so +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcnpy.so +rm -f $SYSTEM_DIR/mnt/system/usr/lib/libcipher.so + +rm -f $SYSTEM_DIR/mnt/system/lib/libcipher.so* +rm -f $SYSTEM_DIR/mnt/system/lib/libcvi_ispd.so* +rm -f $SYSTEM_DIR/mnt/system/lib/libraw_replay.so* +rm -f $SYSTEM_DIR/mnt/system/lib/libmad.so* +rm -f $SYSTEM_DIR/mnt/system/lib/libmp3* +rm -f $SYSTEM_DIR/mnt/system/lib/libnanomsg* + +#del 3rdparty lib +#del thttpd/libwebsockets lib +rm -f $SYSTEM_DIR/mnt/system/lib/libthttpd* +rm -f $SYSTEM_DIR/mnt/system/lib/libwebsocket* +if [ $SDK_VER = "uclibc" ] +then + #del opencv lib + rm -f $SYSTEM_DIR/mnt/system/lib/libopencv* + #del ffmpeg lib + rm -f $SYSTEM_DIR/mnt/system/lib/libav* + #save /mnt/system/lib/ openssl lib; need by ntpdate/wpa_supplicant +else + #glibc ramdisk(rootfs/common_arm/usr/lib/) has libcrypto.so and libssl.so + #del openssl + rm -f $SYSTEM_DIR/mnt/system/lib/libssl* + rm -f $SYSTEM_DIR/mnt/system/lib/libcrypto* +fi + +rm -rf $SYSTEM_DIR/etc/init.d/S23ntp +rm -rf $SYSTEM_DIR/bin/ntpd + +du -sh $SYSTEM_DIR/* |sort -rh +du -sh $SYSTEM_DIR/mnt/* |sort -rh +du -sh $SYSTEM_DIR/mnt/system/* |sort -rh +du -sh $SYSTEM_DIR/mnt/system/lib/* |sort -rh +du -sh $SYSTEM_DIR/mnt/system/data/install/* |sort -rh +du -sh $SYSTEM_DIR/usr/* |sort -rh diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/u-boot/cvi_board_init.c b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/u-boot/cvi_board_init.c new file mode 100644 index 0000000000..8a7978bbd6 --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/u-boot/cvi_board_init.c @@ -0,0 +1,80 @@ +static void set_rtc_register_for_power(void) +{ + printf("set_rtc_register_for_power\n"); + mmio_write_32(0x050260D0, 0x7); +} + +int cvi_board_init(void) +{ + // Camera + PINMUX_CONFIG(CAM_MCLK0, CAM_MCLK0); + PINMUX_CONFIG(IIC3_SCL, IIC3_SCL); + PINMUX_CONFIG(IIC3_SDA, IIC3_SDA); + PINMUX_CONFIG(PAD_MIPIRX4P, XGPIOC_3); + PINMUX_CONFIG(PAD_MIPIRX4N, XGPIOC_2); + + // I2C2 for Camera2 + PINMUX_CONFIG(IIC2_SDA, IIC2_SDA); + PINMUX_CONFIG(IIC2_SCL, IIC2_SCL); + + // LED + PINMUX_CONFIG(IIC0_SDA, XGPIOA_29); + + // I2C4 for TP + PINMUX_CONFIG(VIVO_D1, IIC4_SCL); + PINMUX_CONFIG(VIVO_D0, IIC4_SDA); + + // // SPI3 + // PINMUX_CONFIG(VIVO_D8, SPI3_SDO); + // PINMUX_CONFIG(VIVO_D7, SPI3_SDI); + // PINMUX_CONFIG(VIVO_D6, SPI3_SCK); + // PINMUX_CONFIG(VIVO_D5, SPI3_CS_X); + + // USB + PINMUX_CONFIG(USB_VBUS_EN, XGPIOB_5); + + // WIFI/BT + PINMUX_CONFIG(CLK32K, PWR_GPIO_10); + PINMUX_CONFIG(UART2_RX, UART4_RX); + PINMUX_CONFIG(UART2_TX, UART4_TX); + PINMUX_CONFIG(UART2_CTS, UART4_CTS); + PINMUX_CONFIG(UART2_RTS, UART4_RTS); + + // GPIOs + PINMUX_CONFIG(JTAG_CPU_TCK, XGPIOA_18); + PINMUX_CONFIG(JTAG_CPU_TMS, XGPIOA_19); + PINMUX_CONFIG(JTAG_CPU_TRST, XGPIOA_20); + PINMUX_CONFIG(IIC0_SCL, XGPIOA_28); + + // EPHY LEDs + PINMUX_CONFIG(PWR_WAKEUP0, EPHY_LNK_LED); + PINMUX_CONFIG(PWR_BUTTON1, EPHY_SPD_LED); + + // UART2 + PINMUX_CONFIG(VIVO_CLK, UART2_RX); + PINMUX_CONFIG(VIVO_D6, UART2_TX); + + set_rtc_register_for_power(); + return 0; +} + + +// to use set CONFIG_BOARD_LATE_INIT=y +// this didn't happen late enough, moving closer to kernel handoff +// otherwise serial connection setup gets wrecked +int board_late_init(void) +{ + // UART dividers & uart0 fix + // per 8.9.27 of sg2000_trm_en.pdf v1.01; setting UART* clock source to + // disppll (1.188GHz) and dividing by 15 (to 79.2MHz) + + volatile uint32_t *reg_div_clk_cam0_200 = (volatile uint32_t *)0x030020a8; + *reg_div_clk_cam0_200 = 0xF0109; // Set custom UART clock divider + + volatile uint32_t *uart0_dll = (volatile uint32_t *)0x04140020; + *uart0_dll = 43; + + printf("Custom UART clock settings applied in board_late_init.\n"); + + return 0; // Return 0 to indicate success +} \ No newline at end of file diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/u-boot/cvitek.h b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/u-boot/cvitek.h new file mode 100644 index 0000000000..d515dc2540 --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/u-boot/cvitek.h @@ -0,0 +1,13 @@ +/* + *VO control GPIOs + */ +#define VO_GPIO_RESET_PORT portb +#define VO_GPIO_RESET_INDEX 5 +#define VO_GPIO_RESET_ACTIVE GPIO_ACTIVE_LOW +#define VO_GPIO_PWM_PORT portb +#define VO_GPIO_PWM_INDEX 4 +#define VO_GPIO_PWM_ACTIVE GPIO_ACTIVE_HIGH +#define VO_GPIO_POWER_CT_PORT portb +#define VO_GPIO_POWER_CT_INDEX 3 +#define VO_GPIO_POWER_CT_ACTIVE GPIO_ACTIVE_HIGH + diff --git a/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/u-boot/cvitek_cv1813h_milkv_duos_ota_sd_defconfig b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/u-boot/cvitek_cv1813h_milkv_duos_ota_sd_defconfig new file mode 100644 index 0000000000..91116c49d8 --- /dev/null +++ b/build/boards/cv181x/cv1813h_milkv_duos_ota_sd/u-boot/cvitek_cv1813h_milkv_duos_ota_sd_defconfig @@ -0,0 +1,75 @@ +CONFIG_RISCV=y +CONFIG_SYS_MALLOC_F_LEN=0x2000 +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DM_GPIO=y +CONFIG_DEFAULT_DEVICE_TREE="cv181x_asic" +CONFIG_IDENT_STRING=" cvitek_cv181x" +CONFIG_ARCH_RV64I=y +CONFIG_RISCV_SMODE=y +CONFIG_TARGET_CVITEK_CV181X=y +CONFIG_DISTRO_DEFAULTS=y +CONFIG_FIT=y +CONFIG_BOOTDELAY=1 +CONFIG_SYS_PROMPT="cv181x_c906# " +CONFIG_SYS_CONFIG_NAME="cv181x-asic-ota" + +#CONFIG_ENV_SUPPORT=y +#CONFIG_SAVEENV=y +CONFIG_BOARD_LATE_INIT=n + +CONFIG_ENV_IS_IN_EXT4=y +CONFIG_ENV_EXT4_DEVICE_AND_PART="0:2" +CONFIG_ENV_EXT4_FILE="/uboot.env" +CONFIG_ENV_EXT4_INTERFACE="mmc" +CONFIG_EXT4_WRITE=y +CONFIG_ENV_SIZE=0x4000 + +CONFIG_PARTITION_TYPE_GUID=y + +#CONFIG_USE_BOOTCOMMAND=y +#CONFIG_BOOTCOMMAND="saveenv;" + +#CONFIG_ENV_IS_IN_MMC=y +#CONFIG_SYS_MMC_ENV_DEV=0 +#CONFIG_SYS_MMC_ENV_PART=2 +#CONFIG_ENV_OFFSET=0 +#CONFIG_ENV_SIZE=0x40000 +#CONFIG_ENV_SECT_SIZE=0x20000 + +#CONFIG_ENV_IS_IN_FAT=y +#CONFIG_ENV_FAT_INTERFACE="mmc" +#CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" +#CONFIG_ENV_SIZE=0x2000 +#CONFIG_SYS_REDUNDAND_ENVIRONMENT=n + +#CONFIG_FS_FAT=y +CONFIG_FAT_WRITE=y +#CONFIG_SYS_CONSOLE_ENV_OVERWRITE=y +#CONFIG_SYS_CONSOLE_IS_IN_ENV=n +#CONFIG_SPECIFY_CONSOLE_INDEX=n + + +CONFIG_CMD_GPIO=y +CONFIG_CMD_MMC=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_CVI_VO=y + +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_DWAPB_GPIO=y +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_CVITEK=y +CONFIG_MTD=y +CONFIG_PHY_CVITEK=y +CONFIG_DM_ETH=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_SYS_NS16550=y +CONFIG_SPI=y +CONFIG_DM_VIDEO=y +CONFIG_BMP_16BPP=y +CONFIG_BMP_24BPP=y +CONFIG_BMP_32BPP=y +CONFIG_LZ4=y +CONFIG_LZMA=y +# CONFIG_TOOLS_LIBCRYPTO is not set diff --git a/build/boards/cv181x/cv1813h_milkv_duos_sd/partition/partition_sd.xml b/build/boards/cv181x/cv1813h_milkv_duos_sd/partition/partition_sd.xml index 2cfc1e3822..456b950e2e 100644 --- a/build/boards/cv181x/cv1813h_milkv_duos_sd/partition/partition_sd.xml +++ b/build/boards/cv181x/cv1813h_milkv_duos_sd/partition/partition_sd.xml @@ -1,5 +1,5 @@ - + diff --git a/build/common_functions.sh b/build/common_functions.sh index a10bc4877a..6f9ed53ce8 100644 --- a/build/common_functions.sh +++ b/build/common_functions.sh @@ -9,6 +9,9 @@ # pack_system -> system.emmc / system.spinand (3rd/sdk shared libraries, spinand-ubifs/ emmc-ext4) # pack_gpt -> gpt.img (emmc only) # pack_cfg -> cfg.emmc / cfg.spinand (cofigs partition for saving configs and isp pq bin) +# pack_sd_image -> create sd card image +# pack_sd_image_gz -> create and compress sd card image +# gen_swu_ota -> creates ota update SWU file # function print_error() { @@ -252,6 +255,27 @@ function pack_sd_image popd )} +function pack_sd_image_gz +{( + pushd "$BUILD_PATH" + make sd_image_gz || return "$?" + popd +)} + +function gen_swu_ota { + local version="$1" # Capture the first argument as version + if [ -z "$version" ]; then + echo "Usage: gen_swu_ota " + return 1 + fi + + ( + pushd "$BUILD_PATH" || return 1 + make gen_swu_ota SWU_VERSION=$version || return "$?" + popd + ) +} + function pack_prog_img {( local tmp_dir diff --git a/build/milkvsetup-ota.sh b/build/milkvsetup-ota.sh new file mode 100644 index 0000000000..69f2d8ef47 --- /dev/null +++ b/build/milkvsetup-ota.sh @@ -0,0 +1,650 @@ +#!/bin/bash +function _build_default_env() +{ + # Please keep these default value!!! + BRAND=${BRAND:-cvitek} + DEBUG=${DEBUG:-0} + RELEASE_VERSION=${RELEASE_VERSION:-0} + BUILD_VERBOSE=${BUILD_VERBOSE:-1} + ATF_BL32=${ATF_BL32:-1} + UBOOT_VBOOT=${UBOOT_VBOOT:-0} + COMPRESSOR=${COMPRESSOR:-xz} + COMPRESSOR_UBOOT=${COMPRESSOR_UBOOT:-lzma} # or none to disable + MULTI_PROCESS_SUPPORT=${MULTI_PROCESS_SUPPORT:-0} + ENABLE_BOOTLOGO=${ENABLE_BOOTLOGO:-0} + TPU_REL=${TPU_REL:-0} # TPU release build + SENSOR=${SENSOR:-sony_imx327} +} + +function gettop() +{ + local TOPFILE=build/milkvsetup-ota.sh + if [ -n "$TOP" -a -f "$TOP/$TOPFILE" ] ; then + # The following circumlocution ensures we remove symlinks from TOP. + (cd "$TOP"; PWD= /bin/pwd) + else + if [ -f $TOPFILE ] ; then + # The following circumlocution (repeated below as well) ensures + # that we record the true directory name and not one that is + # faked up with symlink names. + PWD= /bin/pwd + else + local HERE=$PWD + T= + while [ \( ! \( -f $TOPFILE \) \) -a \( $PWD != "/" \) ]; do + \cd .. + T=$(PWD= /bin/pwd -P) + done + \cd "$HERE" + if [ -f "$T/$TOPFILE" ]; then + echo "$T" + fi + fi + fi +} + +function _build_fsbl_env() +{ + export FSBL_PATH +} + +function build_fsbl() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_uboot_env + _build_opensbi_env + cd "$BUILD_PATH" || return + make fsbl-build +)} + +function clean_fsbl() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_uboot_env + cd "$BUILD_PATH" || return + make fsbl-clean +)} + +function _build_atf_env() +{ + export ATF_BL32 FAKE_BL31_32 +} + +function build_atf() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_atf_env + cd "$BUILD_PATH" || return + make arm-trusted-firmware +)} + +function clean_atf() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_atf_env + cd "$BUILD_PATH" || return + make arm-trusted-firmware-clean +)} + +function _build_uboot_env() +{ + _build_atf_env + _build_fsbl_env + + export UBOOT_OUTPUT_FOLDER IMGTOOL_PATH FLASH_PARTITION_XML FIP_BIN_PATH + export UBOOT_VBOOT RELEASE_VERSION ENABLE_BOOTLOGO STORAGE_TYPE COMPRESSOR_UBOOT + export PANEL_TUNING_PARAM PANEL_LANE_NUM_TUNING_PARAM PANEL_LANE_SWAP_TUNING_PARAM +} + +function build_fip_pre() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_uboot_env + cd "$BUILD_PATH" || return + make fip-pre-merge +)} + +function build_rtos() +{( + print_notice "Run ${FUNCNAME[0]}() function" + cd "$BUILD_PATH" || return + make rtos +)} + +function clean_rtos() +{( + print_notice "Run ${FUNCNAME[0]}() function" + cd "$BUILD_PATH" || return + make rtos-clean +)} + +function menuconfig_uboot() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_uboot_env + cd "$BUILD_PATH" || return + make u-boot-menuconfig || return "$?" +)} + +function _link_uboot_logo() +{( + print_notice "Run ${FUNCNAME[0]}() function" + cd "$BUILD_PATH" || return + if [[ x"${PANEL_TUNING_PARAM}" =~ x"I80" ]]; then + ln -sf "$COMMON_TOOLS_PATH"/bootlogo/logo_320x240.BMP "$COMMON_TOOLS_PATH"/bootlogo/logo.jpg + fi +)} + + +function build_uboot() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_uboot_env + _build_opensbi_env + _link_uboot_logo + + cd "$BUILD_PATH" || return + [[ "$CHIP_ARCH" == CV182X ]] || [[ "$CHIP_ARCH" == CV183X ]] && \ + cp -f "$OUTPUT_DIR"/fip_pre/fip_pre_${ATF_KEY_SEL}.bin \ + "$OUTPUT_DIR"/fip_pre/fip_pre.bin + + make u-boot +)} + +function build_uboot_env_tools() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_uboot_env + cd "$BUILD_PATH" || return + make u-boot-env-tools +)} + +function clean_uboot() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_uboot_env + cd "$BUILD_PATH" || return + make u-boot-clean +)} + +function _build_kernel_env() +{ + export KERNEL_OUTPUT_FOLDER RAMDISK_OUTPUT_FOLDER SYSTEM_OUT_DIR +} + +function menuconfig_kernel() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_kernel_env + cd "$BUILD_PATH" || return + make kernel-menuconfig || return "$?" +)} + +function setconfig_kernel() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_kernel_env + cd "$BUILD_PATH" || return + make kernel-setconfig "SCRIPT_ARG=$1" || return "$?" +)} + +# shellcheck disable=SC2120 +function build_kernel() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_kernel_env + cd "$BUILD_PATH" || return + make kernel || return "$?" + + # generate boot.itb image. + if [[ ${1} != noitb ]]; then + pack_boot || return "$?" + fi +)} + +function clean_kernel() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_kernel_env + cd "$BUILD_PATH" || return + make kernel-clean +)} + +function build_bld() +{( + print_notice "Run ${FUNCNAME[0]}() function" + cd "$BUILD_PATH" || return + make bld +)} + +function clean_bld() +{( + print_notice "Run ${FUNCNAME[0]}() function" + cd "$BUILD_PATH" || return + make bld-clean +)} + +function _build_middleware_env() +{ + export MULTI_PROCESS_SUPPORT +} + +function build_middleware() +{( + print_notice "Run ${FUNCNAME[0]}() function" + _build_middleware_env + cd "$BUILD_PATH" || return + + make "$ROOTFS_DIR" + + mkdir -p "$SYSTEM_OUT_DIR"/usr/bin + mkdir -p "$SYSTEM_OUT_DIR"/lib + + pushd $MW_PATH + rm -rf lib + if [ -d $(echo ${CHIP_ARCH} | tr A-Z a-z)/lib_"$SDK_VER" ]; + then + ln -s $(echo ${CHIP_ARCH} | tr A-Z a-z)/lib_"$SDK_VER" lib + else + ln -s lib_"$SDK_VER" lib + fi + + if [ -d $(echo ${CHIP_ARCH} | tr A-Z a-z)/ko ]; + then + rm -rf ko + rm -rf ko_shrink + ln -s $(echo ${CHIP_ARCH} | tr A-Z a-z)/ko ko + ln -s $(echo ${CHIP_ARCH} | tr A-Z a-z)/ko_shrink ko_shrink + fi + popd + + pushd "$MW_PATH"/component/isp + make all || return "$?" + popd + + pushd "$MW_PATH"/sample + make all || return "$?" + find ./ -type f \( -iname "sample_*" ! -iname "*.*" \) -exec cp '{}' $SYSTEM_OUT_DIR/usr/bin \; + find ./ -type f \( -iname "sensor_test" \) -exec cp '{}' $SYSTEM_OUT_DIR/usr/bin \; + popd + + # copy mw lib + cp -af "$MW_PATH"/lib/*.so* "$SYSTEM_OUT_DIR"/lib + cp -af "$MW_PATH"/lib/3rd/*.so* "$SYSTEM_OUT_DIR"/lib + # copy ko + mkdir -p "$SYSTEM_OUT_DIR"/ko + if [[ "$BUILD_FOR_DEBUG" != "y" ]]; then + cp -af "$MW_PATH"/ko_shrink/* "$SYSTEM_OUT_DIR"/ko/ + else + cp -af "$MW_PATH"/ko/* "$SYSTEM_OUT_DIR"/ko/ + fi + + # add sdk version + echo "SDK_VERSION=${SDK_VER}" > "$SYSTEM_OUT_DIR"/sdk-release + if [ ! -z "${MV_BOARD// }" ]; then + echo "board=${MV_BOARD}" >> "$SYSTEM_OUT_DIR"/sdk-release + echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> "$SYSTEM_OUT_DIR"/sdk-release + echo "commit=$(git rev-parse --short HEAD)" >> "$SYSTEM_OUT_DIR"/sdk-release + echo "time=$(date +"%Y-%m-%d-%H:%M:%S")" >> "$SYSTEM_OUT_DIR"/sdk-release + fi +)} + + +function clean_middleware() +{ + print_notice "Run ${FUNCNAME[0]}() function " + pushd "$MW_PATH"/sample + make clean + popd + pushd "$MW_PATH"/component/isp + make clean + popd +} + +function build_osdrv() +{( + print_notice "Run ${FUNCNAME[0]}() ${1} function" + + cd "$BUILD_PATH" || return + make "$ROOTFS_DIR" + + local osdrv_target="$1" + if [ -z "$osdrv_target" ]; then + osdrv_target=all + fi + + pushd "$OSDRV_PATH" + make KERNEL_DIR="$KERNEL_PATH"/"$KERNEL_OUTPUT_FOLDER" INSTALL_DIR="$SYSTEM_OUT_DIR"/ko "$osdrv_target" || return "$?" + popd +)} + +function clean_osdrv() +{ + print_notice "Run ${FUNCNAME[0]}() function" + + pushd "$OSDRV_PATH" + make KERNEL_DIR="$KERNEL_PATH"/"$KERNEL_OUTPUT_FOLDER" INSTALL_DIR="$SYSTEM_OUT_DIR"/ko clean || return "$?" + popd +} + +function clean_ramdisk() +{ + rm -rf "${RAMDISK_PATH:?}"/"$RAMDISK_OUTPUT_BASE" + rm -rf "$SYSTEM_OUT_DIR" + rm -rf "$ROOTFS_DIR" +} + +function generate_uboot_cvipart() +{ + cd "$BUILD_PATH" || return + make generate_uboot_cvipart + cd ".." || return +} + +function build_all() +{ + # build bsp + # generate_uboot_cvipart || return $? + build_uboot || return $? + build_kernel || return $? + build_osdrv || return $? + build_middleware || return $? + pack_access_guard_turnkey_app || return $? + pack_ipc_turnkey_app || return $? + pack_boot || return $? + pack_cfg || return $? + pack_rootfs || return $? + pack_data + pack_system || return $? + copy_tools + pack_upgrade +} + +function clean_all() +{ + clean_uboot + clean_kernel + clean_ramdisk + clean_osdrv + clean_middleware +} + +# shellcheck disable=SC2120 +function envs_sdk_ver() +{ + if [ -n "$1" ]; then + SDK_VER="$1" + fi + + if [ "$SDK_VER" = 64bit ]; then + CROSS_COMPILE="$CROSS_COMPILE_64" + CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_64" + SYSROOT_PATH="$SYSROOT_PATH_64" + elif [ "$SDK_VER" = 32bit ]; then + CROSS_COMPILE="$CROSS_COMPILE_32" + CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_32" + SYSROOT_PATH="$SYSROOT_PATH_32" + elif [ "$SDK_VER" = uclibc ]; then + CROSS_COMPILE="$CROSS_COMPILE_UCLIBC" + CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_UCLIBC" + SYSROOT_PATH="$SYSROOT_PATH_UCLIBC" + elif [ "$SDK_VER" = glibc_riscv64 ]; then + CROSS_COMPILE="$CROSS_COMPILE_GLIBC_RISCV64" + CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_GLIBC_RISCV64" + SYSROOT_PATH="$SYSROOT_PATH_GLIBC_RISCV64" + elif [ "$SDK_VER" = musl_riscv64 ]; then + CROSS_COMPILE="$CROSS_COMPILE_MUSL_RISCV64" + CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_MUSL_RISCV64" + SYSROOT_PATH="$SYSROOT_PATH_MUSL_RISCV64" + else + echo -e "Invalid SDK_VER=${SDK_VER}" + exit 1 + fi + + TPU_OUTPUT_PATH="$OUTPUT_DIR"/tpu_"$SDK_VER" + # ramdisk packages PATH + pushd $BUILD_PATH || return $? + CVI_TARGET_PACKAGES_LIBDIR=$(make print-target-packages-libdir) + CVI_TARGET_PACKAGES_INCLUDE=$(make print-target-packages-include) + popd + export CVI_TARGET_PACKAGES_LIBDIR + export CVI_TARGET_PACKAGES_INCLUDE + + OSS_TARBALL_PATH="$TPU_OUTPUT_PATH"/third_party + TPU_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_tpu_sdk + IVE_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_ive_sdk + IVS_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_ivs_sdk + AI_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_ai_sdk + CNV_SDK_INSTALL_PATH="$TPU_OUTPUT_PATH"/cvitek_cnv_sdk + TPU_MODEL_PATH="$TPU_OUTPUT_PATH"/models + IVE_CMODEL_INSTALL_PATH="$TPU_OUTPUT_PATH"/tools/ive_cmodel +} + +function cvi_setup_env() +{ + local _tmp ret + + _build_default_env + + _tmp=$(python3 "${TOP_DIR}/build/scripts/boards_scan.py" --gen-board-env="${CHIP}_${BOARD}") + ret=$? + [[ "$ret" == 0 ]] || return "$ret" + + # shellcheck disable=SC1090 + source <(echo "${_tmp}") + + if [[ "$CHIP_ARCH" == "CV183X" ]];then + export CVIARCH="CV183X" + fi + if [[ "$CHIP_ARCH" == "CV182X" ]];then + export CVIARCH="CV182X" + fi + if [[ "$CHIP_ARCH" == "CV181X" ]];then + export CVIARCH="CV181X" + fi + if [[ "$CHIP_ARCH" == "CV180X" ]];then + export CVIARCH="CV180X" + fi + + export BRAND BUILD_VERBOSE DEBUG PROJECT_FULLNAME + export OUTPUT_DIR ATF_PATH BM_BLD_PATH OPENSBI_PATH UBOOT_PATH FREERTOS_PATH + export KERNEL_PATH RAMDISK_PATH OSDRV_PATH TOOLS_PATH COMMON_TOOLS_PATH + + PROJECT_FULLNAME="$CHIP"_"$BOARD" + + # output folder path + INSTALL_PATH="$TOP_DIR"/install + OUTPUT_DIR="$INSTALL_PATH"/soc_"$PROJECT_FULLNAME" + ROOTFS_DIR="$OUTPUT_DIR"/rootfs + SYSTEM_OUT_DIR="$OUTPUT_DIR"/rootfs/mnt/system + + # source file folders + FSBL_PATH="$TOP_DIR"/fsbl + ATF_PATH="$TOP_DIR"/arm-trusted-firmware + UBOOT_PATH="$TOP_DIR/$UBOOT_SRC" + FREERTOS_PATH="$TOP_DIR"/freertos + ALIOS_PATH="$TOP_DIR"/alios + KERNEL_PATH="$TOP_DIR"/"$KERNEL_SRC" + OSDRV_PATH="$TOP_DIR"/osdrv + RAMDISK_PATH="$TOP_DIR"/ramdisk + BM_BLD_PATH="$TOP_DIR"/bm_bld + TOOLCHAIN_PATH="$TOP_DIR"/host-tools + OSS_PATH="$TOP_DIR"/oss + OPENCV_PATH="$TOP_DIR"/opencv + APPS_PATH="$TOP_DIR"/apps + MW_PATH="$TOP_DIR"/middleware/"$MW_VER" + ISP_TUNING_PATH="$TOP_DIR"/isp_tuning + TPU_SDK_PATH="$TOP_DIR"/cviruntime + IVE_SDK_PATH="$TOP_DIR"/ive + IVS_SDK_PATH="$TOP_DIR"/ivs + CNV_SDK_PATH="$TOP_DIR"/cnv + ACCESSGUARD_PATH="$TOP_DIR"/access-guard-turnkey + IPC_APP_PATH="$TOP_DIR"/framework/applications/ipc + AI_SDK_PATH="$TOP_DIR"/cviai + CVI_PIPELINE_PATH="$TOP_DIR"/cvi_pipeline + OPENSBI_PATH="$TOP_DIR"/opensbi + TOOLS_PATH="$BUILD_PATH"/tools + COMMON_TOOLS_PATH="$TOOLS_PATH"/common + VENC_PATH="$MW_PATH"/modules/venc + IMGTOOL_PATH="$COMMON_TOOLS_PATH"/image_tool + EMMCTOOL_PATH="$COMMON_TOOLS_PATH"/emmc_tool + SCRIPTTOOL_PATH="$COMMON_TOOLS_PATH"/scripts + ROOTFSTOOL_PATH="$COMMON_TOOLS_PATH"/rootfs_tool + SPINANDTOOL_PATH="$COMMON_TOOLS_PATH"/spinand_tool + BOOTLOGO_PATH="$COMMON_TOOLS_PATH"/bootlogo/logo.jpg + + # subfolder path for buidling, chosen accroding to .gitignore rules + UBOOT_OUTPUT_FOLDER=build/"$PROJECT_FULLNAME" + RAMDISK_OUTPUT_BASE=build/"$PROJECT_FULLNAME" + KERNEL_OUTPUT_FOLDER=build/"$PROJECT_FULLNAME" + RAMDISK_OUTPUT_FOLDER="$RAMDISK_OUTPUT_BASE"/workspace + + # toolchain + export CROSS_COMPILE_64=aarch64-linux-gnu- + export CROSS_COMPILE_32=arm-linux-gnueabihf- + export CROSS_COMPILE_UCLIBC=arm-cvitek-linux-uclibcgnueabihf- + export CROSS_COMPILE_64_NONOS=aarch64-elf- + export CROSS_COMPILE_64_NONOS_RISCV64=riscv64-unknown-elf- + export CROSS_COMPILE_GLIBC_RISCV64=riscv64-unknown-linux-gnu- + export CROSS_COMPILE_MUSL_RISCV64=riscv64-unknown-linux-musl- + export CROSS_COMPILE="$CROSS_COMPILE_64" + + # toolchain path + CROSS_COMPILE_PATH_64="$TOOLCHAIN_PATH"/gcc/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu + CROSS_COMPILE_PATH_32="$TOOLCHAIN_PATH"/gcc/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf + CROSS_COMPILE_PATH_UCLIBC="$TOOLCHAIN_PATH"/gcc/arm-cvitek-linux-uclibcgnueabihf + CROSS_COMPILE_PATH_64_NONOS="$TOOLCHAIN_PATH"/gcc/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-elf + CROSS_COMPILE_PATH_64_NONOS_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-elf-x86_64 + CROSS_COMPILE_PATH_GLIBC_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-linux-x86_64 + CROSS_COMPILE_PATH_MUSL_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-linux-musl-x86_64 + CROSS_COMPILE_PATH="$CROSS_COMPILE_PATH_64" + + # add toolchain path + pathprepend "$CROSS_COMPILE_PATH_64"/bin + pathprepend "$CROSS_COMPILE_PATH_32"/bin + pathprepend "$CROSS_COMPILE_PATH_64_NONOS"/bin + pathprepend "$CROSS_COMPILE_PATH_64_NONOS_RISCV64"/bin + pathprepend "$CROSS_COMPILE_PATH_GLIBC_RISCV64"/bin + pathprepend "$CROSS_COMPILE_PATH_MUSL_RISCV64"/bin + pathappend "$CROSS_COMPILE_PATH_UCLIBC"/bin + + # sysroot + SYSROOT_PATH_64="$RAMDISK_PATH"/sysroot/sysroot-glibc-linaro-2.23-2017.05-aarch64-linux-gnu + SYSROOT_PATH_32="$RAMDISK_PATH"/sysroot/sysroot-glibc-linaro-2.23-2017.05-arm-linux-gnueabihf + SYSROOT_PATH_UCLIBC="$RAMDISK_PATH"/sysroot/sysroot-uclibc + SYSROOT_PATH_GLIBC_RISCV64="$RAMDISK_PATH"/sysroot/sysroot-glibc-riscv64 + SYSROOT_PATH_MUSL_RISCV64="$RAMDISK_PATH"/sysroot/sysroot-musl-riscv64 + SYSROOT_PATH="$SYSROOT_PATH_64" + + # envs setup for specific ${SDK_VER} + envs_sdk_ver + +# if [ "${STORAGE_TYPE}" == "spinand" ]; then +# PAGE_SUFFIX=2k +# if [ ${NANDFLASH_PAGESIZE} == 4096 ]; then +# PAGE_SUFFIX=4k +# fi + +# if [[ "$ENABLE_ALIOS" != "y" ]]; then +# pushd "$BUILD_PATH"/boards/"${CHIP_ARCH,,}"/"$PROJECT_FULLNAME"/partition/ +# ln -fs ../../../default/partition/partition_spinand_page_"$PAGE_SUFFIX".xml \ +# partition_"$STORAGE_TYPE".xml +# popd +# fi +# fi + + # configure flash partition table + if [ -z "${STORAGE_TYPE}" ]; then + FLASH_PARTITION_XML="$BUILD_PATH"/boards/default/partition/partition_none.xml + else + FLASH_PARTITION_XML="$BUILD_PATH"/boards/"${CHIP_ARCH,,}"/"$PROJECT_FULLNAME"/partition/partition_"$STORAGE_TYPE".xml + if ! [ -e "$FLASH_PARTITION_XML" ]; then + print_error "${FLASH_PARTITION_XML} does not exist!!" + return 1 + fi + fi + + export SYSTEM_OUT_DIR + export CROSS_COMPILE_PATH + # buildroot config + if [ -z "${MV_BOARD// }" ]; then + print_error "No MV_BOARD specified!" + return 1 + fi + export BR_DIR="$TOP_DIR"/buildroot-2021.05 + export BR_BOARD=${MV_BOARD}_${SDK_VER} + export BR_OVERLAY_DIR=${BR_DIR}/board/${MV_VENDOR}/${MV_BOARD}/overlay + export BR_DEFCONFIG=${BR_BOARD}_defconfig + export BR_ROOTFS_DIR="$OUTPUT_DIR"/tmp-rootfs + export BR_MV_VENDOR_DIR=${BR_DIR}/board/${MV_VENDOR} + + # Check if bootlogo is enabled in the u-boot defconfig + UBOOT_DEFCONFIG="${BUILD_PATH}/boards/${CHIP_ARCH,,}/${PROJECT_FULLNAME}/u-boot/${BRAND}_${PROJECT_FULLNAME}_defconfig" + if grep -q "CONFIG_BOOTLOGO=y" ${UBOOT_DEFCONFIG}; then + ENABLE_BOOTLOGO=1 + else + ENABLE_BOOTLOGO=0 + fi +} + +cvi_print_env() +{ + echo -e "" + echo -e "\e[1;32m====== Environment Variables ======= \e[0m\n" + echo -e " PROJECT: \e[34m$PROJECT_FULLNAME\e[0m, DDR_CFG=\e[34m$DDR_CFG\e[0m" + echo -e " CHIP_ARCH: \e[34m$CHIP_ARCH\e[0m, DEBUG=\e[34m$DEBUG\e[0m" + echo -e " SDK VERSION: \e[34m$SDK_VER\e[0m, RPC=\e[34m$MULTI_PROCESS_SUPPORT\e[0m" + echo -e " ATF options: ATF_KEY_SEL=\e[34m$ATF_KEY_SEL\e[0m, BL32=\e[34m$ATF_BL32\e[0m" + echo -e " Linux source folder:\e[34m$KERNEL_SRC\e[0m, Uboot source folder: \e[34m$UBOOT_SRC\e[0m" + echo -e " CROSS_COMPILE_PREFIX: \e[34m$CROSS_COMPILE\e[0m" + echo -e " ENABLE_BOOTLOGO: $ENABLE_BOOTLOGO" + echo -e " Flash layout xml: $FLASH_PARTITION_XML" + echo -e " Sensor tuning bin: $SENSOR_TUNING_PARAM" + echo -e " Output path: \e[33m$OUTPUT_DIR\e[0m" + echo -e "" +} + +function pack_access_guard_turnkey_app() +{ + if [[ -d "$ACCESSGUARD_PATH" ]] && [[ "$BUILD_TURNKEY_ACCESSGUARD" = "y" ]]; then + mkdir -p "$SYSTEM_OUT_DIR"/data + cp -a ${ACCESSGUARD_PATH}/install "$SYSTEM_OUT_DIR"/data/ + fi +} + +function pack_ipc_turnkey_app() +{ + if [[ -d "$IPC_APP_PATH" ]] && [[ "$BUILD_TURNKEY_IPC" = "y" ]]; then + mkdir -p "$SYSTEM_OUT_DIR"/data + cp -a ${IPC_APP_PATH}/install "$SYSTEM_OUT_DIR"/data/ + fi +} + +function print_usage() +{ + printf " -------------------------------------------------------------------------------------------------------\n" + printf " Usage:\n" + printf " (1)\33[94m menuconfig \33[0m- Use menu to configure your board.\n" + printf " ex: $ menuconfig\n\n" + printf " (2)\33[96m defconfig \$CHIP_ARCH \33[0m- List EVB boards(\$BOARD) by CHIP_ARCH.\n" + "${BUILD_PATH}/scripts/boards_scan.py" --list-chip-arch + printf " ex: $ defconfig cv183x\n\n" + printf " (3)\33[92m defconfig \$BOARD\33[0m - Choose EVB board settings.\n" + printf " ex: $ defconfig cv1835_wevb_0002a\n" + printf " ex: $ defconfig cv1826_wevb_0005a_spinand\n" + printf " ex: $ defconfig cv181x_fpga_c906\n" + printf " -------------------------------------------------------------------------------------------------------\n" +} + +TOP_DIR=$(gettop) +BUILD_PATH="$TOP_DIR/build" +export TOP_DIR BUILD_PATH +"${BUILD_PATH}/scripts/boards_scan.py" --gen-build-kconfig +"${BUILD_PATH}/scripts/gen_sensor_config.py" +"${BUILD_PATH}/scripts/gen_panel_config.py" + +# import common functions +# shellcheck source=./common_functions.sh +source "$TOP_DIR/build/common_functions.sh" + +print_usage diff --git a/build/tools/common/image_tool/mkcvipart.py b/build/tools/common/image_tool/mkcvipart.py index 189d6549d3..4e4b9480cd 100644 --- a/build/tools/common/image_tool/mkcvipart.py +++ b/build/tools/common/image_tool/mkcvipart.py @@ -136,7 +136,13 @@ def gen_cvipart_h(output, parser): for i, p in enumerate(parts): if p["label"] == "ROOTFS": of.write('#define ROOTFS_DEV "/dev/mmcblk0p%d"\n' % (i+1)) - break + print("Found ROOTFS Partition Label") + elif p["label"] == "OTAFS": + of.write('#define OTAFS_DEV "/dev/mmcblk0p%d"\n' % (i + 1)) + print("Found OTAFS Partition Label") + elif p["label"] == "OTAFS_BAK": + of.write('#define OTAFS_BAK_DEV "/dev/mmcblk0p%d"\n' % (i + 1)) + print("Found OTAFS_BAK Partition Label") elif parser.getStorage() == "none": of.write('#define PART_LAYOUT ""\n') @@ -154,9 +160,12 @@ def gen_cvipart_h(output, parser): % (parser.parts["ENV_BAK"]["offset"] * LBA_SIZE) ) of.write("#define CONFIG_SYS_REDUNDAND_ENVIRONMENT\n") - of.write( - "#define CONFIG_ENV_SIZE 0x%X\n" % parser.parts[label]["part_size"] - ) + if parser.getStorage() == "sd": + # Force 192KB ENV Size, requires a ENV Parition of at least 256KB (We can't scale the ENV size with partition, or else it won't fit) + of.write("#define CONFIG_ENV_SIZE 0x30000\n") + else: + of.write( + "#define CONFIG_ENV_SIZE 0x%X\n" % parser.parts[label]["part_size"]) # Generintg PART_ENV if parser.getStorage() == "emmc" or parser.getStorage() == "sd": diff --git a/buildroot-2021.05/configs/cvitek_cv182x_recovery_defconfig b/buildroot-2021.05/configs/cvitek_cv182x_recovery_defconfig deleted file mode 100644 index 86f52798fc..0000000000 --- a/buildroot-2021.05/configs/cvitek_cv182x_recovery_defconfig +++ /dev/null @@ -1,26 +0,0 @@ -BR2_arm=y -BR2_cortex_a53=y -BR2_ARM_FPU_NEON_VFPV4=y -BR2_TOOLCHAIN_EXTERNAL=y -BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM=y -BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y -BR2_TOOLCHAIN_EXTERNAL_GLIBC=y -BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL=y -BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL="toolchain-external-linaro-arm" -BR2_TOOLCHAIN_EXTERNAL_PREFIX="arm-linux-gnueabihf" - -BR2_TOOLCHAIN_EXTERNAL_GCC_6=y -BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y -BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y -# BR2_TOOLCHAIN_EXTERNAL_HAS_SSP_STRONG is not set -BR2_TOOLCHAIN_EXTERNAL_CXX=y -BR2_TARGET_GENERIC_HOSTNAME="cvitek" -BR2_TARGET_GENERIC_ISSUE="Welcome to CViTek" -BR2_ROOTFS_OVERLAY="board/cvitek/cv1826/recovery" -BR2_INIT_BUSYBOX=y -BR2_PACKAGE_BUSYBOX=y -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_PACKAGE_INITSCRIPTS=y - -BR2_TARGET_ROOTFS_CPIO=y -BR2_TARGET_ROOTFS_CPIO_GZIP=y diff --git a/buildroot-2021.05/configs/milkv-duos-ota-sd_musl_riscv64_defconfig b/buildroot-2021.05/configs/milkv-duos-ota-sd_musl_riscv64_defconfig new file mode 100644 index 0000000000..ec5c6dee6f --- /dev/null +++ b/buildroot-2021.05/configs/milkv-duos-ota-sd_musl_riscv64_defconfig @@ -0,0 +1,137 @@ +BR2_riscv=y +BR2_PER_PACKAGE_DIRECTORIES=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="riscv64-unknown-linux-musl" +BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TARGET_LDFLAGS="-mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d" +BR2_TARGET_GENERIC_HOSTNAME="milkv-duos-ota" +BR2_TARGET_GENERIC_ISSUE="Milk-V OTA" +BR2_TARGET_GENERIC_ROOT_PASSWD="milkv" +BR2_ROOTFS_OVERLAY="board/milkv/milkv-duos-ota-sd/overlay" +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_CVI_PINMUX=y +BR2_PACKAGE_CVI_PINMUX_SG200X=y +BR2_PACKAGE_DUO_PINMUX=y +BR2_PACKAGE_DUO_PINMUX_DUOS=y +BR2_PACKAGE_DUO_WIRINGX=y + +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="786432K" +BR2_TARGET_ROOTFS_TAR_XZ=y +BR2_PACKAGE_HOST_GENIMAGE=y + +# SWUpdate + optional config/website +BR2_PACKAGE_LIBCONFIG=y +BR2_PACKAGE_SWUPDATE=y +#BR2_PACKAGE_SWUPDATE_FILESYSTEM=y +BR2_PACKAGE_SWUPDATE_CONFIG="package/swupdate/swupdate.config" # need a better home +#BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE=y +BR2_PACKAGE_OPENSSL=y + + +BR2_PACKAGE_LIBUBOOTENV=y +BR2_PACKAGE_UBOOT_TOOLS=y + +BR2_PACKAGE_E2FSPROGS=y +BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y +#BR2_PACKAGE_PARTED=y + +BR2_PACKAGE_COREUTILS=y + +BR2_PACKAGE_CA_CERTIFICATES=y +BR2_PACKAGE_LIBOPENSSL_BIN=y +BR2_PACKAGE_LIBOPENSSL_ENGINES=y +BR2_PACKAGE_FREETYPE=y +BR2_PACKAGE_C_PERIPHERY=y +BR2_PACKAGE_LIBUSB=y +BR2_PACKAGE_LIBUSB_EXAMPLES=y +BR2_PACKAGE_JSON_C=n +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_LIBCURL_CURL=y +BR2_PACKAGE_LIBCURL_VERBOSE=y + +BR2_PACKAGE_DHCPCD=y +BR2_PACKAGE_DNSMASQ=y +BR2_PACKAGE_DROPBEAR=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF3=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y +BR2_PACKAGE_BASH_LOADABLE_EXAMPLES=y +BR2_PACKAGE_BASH_COMPLETION=y +BR2_PACKAGE_FILE=y +BR2_PACKAGE_NEOFETCH=y + +BR2_PACKAGE_KMOD=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_RFKILL=y +BR2_PACKAGE_UTIL_LINUX_UUIDD=y +BR2_PACKAGE_NANO=y + +#BR2_PACKAGE_ALSA_UTILS=y +#BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +#BR2_PACKAGE_ALSA_UTILS_AMIXER=y +#BR2_PACKAGE_ALSA_UTILS_APLAY=y +#BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y + +#BR2_PACKAGE_SOX=y +#BR2_PACKAGE_GZIP=y +#BR2_PACKAGE_P7ZIP=y +#BR2_PACKAGE_UNRAR=y +#BR2_PACKAGE_UNZIP=y +#BR2_PACKAGE_ZIP=y +#BR2_PACKAGE_ZSTD=y +#BR2_PACKAGE_FIO=y +#BR2_PACKAGE_GDB=y +#BR2_PACKAGE_LSOF=y +#BR2_PACKAGE_PV=y +#BR2_PACKAGE_SPIDEV_TEST=y +#BR2_PACKAGE_STRACE=y +#BR2_PACKAGE_STRESS_NG=y +#BR2_PACKAGE_TREE=y + +#BR2_PACKAGE_EVTEST=y +#BR2_PACKAGE_I2C_TOOLS=y + +#BR2_PACKAGE_SPI_TOOLS=y +#BR2_PACKAGE_PYTHON3=y +#BR2_PACKAGE_PYTHON3_PY_PYC=y +#BR2_PACKAGE_PYTHON_EVDEV=y +#BR2_PACKAGE_PYTHON_FREETYPE=y +#BR2_PACKAGE_PYTHON_GRPCIO=y +#BR2_PACKAGE_PYTHON_GOOGLEAPIS_COMMON_PROTOS=y +#BR2_PACKAGE_PYTHON_LXML=y +#BR2_PACKAGE_PYTHON_MODBUS_TK=y +#BR2_PACKAGE_PYTHON_NUMPY=y +#BR2_PACKAGE_PYTHON_PILLOW=y +#BR2_PACKAGE_PYTHON_PIP=y +#BR2_PACKAGE_PYTHON_PSUTIL=y +#BR2_PACKAGE_PYTHON_REQUESTS=y +#BR2_PACKAGE_PYTHON_SMBUS_CFFI=y +#BR2_PACKAGE_PYTHON_SPIDEV=y +#BR2_PACKAGE_TINYALSA=y + + + +#BR2_PACKAGE_MOSQUITTO=y +#BR2_PACKAGE_NTP=y +#BR2_PACKAGE_NTP_NTPDATE=y +#BR2_PACKAGE_NTP_NTPTIME=y + + + +#BR2_PACKAGE_HTOP=y + +#BR2_PACKAGE_TAR=y + +# BR2_PACKAGE_NANO_TINY is not set +#BR2_PACKAGE_VIM=y + + + diff --git a/buildroot-2021.05/package/genimage/0001-image-vfat-drop-b-from-mcopy.patch b/buildroot-2021.05/package/genimage/0001-image-vfat-drop-b-from-mcopy.patch deleted file mode 100644 index d1faf967ed..0000000000 --- a/buildroot-2021.05/package/genimage/0001-image-vfat-drop-b-from-mcopy.patch +++ /dev/null @@ -1,59 +0,0 @@ -From fe74ea1583cb6e2ae7d45acf35bb1bec39d400de Mon Sep 17 00:00:00 2001 -From: Michael Olbrich -Date: Sat, 10 Apr 2021 11:51:48 +0200 -Subject: [PATCH] image-vfat: drop '-b' from mcopy - -It enables the 'Batch mode'. It is optimized for huge recursive copies. This is not -really needed here and fsck.vfat complains about the resulting filesystem. - -So drop the option and expand the existing test. Fail if fsck.vfat modifies the -filesystem. - -Fixes #142 - -Signed-off-by: Michael Olbrich ---- - image-vfat.c | 4 ++-- - test/basic-images.test | 4 +++- - 2 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/image-vfat.c b/image-vfat.c -index 9f04c57..ed87b7f 100644 ---- a/image-vfat.c -+++ b/image-vfat.c -@@ -62,7 +62,7 @@ static int vfat_generate(struct image *image) - - image_info(image, "adding file '%s' as '%s' ...\n", - child->file, *target ? target : child->file); -- ret = systemp(image, "MTOOLS_SKIP_CHECK=1 %s -bsp -i '%s' '%s' '::%s'", -+ ret = systemp(image, "MTOOLS_SKIP_CHECK=1 %s -sp -i '%s' '%s' '::%s'", - get_opt("mcopy"), imageoutfile(image), - file, target); - if (ret) -@@ -72,7 +72,7 @@ static int vfat_generate(struct image *image) - return 0; - - if (!image->empty) -- ret = systemp(image, "MTOOLS_SKIP_CHECK=1 %s -bsp -i '%s' '%s'/* ::", -+ ret = systemp(image, "MTOOLS_SKIP_CHECK=1 %s -sp -i '%s' '%s'/* ::", - get_opt("mcopy"), imageoutfile(image), mountpath(image)); - return ret; - } -diff --git a/test/basic-images.test b/test/basic-images.test -index 1c96e1a..9888f49 100755 ---- a/test/basic-images.test -+++ b/test/basic-images.test -@@ -343,7 +343,9 @@ exec_test_set_prereq mkdosfs - exec_test_set_prereq mcopy - test_expect_success dd,mkdosfs,mcopy "vfat" " - run_genimage vfat.config test.vfat && -- check_size images/test.vfat 4193280 -+ fsck.fat -p images/test.vfat | tee fsck.log && -+ test_must_fail grep -q 'Filesystem was changed' fsck.log && -+ check_size images/test.vfat 4193280 && - MTOOLS_SKIP_CHECK=1 mdir -/ -f -b -i images/test.vfat / | sed -e 's;^::/;;' -e 's;/$;;' | sort > '${filelist_test}' && - check_filelist - " --- -2.25.1 - diff --git a/buildroot-2021.05/package/genimage/genimage.hash b/buildroot-2021.05/package/genimage/genimage.hash index 9f60261b53..64e88517cf 100644 --- a/buildroot-2021.05/package/genimage/genimage.hash +++ b/buildroot-2021.05/package/genimage/genimage.hash @@ -1,3 +1,3 @@ # Locally calculated -sha256 9d1d53b33309fe24ea367ea057eb689bdb8ea33cb99d796de31127ca44ccf44c genimage-14.tar.xz -sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING +sha256 ebc3f886c4d80064dd6c6d5e3c2e98e5a670078264108ce2f89ada8a2e13fedd genimage-18.tar.xz + diff --git a/buildroot-2021.05/package/genimage/genimage.mk b/buildroot-2021.05/package/genimage/genimage.mk index 1934223b23..b8ce7ff3c9 100644 --- a/buildroot-2021.05/package/genimage/genimage.mk +++ b/buildroot-2021.05/package/genimage/genimage.mk @@ -4,7 +4,7 @@ # ################################################################################ -GENIMAGE_VERSION = 14 +GENIMAGE_VERSION = 18 GENIMAGE_SOURCE = genimage-$(GENIMAGE_VERSION).tar.xz GENIMAGE_SITE = https://github.com/pengutronix/genimage/releases/download/v$(GENIMAGE_VERSION) HOST_GENIMAGE_DEPENDENCIES = host-pkgconf host-libconfuse diff --git a/buildroot-2021.05/package/swupdate/0001-diskpart-force-kernel-to-reread-partition-table.patch b/buildroot-2021.05/package/swupdate/0001-diskpart-force-kernel-to-reread-partition-table.patch deleted file mode 100644 index 5964d1b96f..0000000000 --- a/buildroot-2021.05/package/swupdate/0001-diskpart-force-kernel-to-reread-partition-table.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 305a7a5a74a612801d9df2b2efc86dd952b8c4e7 Mon Sep 17 00:00:00 2001 -From: Stefano Babic -Date: Tue, 9 Jun 2020 13:58:06 +0000 -Subject: [PATCH] diskpart: force kernel to reread partition table - -After writing a partition table to disk, the kernel should be informed -(like the partconf tool does), else it is not possible to install images -in the new created partitions. - -Signed-off-by: Stefano Babic -Signed-off-by: Joris Offouga ---- - handlers/diskpart_handler.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/handlers/diskpart_handler.c b/handlers/diskpart_handler.c -index 16adc17..372412b 100644 ---- a/handlers/diskpart_handler.c -+++ b/handlers/diskpart_handler.c -@@ -273,7 +273,8 @@ static int diskpart(struct img_type *img, - /* - * Everything done, write into disk - */ -- ret = fdisk_write_disklabel(cxt); -+ ret = fdisk_write_disklabel(cxt) | -+ fdisk_reread_partition_table(cxt); - - handler_exit: - if (fdisk_deassign_device(cxt, 0)) --- -2.25.1 - diff --git a/buildroot-2021.05/package/swupdate/0002-Shellscript-stops-before-completing.patch b/buildroot-2021.05/package/swupdate/0002-Shellscript-stops-before-completing.patch deleted file mode 100644 index d91438893b..0000000000 --- a/buildroot-2021.05/package/swupdate/0002-Shellscript-stops-before-completing.patch +++ /dev/null @@ -1,52 +0,0 @@ -From bd08e45d7b25f06da2fc6dc824146b471db5f1f4 Mon Sep 17 00:00:00 2001 -From: Stefano Babic -Date: Tue, 16 Jun 2020 10:29:55 +0200 -Subject: [PATCH] Shellscript stops before completing - -Commit 8fb94d7 reworks the way shell script are called, redirecting -stdout and stderr to SWUpdate. A shell script runs then in a child -process. Under some circumstances, SWUpdate closes the forked process -before the child process completes. - -Be sure that the child process has terminated before to go on. - -Signed-off-by: Stefano Babic -Reported-by: Piotr Piwko -Tested-by: Piotr Piwko -Signed-off-by: Joris Offouga ---- - core/pctl.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/core/pctl.c b/core/pctl.c -index 8b1c667..01ad540 100644 ---- a/core/pctl.c -+++ b/core/pctl.c -@@ -263,6 +263,7 @@ int run_system_cmd(const char *cmd) - } - } else { - int fds[2]; -+ pid_t w; - - close(stdoutpipe[PIPE_WRITE]); - close(stderrpipe[PIPE_WRITE]); -@@ -276,7 +277,6 @@ int run_system_cmd(const char *cmd) - * and from stderr (of the child process) as ERROR - */ - do { -- pid_t w; - int n1 = 0; - struct timeval tv; - fd_set readfds; -@@ -373,7 +373,7 @@ int run_system_cmd(const char *cmd) - } - } - } while (ret > 0 && n1 > 0); -- } while (!WIFEXITED(wstatus)); -+ } while (w != process_id); - - close(stdoutpipe[PIPE_READ]); - close(stderrpipe[PIPE_READ]); --- -2.25.1 - diff --git a/buildroot-2021.05/package/swupdate/swupdate.config b/buildroot-2021.05/package/swupdate/swupdate.config index a6b7a74948..bd3ae0c127 100644 --- a/buildroot-2021.05/package/swupdate/swupdate.config +++ b/buildroot-2021.05/package/swupdate/swupdate.config @@ -4,7 +4,7 @@ # CONFIG_HAVE_DOT_CONFIG=y -# +# # Swupdate Settings # @@ -14,7 +14,7 @@ CONFIG_HAVE_DOT_CONFIG=y # CONFIG_CURL is not set # CONFIG_CURL_SSL is not set # CONFIG_SYSTEMD is not set -CONFIG_DEFAULT_CONFIG_FILE="/etc/swupdate.cfg" +CONFIG_DEFAULT_CONFIG_FILE="/etc/swupdate/swupdate.cfg" CONFIG_SCRIPTS=y # CONFIG_HW_COMPATIBILITY is not set CONFIG_SW_VERSIONS_FILE="/etc/sw-versions" @@ -25,14 +25,8 @@ CONFIG_SW_VERSIONS_FILE="/etc/sw-versions" CONFIG_SOCKET_CTRL_PATH="/tmp/sockinstctrl" CONFIG_SOCKET_PROGRESS_PATH="/tmp/swupdateprog" CONFIG_SOCKET_REMOTE_HANDLER_DIRECTORY="/tmp/" - -# -# MTD support needs libmtd -# - -# -# Lua support needs a Lua interpreter -# +# CONFIG_MTD is not set +# CONFIG_LUA is not set # CONFIG_FEATURE_SYSLOG is not set # @@ -50,86 +44,45 @@ CONFIG_EXTRA_LDLIBS="" # CONFIG_DEBUG is not set # CONFIG_WERROR is not set # CONFIG_NOCLEANUP is not set - -# -# EFI Boot Guard needs libebgenv and libz -# -CONFIG_BOOTLOADER_NONE=y +# CONFIG_BOOTLOADER_EBG is not set +CONFIG_UBOOT=y +# CONFIG_BOOTLOADER_NONE is not set # CONFIG_BOOTLOADER_GRUB is not set - -# -# U-Boot support needs libubootenv, libz -# -CONFIG_SSL_IMPL_NONE=y - -# -# Image downloading support needs libcurl -# - -# -# Hash checking needs an SSL implementation -# - -# -# Image signature verification needs an SSL implementation -# - -# -# Image encryption needs an SSL implementation -# +CONFIG_UBOOT_FWENV="/etc/fw_env.config" +CONFIG_UBOOT_DEFAULTENV="/etc/u-boot-initial-env" +# CONFIG_SSL_IMPL_NONE is not set +CONFIG_SSL_IMPL_OPENSSL=y +# CONFIG_SSL_IMPL_MBEDTLS is not set +# CONFIG_DOWNLOAD is not set +CONFIG_HASH_VERIFY=y +# CONFIG_SIGNED_IMAGES is not set +# CONFIG_ENCRYPTED_IMAGES is not set # CONFIG_SURICATTA is not set CONFIG_WEBSERVER=y CONFIG_MONGOOSE=y CONFIG_MONGOOSEIPV6=y - -# -# SSL support needs an SSL implementation -# +# CONFIG_MONGOOSESSL is not set +CONFIG_GUNZIP=y +CONFIG_ZSTD=y # # Parser Features # CONFIG_LIBCONFIG=y CONFIG_PARSERROOT="" - -# -# JSON config parser support needs json-c -# +# CONFIG_JSON is not set # CONFIG_SETSWDESCRIPTION is not set # # Image Handlers # - -# -# ubivol support needs libubi -# # CONFIG_DISKPART is not set CONFIG_RAW=y # CONFIG_RDIFFHANDLER is not set +# CONFIG_READBACKHANDLER is not set # CONFIG_SHELLSCRIPTHANDLER is not set - -# -# archive support needs libarchive -# - -# -# remote handler needs zeromq -# - -# -# swuforward handler needs json-c and curl -# - -# -# SWU forwarder requires libcurl -# - -# -# swuforward handler needs json-c and curl -# +# CONFIG_ARCHIVE is not set +# CONFIG_REMOTE_HANDLER is not set +# CONFIG_SWUFORWARDER_HANDLER is not set # CONFIG_BOOTLOADERHANDLER is not set - -# -# Microcontroller handler depends on libgpiod -# +# CONFIG_UCFWHANDLER is not set diff --git a/buildroot-2021.05/package/swupdate/swupdate.hash b/buildroot-2021.05/package/swupdate/swupdate.hash index 40f978d225..f40a9428ac 100644 --- a/buildroot-2021.05/package/swupdate/swupdate.hash +++ b/buildroot-2021.05/package/swupdate/swupdate.hash @@ -1,6 +1,2 @@ # Locally calculated -sha256 132df2ff1ad41c7aabd0fbef6a23d28607cbd5cad52aab050c4822977a107486 swupdate-2020.04.tar.gz -sha256 43492b377cf2fb67942d1dd231146bd4e6578646ad13ef289297c9dd75cbc478 Licenses/Exceptions -sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 Licenses/gpl-2.0.txt -sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 Licenses/lgpl-2.1.txt -sha256 89807acf2309bd285f033404ee78581602f3cd9b819a16ac2f0e5f60ff4a473e Licenses/mit.txt +sha256 e6335e87812a98a87f1c55df03c9f4e4ef042789570002c5db120b09f64b0d86 swupdate-2022.12.tar.gz diff --git a/buildroot-2021.05/package/swupdate/swupdate.mk b/buildroot-2021.05/package/swupdate/swupdate.mk index d96a0c2e07..57776bc505 100644 --- a/buildroot-2021.05/package/swupdate/swupdate.mk +++ b/buildroot-2021.05/package/swupdate/swupdate.mk @@ -4,10 +4,10 @@ # ################################################################################ -SWUPDATE_VERSION = 2020.04 -SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION)) +SWUPDATE_VERSION = 2022.12 +SWUPDATE_SITE = https://github.com/sbabic/swupdate/archive/$(SWUPDATE_VERSION) SWUPDATE_LICENSE = GPL-2.0+ with OpenSSL exception, LGPL-2.1+, MIT -SWUPDATE_LICENSE_FILES = Licenses/Exceptions Licenses/gpl-2.0.txt \ +#SWUPDATE_LICENSE_FILES = Licenses/Exceptions Licenses/gpl-2.0.txt \ Licenses/lgpl-2.1.txt Licenses/mit.txt # swupdate uses $CROSS-cc instead of $CROSS-gcc, which is not diff --git a/device/common/br_overlay/etc/wpa_supplicant_khacks.conf b/device/common/br_overlay/etc/wpa_supplicant_khacks.conf deleted file mode 100644 index f0446dd3bd..0000000000 --- a/device/common/br_overlay/etc/wpa_supplicant_khacks.conf +++ /dev/null @@ -1,9 +0,0 @@ -ctrl_interface=/var/run/wpa_supplicant -ap_scan=1 -update_config=1 - -network={ - ssid="khacks" - psk="khacks++" - key_mgmt=WPA-PSK -} diff --git a/device/common/overlay/mnt/system/auto.sh b/device/common/overlay/mnt/system/auto.sh index c93d62d50d..93aeb9abaa 100755 --- a/device/common/overlay/mnt/system/auto.sh +++ b/device/common/overlay/mnt/system/auto.sh @@ -78,7 +78,7 @@ wait_and_set_mac() { # Wait for valid MAC addresses if ! wait_for_mac_addresses; then echo "$(date +'%Y-%m-%d %H:%M:%S') Failed to obtain valid MAC addresses, exiting" >> "$log_file" - exit 1 + #exit 1 fi # Wait for eth0 and set its MAC address @@ -86,11 +86,3 @@ wait_and_set_mac "eth0" "$mac1" # Wait for wlan0 and set its MAC address wait_and_set_mac "wlan0" "$mac2" - -# Start wpa_supplicant for wlan0 if it exists -if ip link show wlan0 > /dev/null 2>&1; then - echo "$(date +'%Y-%m-%d %H:%M:%S') Starting wpa_supplicant for wlan0..." >> "$log_file" - wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant_khacks.conf >> "$log_file" 2>&1 -else - echo "$(date +'%Y-%m-%d %H:%M:%S') wlan0 interface not available, skipping wpa_supplicant" >> "$log_file" -fi diff --git a/device/gen_swu.sh b/device/gen_swu.sh new file mode 100755 index 0000000000..e8d400c109 --- /dev/null +++ b/device/gen_swu.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Check arguments +if [ "$#" -ne 2 ]; then + echo "Usage: $0 " + exit 1 +fi + +# Arguments +ROOTFS_PATH="$1" +VERSION="$2" + +# Ensure the rootfs file exists +if [ ! -f "$ROOTFS_PATH" ]; then + echo "Error: RootFS file not found: $ROOTFS_PATH" + exit 1 +fi + +# Determine the directory and filename +ROOTFS_DIR=$(dirname "$ROOTFS_PATH") +ROOTFS_FILENAME=$(basename "$ROOTFS_PATH") + +# Define staging directory +SWU_DIR="/tmp/swu" + +# Clean up and recreate staging directory +rm -rf "$SWU_DIR" +mkdir -p "$SWU_DIR" + +# Copy and compress the rootfs +cp "$ROOTFS_PATH" "$SWU_DIR/rootfs.ext4" +gzip -f "$SWU_DIR/rootfs.ext4" + +# Generate SHA256 checksum +SHA256SUM=$(sha256sum "$SWU_DIR/rootfs.ext4.gz" | awk '{print $1}') + +# Create sw-description file +SW_DESCRIPTION="$SWU_DIR/sw-description" +cat > "$SW_DESCRIPTION" < "zbot.swu" + +# Move the SWU package to the rootfs directory +mv "$SWU_DIR/zbot.swu" "$ROOTFS_DIR/zbot.swu" + +# Cleanup temporary directory +rm -rf "$SWU_DIR" + +echo "SWU package created: $ROOTFS_DIR/zbot.swu" diff --git a/device/milkv-duos-ota-sd/Readme.md b/device/milkv-duos-ota-sd/Readme.md new file mode 100644 index 0000000000..68031ecb58 --- /dev/null +++ b/device/milkv-duos-ota-sd/Readme.md @@ -0,0 +1,132 @@ +------------------------------------ +Build ZBot OTA System +------------------------------------ +``` +source device/milkv-duos-ota-sd/boardconfig.sh +source build/milkvsetup-ota.sh +defconfig cv1813h_milkv_duos_ota_sd +clean_all +build_all + +# generate three blank ext4 filesystems +------ +dd if=/dev/zero of=install/soc_cv1813h_milkv_duos_ota_sd/env.ext4 bs=1k count=256 +mkfs.ext4 install/soc_cv1813h_milkv_duos_ota_sd/env.ext4 + +dd if=/dev/zero of=install/soc_cv1813h_milkv_duos_ota_sd/placeholder_staging.ext4 bs=1k count=300000 +mkfs.ext4 install/soc_cv1813h_milkv_duos_ota_sd/placeholder_staging.ext4 + +dd if=/dev/zero of=install/soc_cv1813h_milkv_duos_ota_sd/placeholder_data.ext4 bs=1k count=50000 +mkfs.ext4 install/soc_cv1813h_milkv_duos_ota_sd/placeholder_data.ext4 + +# should now have the following: +./install/soc_cv1813h_milkv_duos_ota_sd/env.ext4 +./install/soc_cv1813h_milkv_duos_ota_sd/placeholder_data.ext4 +./install/soc_cv1813h_milkv_duos_ota_sd/placeholder_staging.ext4 +---- + +# generate the sd image file +pack_sd_image + +# alternatively generate compressed image file for distribution +pack_sd_image_gz + +# burn image to sd +Add wpa_supplicant.conf to boot parition +``` + + +------------------------------------ +Build ZBot Main OS and perform OTA Updates +------------------------------------ +``` +source device/milkv-duos-sd/boardconfig.sh +source build/milkvsetup.sh +defconfig cv1813h_milkv_duos_sd +clean_all +build_all +pack_sd_image +gen_swu_ota +tools/zbot_updater.py update 192.168.42.1 install//zbot.swu +``` + + +------------------------------------ +Parition Table +GPT/MBR Hybrid (Boot Partition UUID Set such that Mac/Windows will mount) +------------------------------------ +Upgraded Genimage to v18 (Support UUID Partition Types and Improved Hybrid Support) +(GPT Partition Table) +├── /dev/mmcblk0p1 (boot) [EFI System Partition, FAT32, 128M, Bootable] +├── /dev/mmcblk0p2 (env) [Linux, 256K] +├── /dev/mmcblk0p3 (otafs) [Linux, EXT4, 125M] +├── /dev/mmcblk0p4 (rootfs) [Linux, 275M] +├── /dev/mmcblk0p5 (data) [Linux, 50M] +└── /dev/mmcblk0p6 (staging) [Linux, 300M] + +U-Boot Configured to Support Persistent Environment (ext4 backend via env partition) + +Added data parition to seperate from rootfs. (config, weights, data) + +------------------------------------ +OTA Environment Mechanics +------------------------------------ +``` +Key Variables +--- +rootfs=root=/dev/mmcblk0p4 rootwait rw -- default rootfs location +otafs=root=/dev/mmcblk0p3 rootwait rw -- default otafs location +root=root=/dev/mmcblk0p4 rootwait rw -- booted partition +next_boot = {otafs, rootfs} -- next boot partition + +# example (boot into otafs) +fw_setenv next_boot otafs +reboot + +boot-ota +boot-zbot +``` + +------------------------------------ +OTA Updater +------------------------------------ +``` +# OTA CLI Tool +tools/zbot_updater.py update +``` + +SWUpdate Backend (Updated to v2022.12) +- listens on port 10000 (via websocket and http) +- stages firmware, writes raw image to partition, writes files, updates microcontrollers +- handles hw compatibility, sw version rules, hash validation and compressed images. + + +--- +sw-description (generated via gen_swu_ota) +--- +``` +software = { + version = "1.01"; + description = "Zeroth01 v1.01 Update"; + hardware_compatibility = ["1.0", "1.1"]; + images = ( + { + filename = "rootfs.ext4.gz"; + device = "/dev/mmcblk0p4"; + type = "raw"; + sha256 = "2a603bae7d73c95f4bff20f775a487c1e336430a21e525777a2516c7f73d5a5f"; + compressed = "zlib"; + } + ); +} +``` + +------------------------------------ +Work in progress +------------------------------------ +- Update utility triggers rootfs to reboot into otafs for updates +- LCD / Local UI for update process (show progress, ask confirm to update etc.) +- Checking/Downloading update from github/gitlab (Zeroth team feedback) +- Move this to BR_EXTERNAL (shouldn't be entangled in buildroot source tree direclty) +- Add redundancy (u-boot env, otafs a/b, u-boot a/b) (ordered for priority) +- Security diff --git a/device/milkv-duos-ota-sd/boardconfig.sh b/device/milkv-duos-ota-sd/boardconfig.sh new file mode 100644 index 0000000000..17f4f02afb --- /dev/null +++ b/device/milkv-duos-ota-sd/boardconfig.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +export MV_BOARD=milkv-duos-ota-sd +export MV_BOARD_CPU=cv1813h +export MV_VENDOR=milkv +export MV_BUILD_ENV=milkvsetup-ota.sh +export MV_BOARD_LINK=cv1813h_milkv_duos_ota_sd + diff --git a/device/milkv-duos-ota-sd/boot-env-part/env.ext4 b/device/milkv-duos-ota-sd/boot-env-part/env.ext4 new file mode 100644 index 0000000000..4a26d35e02 Binary files /dev/null and b/device/milkv-duos-ota-sd/boot-env-part/env.ext4 differ diff --git a/device/milkv-duos-ota-sd/genimage.cfg b/device/milkv-duos-ota-sd/genimage.cfg new file mode 100644 index 0000000000..c7e7e7d5d5 --- /dev/null +++ b/device/milkv-duos-ota-sd/genimage.cfg @@ -0,0 +1,64 @@ +image boot.vfat { + vfat { + label = "zbot-boot" + files = { + "fip.bin", + "rawimages/boot.sd", + } + } + size = 128M +} + +image otafs.ext4 { + ext4 { + label = "otafs" + } + size = 125M +} + +image milkv-duos-ota-sd.img { + hdimage { + partition-table-type = "hybrid" + disk-uuid = "b0326371-955b-42e3-ad81-ad0151d813ec" + } + + partition boot { + #partition-type-uuid = "uefi" # EFI System Partition + partition-type-uuid = "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7" # Microsoft Basic Data (Use this so Mac/Windows mounts boot) + partition-type = 0x0c + bootable = "true" + image = "boot.vfat" + } + + partition env { + partition-type-uuid = "linux" + image = "env.ext4" + } + + partition otafs { + partition-type-uuid = "linux" + + image = "otafs.ext4" + } + + partition rootfs { + partition-type-uuid = "linux" + + size = 275M + } + + partition data { + partition-type-uuid = "linux" + + size = 50M + image = "placeholder_data.ext4" + } + + partition staging { + partition-type-uuid = "0FC63DAF-8483-4772-8E79-3D69D8477DE4" # Linux Filesystem + + size = 300M + image = "placeholder_staging.ext4" + } + +} diff --git a/device/milkv-duos-ota-sd/logo.jpg b/device/milkv-duos-ota-sd/logo.jpg new file mode 100644 index 0000000000..eaf575385d Binary files /dev/null and b/device/milkv-duos-ota-sd/logo.jpg differ diff --git a/device/common/br_overlay/etc/fstab b/device/milkv-duos-ota-sd/overlay/etc/fstab similarity index 84% rename from device/common/br_overlay/etc/fstab rename to device/milkv-duos-ota-sd/overlay/etc/fstab index 55ebdaea71..c9d392d8eb 100644 --- a/device/common/br_overlay/etc/fstab +++ b/device/milkv-duos-ota-sd/overlay/etc/fstab @@ -8,3 +8,5 @@ tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 sysfs /sys sysfs defaults 0 0 debug /sys/kernel/debug debugfs defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 0 +/dev/mmcblk0p2 /bootenv auto defaults 0 0 +/dev/mmcblk0p6 /staging auto defaults 0 0 diff --git a/device/milkv-duos-ota-sd/overlay/etc/fw_env.config b/device/milkv-duos-ota-sd/overlay/etc/fw_env.config new file mode 100644 index 0000000000..70d57a4b47 --- /dev/null +++ b/device/milkv-duos-ota-sd/overlay/etc/fw_env.config @@ -0,0 +1,2 @@ +# u-boot ext4 192K env_size +/bootenv/uboot.env 0x0000 0x30000 \ No newline at end of file diff --git a/device/milkv-duos-ota-sd/overlay/etc/hostname b/device/milkv-duos-ota-sd/overlay/etc/hostname new file mode 100644 index 0000000000..6be71cac3b --- /dev/null +++ b/device/milkv-duos-ota-sd/overlay/etc/hostname @@ -0,0 +1 @@ +zbot-ota \ No newline at end of file diff --git a/device/milkv-duos-ota-sd/overlay/etc/init.d/S60wpa_supplicant b/device/milkv-duos-ota-sd/overlay/etc/init.d/S60wpa_supplicant new file mode 100755 index 0000000000..f610dee2fd --- /dev/null +++ b/device/milkv-duos-ota-sd/overlay/etc/init.d/S60wpa_supplicant @@ -0,0 +1,48 @@ +#!/bin/sh +log_file="/var/log/wpa_supplicant_start.log" + +start_wpa_supplicant() { + echo "$(date +'%Y-%m-%d %H:%M:%S') Starting wpa_supplicant script..." >> "$log_file" + + # Copy the configuration file if it exists + if [ -f /boot/wpa_supplicant.conf ]; then + cp /boot/wpa_supplicant.conf /etc/wpa_supplicant.conf + echo "$(date +'%Y-%m-%d %H:%M:%S') Copied wpa_supplicant.conf from /boot to /etc" >> "$log_file" + else + echo "$(date +'%Y-%m-%d %H:%M:%S') No wpa_supplicant.conf found on /boot. Skipping copy." >> "$log_file" + exit 0 + fi + + # Wait for wlan0 to reach the DOWN state (available and ready) + echo "$(date +'%Y-%m-%d %H:%M:%S') Waiting for wlan0 to become available..." >> "$log_file" + while ! ip link show wlan0 | grep -q "state DOWN"; do + sleep 1 + done + echo "$(date +'%Y-%m-%d %H:%M:%S') wlan0 is available in DOWN state. Continuing." >> "$log_file" + + # Start wpa_supplicant + echo "$(date +'%Y-%m-%d %H:%M:%S') Starting wpa_supplicant..." >> "$log_file" + wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf >> "$log_file" 2>&1 + if [ $? -eq 0 ]; then + echo "$(date +'%Y-%m-%d %H:%M:%S') wpa_supplicant started successfully." >> "$log_file" + else + echo "$(date +'%Y-%m-%d %H:%M:%S') Failed to start wpa_supplicant." >> "$log_file" + fi +} + +# Run the script in the background +case "$1" in +start) + ( start_wpa_supplicant ) & + ;; +stop) + echo "$(date +'%Y-%m-%d %H:%M:%S') Stopping wpa_supplicant..." >> "$log_file" + killall wpa_supplicant 2>/dev/null || echo "$(date +'%Y-%m-%d %H:%M:%S') wpa_supplicant not running." >> "$log_file" + ;; +*) + echo "Usage: $0 {start|stop}" >> "$log_file" + exit 1 + ;; +esac + +exit 0 diff --git a/device/milkv-duos-ota-sd/overlay/etc/init.d/S98swupdate b/device/milkv-duos-ota-sd/overlay/etc/init.d/S98swupdate new file mode 100755 index 0000000000..f10e4f5dcc --- /dev/null +++ b/device/milkv-duos-ota-sd/overlay/etc/init.d/S98swupdate @@ -0,0 +1,33 @@ +#!/bin/sh +# +# SWUpdate Service +case "$1" in + start) + # Ensure /staging is mounted before starting (max wait: 10 seconds) + TIMEOUT=10 + COUNT=0 + echo "Waiting for /staging to be mounted." + while ! mountpoint -q /staging && [ "$COUNT" -lt "$TIMEOUT" ]; do + echo "Waiting for /staging to be mounted... ($COUNT sec)" + sleep 1 + COUNT=$((COUNT + 1)) + done + sleep 2 + echo "Starting SWUpdate Web Server..." + TMPDIR="/staging" /usr/bin/swupdate -w "--document-root /var/www/swupdate --port 10000" & + ;; + stop) + echo "Stopping SWUpdate Web Server..." + killall swupdate + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac + +exit 0 \ No newline at end of file diff --git a/device/milkv-duos-ota-sd/overlay/etc/swupdate/swupdate.cfg b/device/milkv-duos-ota-sd/overlay/etc/swupdate/swupdate.cfg new file mode 100644 index 0000000000..e9083ae94c --- /dev/null +++ b/device/milkv-duos-ota-sd/overlay/etc/swupdate/swupdate.cfg @@ -0,0 +1,296 @@ +# SWUpdate configuration file +# +# SPDX-FileCopyrightText: 2014-2021 Stefano Babic +# SPDX-License-Identifier: CC0-1.0 +# +# This is responsible to pass configuration and parameters +# to SWUpdate. Most of configuration can be overwritten +# with command line parameters. +# + +# globals : general configuration for the installer +# +#verbose : true +# set verbose mode (Default: false) +# loglevel : integer +# level for logging from 1 (no log) to 6 +# syslog : boolean +# enable sending logs to syslog daemon +# public-key-file : string +# file with public key for +# image verification +# mtd-blacklist : list integers +# MTD devices where SWUpdate +# must not try to check for UBI filesystem. +# aes-key-file : string +# file containing the symmetric key for +# image decryption +#preupdatecmd : /bin/touch /root/pre +# command to be executed right before the update +# is installed +#postupdatecmd : /bin/touch /root/posted +# command to be executed after a successful update +# ca-path : string +# path to the Certificate Authority (PEM) +# no-downgrading : string +# not install a release older as +# no-reinstalling : string +# not install a release same as +# cert-purpose : string +# set expected certificate purpose +# [emailProtection|codeSigning] (default: emailProtection) +# forced-signer-name : string +# set expected common name of signer certificate +# select: : string +# select software images set and source (,) +# bootloader: : string +# bootloader interface to use, overruling compile-time default. +# Possible values are ebg, grub, uboot, and none for +# EFI Boot Guard, U-Boot, GRUB, and the Environment in RAM bootloader, +# respectively, given the respective bootloader support is compiled-in. +# namespace-vars : namespace used by libubootenv for application/SWUpdate persistent +# variables. This can be overridden in sw-description. +# It is one set in libubootenv configuration file. +# fwenv-config-location : path of the configuration file for libubootenv +# gen-swversions : generate a version file containing all installed (versioned) images. +globals : +{ + + verbose = true; + loglevel = 5; + #preupdatecmd = "/bin/touch /root/pre" # might use this to make sure /staging partition is empty + postupdatecmd="sleep 2; /usr/bin/fw_setenv next_boot rootfs; sleep 1; sync; reboot" + + + syslog = false; + #public-key-file = "test.pem"; + #mtd-blacklist = "0 1 2 3 4 5 6"; +}; + +# logcolors : set colors for output to stdout / stderr +# color is set indivisually for each level +# each entry is in the format +# loglevel = color:attribute +# where loglevel is one of: +# "error","warning", "info", "debug", "trace" +# and color is one of: +# "black", "red", "green", "yellow", "blue", "magenta", "cyan", "white" +# and attribute is one of: +# "normal", "bright", "dim", "underline", "blink", "reverse", "hidden" +# +# Example : +# error = "red"; +# +logcolors : { + error = "red:blink"; + trace = "green:normal"; + debug = "magenta:normal"; + warning = "yellow:underline"; +}; + +# +# download : setup for the downloader +# It requires that SWUpdate is started with -d +# +# url : string +# complete URL pointing to the SWU image of the update package +# retries : integer +# Number of retries (0=forever) +# userid : integer +# userID for Webserver process +# groupid : integer +# groupId for Webserver process +# timeout : integer +# it is the number of seconds that can be accepted without +# receiving any packets. If it elapses, the connection is +# considered broken. +# retrywait : integer +# it is the number of seconds to wait between each failed attepm. +# authentication : string +# credentials needed to get software if server +# enables Basic Auth to allow this downloading +# max-download-speed : string +# Specify maximum download speed to use. Value can be expressed as +# B/s, kB/s, M/s, G/s. Example: 512k +#download : +#{ +# authentication = "user:password"; +# retries = 3; +# timeout = 1800; +# max-download-speed = "1M"; +# retrywait = 5; +# url = "http://example.com/software.swu"; +# userid = 1000; +# groupid = 1000; +#}; + +# +# versions : list of installed artifacts +# they are used when install-if-different is set +#versions : ( +# { +# name = "uboot"; +# version = "2016.03"; +# }, +# { +# name = "kernel"; +# version = "4.4"; +# } +#); + +# +# identify section : it is just used to inform a backend about the running target +# any entry is a copule of . For example, MAC address, serial number, +# and so on. +identify : ( + { name = "versionSpC"; value = "v1.0"; }, + { name = "hwId"; value = "zerothv1"; }, + { name = "hwVersion"; value = "333"; }, + { name = "serialNo"; value = "1234567890"; }, + { name = "swCompatibility"; value = "unknown";} +); + +# +# suricatta section: setup for backend +# +# Currently, they refer to the Hawkbit agent. +# +# tenant : string +# Hawkbit tenant +# id : string +# target identifier +# url : string +# URL of the Hawkbit server +# polldelay : integer +# polling cycle (seconds) +# retry : integer +# number of retries to connect to server +# retrywait : integer +# userid : integer +# userID for Webserver process +# groupid : integer +# groupId for Webserver process +# enable : bool +# default=true +# If set to false, suricatta do not try to connect to the server +# Enable can be done then via IPC +# cafile : string +# File with Public Certificate Authority +# sslkey : string +# path of the file containing the key for SSL connection or pkcs11 URI +# ex. "pkcs11:model=ATECC608B;token=0ABC;serial=0123456789abcdef;object=device;type=private") +# sslcert : string +# path of the file containing the certificate for SSL connection or pkcs11 URI +# (ex. "pkcs11:model=ATECC608B;token=0ABC;serial=0123456789abcdef;object=device;type=cert") +# targettoken : string +# hawkBit target security token +# gatewaytoken : string +# hawkBit gateway security token +# usetokentodwl :bool +# send authentication token also to download the artefacts +# Hawkbit server checks for the token, but if a SWU is stored on a different server +# the token can be rejected if a different authentication mechanism is used. Default on. +# proxy : string +# in case the server is reached via a proxy +# ciphers : string in the format used by CURL to set the allowed ciphers suite +# This allows to disable some ciphers, for example +# ciphers = "!eNULL:!aNULL:!EXP:!LOW:!MEDIUM:!ADH:!AECDH:!IDEA:!SEED:!MD5:!SHA:!RC4:HIGH+EECDH:HIGH+EDH"; +# interface : string +# interface name (e.g. "eth0") or IP address to bind communication channel to. +# This allows to select source interface/address for outgoing traffic, if needed. +# initial-report-resend-period : integer +# Specify period between re-tryint to send initial state, specified with "-c" option, +# when connection to Hawkbit is not available. Default value is 10 seconds. +# connection-timeout : integer +# Specify server connection timeout. If no connection has been established in this +# period, libcurl will consider connection unsuccessful. +# Default value is determined by underlying libcurl implementation (300s). +# max-download-speed : string +# Specify maximum download speed to use. Value can be expressed as +# B/s, kB/s, M/s, G/s. Example: 512k + +#suricatta : +#{ +# tenant = "default"; +# id = "123456"; +# url = "http://papero.fritz.box:8080"; +# polldelay = 20; +# nocheckcert = true; +# retry = 4; +# retrywait = 200; +# loglevel = 10; +# userid = 1000; +# groupid = 1000; +# enable = true; +# initial-report-resend-period = 30; +# connection-timeout = 10; +# max-download-speed = "1M"; +#/* +# cafile = "/etc/ssl/cafile"; +# sslkey = "/etc/ssl/sslkey"; +# sslcert = "/etc/ssl/sslcert"; +# targettoken = "3bc13b476cb3962a0c63a5c92beacfh7"; +# gatewaytoken = "99616d4fae39167deddf21cd90047861"; +# usetokentodwl = false; +#*/ +#}; + +# +# webserver : setup for the embedded webserver +# see ./swupdate -h for details +# +# document_root : string +# directory to the website +# userid : integer +# userID for Webserver process +# groupid : integer +# groupId for Webserver process +# listening_ports : integer +# Webserver listening ports +# enable_directory_listing : boolean +# true to list directories +# ssl_certificate : string +# path to SSL certificat +# ssl_certificate_key : string +# path to SSL private key +# api : integer +# 1 = simple REST API for M2M communication +# 2 = WebApp with Websockets support +# global-auth-file : string +# path to the global authorization file, if any +# default = none +# auth-domain : string +# path to auth-domain, if any +# default = none +#run-postupdate : true +# run the postupdate command automatically after +# a successful update +# timeout : timeout in seconds to monitor the connection +# when an update is started. If no data is received +# during this time, connection is closed by the Webserver +# and update is aborted. + + +# TODO: This should be used to drop privledge + +#webserver : +#{ +# document_root = "./www"; +# userid = 1000; +# groupid = 1000; +# timeout = 20; +#}; + +# delta update section +# +# sslkey : string +# path of the file containing the key for SSL connection or pkcs11 URI +# (ex. "pkcs11:model=ATECC608B;token=0ABC;serial=0123456789abcdef;object=device;type=private") +# sslcert : string +# path of the file containing the certificate for SSL connection or pkcs11 URI +# (ex. "pkcs11:model=ATECC608B;token=0ABC;serial=0123456789abcdef;object=device;type=cert") +#delta : +#{ +# sslkey = "/etc/ssl/sslkey"; +# sslcert = "/etc/ssl/sslcert"; +#}; diff --git a/device/milkv-duos-ota-sd/overlay/etc/wpa_supplicant.conf b/device/milkv-duos-ota-sd/overlay/etc/wpa_supplicant.conf new file mode 100644 index 0000000000..29b123960c --- /dev/null +++ b/device/milkv-duos-ota-sd/overlay/etc/wpa_supplicant.conf @@ -0,0 +1,8 @@ +ap_scan=1 +update_config=1 + +network={ + ssid="somessid" + psk="sompsk" + key_mgmt=WPA-PSK +} \ No newline at end of file diff --git a/device/milkv-duos-ota-sd/overlay/mnt/system/usb-rndis.sh b/device/milkv-duos-ota-sd/overlay/mnt/system/usb-rndis.sh new file mode 100755 index 0000000000..06e1924d04 --- /dev/null +++ b/device/milkv-duos-ota-sd/overlay/mnt/system/usb-rndis.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +usb_en=453 +usb_select=510 + +function set_gpio() +{ + local gpio_num=$1 + local gpio_val=$2 + local gpio_path="/sys/class/gpio/gpio${gpio_num}" + + if test -d ${gpio_path}; then + echo "GPIO ${gpio_num} already exported" >> /tmp/rndis.log 2>&1 + else + echo ${gpio_num} > /sys/class/gpio/export + fi + + echo out > ${gpio_path}/direction + sleep 0.1 + echo ${gpio_val} > ${gpio_path}/value +} + +set_gpio ${usb_en} 0 +sleep 0.5 +set_gpio ${usb_select} 0 +sleep 0.5 + +/etc/uhubon.sh device >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh probe rndis >> /tmp/rndis.log 2>&1 +/etc/run_usb.sh start rndis >> /tmp/rndis.log 2>&1 + +sleep 0.5 +ifconfig usb0 192.168.42.1 + +count=`ps | grep dnsmasq | grep -v grep | wc -l` +if [ ${count} -lt 1 ] ;then + echo "/etc/init.d/S80dnsmasq start" >> /tmp/rndis.log 2>&1 + /etc/init.d/S80dnsmasq start >> /tmp/rndis.log 2>&1 +fi diff --git a/device/milkv-duos-ota-sd/overlay/mnt/system/usb.sh b/device/milkv-duos-ota-sd/overlay/mnt/system/usb.sh new file mode 120000 index 0000000000..f947e921e9 --- /dev/null +++ b/device/milkv-duos-ota-sd/overlay/mnt/system/usb.sh @@ -0,0 +1 @@ +usb-ncm.sh \ No newline at end of file diff --git a/device/milkv-duos-ota-sd/overlay/usr/bin/bt_test b/device/milkv-duos-ota-sd/overlay/usr/bin/bt_test new file mode 100755 index 0000000000..9afea9935c Binary files /dev/null and b/device/milkv-duos-ota-sd/overlay/usr/bin/bt_test differ diff --git a/device/milkv-duos-ota-sd/overlay/usr/bin/wifi_test b/device/milkv-duos-ota-sd/overlay/usr/bin/wifi_test new file mode 100755 index 0000000000..c482636239 Binary files /dev/null and b/device/milkv-duos-ota-sd/overlay/usr/bin/wifi_test differ diff --git a/device/milkv-duos-sd/genimage.cfg b/device/milkv-duos-sd/genimage.cfg index 55e9dbe72e..9ab850f64f 100644 --- a/device/milkv-duos-sd/genimage.cfg +++ b/device/milkv-duos-sd/genimage.cfg @@ -13,7 +13,7 @@ image rootfs.ext4 { ext4 { label = "rootfs" } - size = 768M + size = 275M } image milkv-duos-sd.img { diff --git a/device/milkv-duos-sd/overlay/etc/fstab b/device/milkv-duos-sd/overlay/etc/fstab new file mode 100644 index 0000000000..c9d392d8eb --- /dev/null +++ b/device/milkv-duos-sd/overlay/etc/fstab @@ -0,0 +1,12 @@ +# +/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 +debug /sys/kernel/debug debugfs defaults 0 0 +/dev/mmcblk0p1 /boot vfat defaults 0 0 +/dev/mmcblk0p2 /bootenv auto defaults 0 0 +/dev/mmcblk0p6 /staging auto defaults 0 0 diff --git a/device/milkv-duos-sd/overlay/etc/fw_env.config b/device/milkv-duos-sd/overlay/etc/fw_env.config new file mode 100644 index 0000000000..70d57a4b47 --- /dev/null +++ b/device/milkv-duos-sd/overlay/etc/fw_env.config @@ -0,0 +1,2 @@ +# u-boot ext4 192K env_size +/bootenv/uboot.env 0x0000 0x30000 \ No newline at end of file diff --git a/device/milkv-duos-sd/overlay/etc/hostname b/device/milkv-duos-sd/overlay/etc/hostname new file mode 100644 index 0000000000..65432d8314 --- /dev/null +++ b/device/milkv-duos-sd/overlay/etc/hostname @@ -0,0 +1 @@ +zbot \ No newline at end of file diff --git a/device/milkv-duos-sd/overlay/etc/init.d/S60wpa_supplicant b/device/milkv-duos-sd/overlay/etc/init.d/S60wpa_supplicant new file mode 100755 index 0000000000..f610dee2fd --- /dev/null +++ b/device/milkv-duos-sd/overlay/etc/init.d/S60wpa_supplicant @@ -0,0 +1,48 @@ +#!/bin/sh +log_file="/var/log/wpa_supplicant_start.log" + +start_wpa_supplicant() { + echo "$(date +'%Y-%m-%d %H:%M:%S') Starting wpa_supplicant script..." >> "$log_file" + + # Copy the configuration file if it exists + if [ -f /boot/wpa_supplicant.conf ]; then + cp /boot/wpa_supplicant.conf /etc/wpa_supplicant.conf + echo "$(date +'%Y-%m-%d %H:%M:%S') Copied wpa_supplicant.conf from /boot to /etc" >> "$log_file" + else + echo "$(date +'%Y-%m-%d %H:%M:%S') No wpa_supplicant.conf found on /boot. Skipping copy." >> "$log_file" + exit 0 + fi + + # Wait for wlan0 to reach the DOWN state (available and ready) + echo "$(date +'%Y-%m-%d %H:%M:%S') Waiting for wlan0 to become available..." >> "$log_file" + while ! ip link show wlan0 | grep -q "state DOWN"; do + sleep 1 + done + echo "$(date +'%Y-%m-%d %H:%M:%S') wlan0 is available in DOWN state. Continuing." >> "$log_file" + + # Start wpa_supplicant + echo "$(date +'%Y-%m-%d %H:%M:%S') Starting wpa_supplicant..." >> "$log_file" + wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf >> "$log_file" 2>&1 + if [ $? -eq 0 ]; then + echo "$(date +'%Y-%m-%d %H:%M:%S') wpa_supplicant started successfully." >> "$log_file" + else + echo "$(date +'%Y-%m-%d %H:%M:%S') Failed to start wpa_supplicant." >> "$log_file" + fi +} + +# Run the script in the background +case "$1" in +start) + ( start_wpa_supplicant ) & + ;; +stop) + echo "$(date +'%Y-%m-%d %H:%M:%S') Stopping wpa_supplicant..." >> "$log_file" + killall wpa_supplicant 2>/dev/null || echo "$(date +'%Y-%m-%d %H:%M:%S') wpa_supplicant not running." >> "$log_file" + ;; +*) + echo "Usage: $0 {start|stop}" >> "$log_file" + exit 1 + ;; +esac + +exit 0 diff --git a/device/milkv-duos-sd/overlay/etc/init.d/S70ota-agent b/device/milkv-duos-sd/overlay/etc/init.d/S70ota-agent new file mode 100755 index 0000000000..d222dd115b --- /dev/null +++ b/device/milkv-duos-sd/overlay/etc/init.d/S70ota-agent @@ -0,0 +1,23 @@ +#!/bin/sh +# +# OTA Agent (responds to discovery, and reboots to otafs for updates) +case "$1" in + start) + echo "Starting OTA Agent..." + /usr/local/bin/ota-agent & + ;; + stop) + echo "Stopping OTA Agent..." + killall swupdate + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac + +exit 0 \ No newline at end of file diff --git a/device/milkv-duos-sd/overlay/etc/wpa_supplicant.conf b/device/milkv-duos-sd/overlay/etc/wpa_supplicant.conf new file mode 100644 index 0000000000..29b123960c --- /dev/null +++ b/device/milkv-duos-sd/overlay/etc/wpa_supplicant.conf @@ -0,0 +1,8 @@ +ap_scan=1 +update_config=1 + +network={ + ssid="somessid" + psk="sompsk" + key_mgmt=WPA-PSK +} \ No newline at end of file diff --git a/device/milkv-duos-sd/overlay/usr/local/bin/boot_ota b/device/milkv-duos-sd/overlay/usr/local/bin/boot_ota new file mode 100755 index 0000000000..a134de18da --- /dev/null +++ b/device/milkv-duos-sd/overlay/usr/local/bin/boot_ota @@ -0,0 +1,5 @@ +#!/bin/bash +fw_setenv next_boot otafs +sleep 1 +sync +reboot \ No newline at end of file diff --git a/device/milkv-duos-sd/overlay/usr/local/bin/ota-agent b/device/milkv-duos-sd/overlay/usr/local/bin/ota-agent new file mode 100755 index 0000000000..662dedd406 --- /dev/null +++ b/device/milkv-duos-sd/overlay/usr/local/bin/ota-agent @@ -0,0 +1,18 @@ +#!/bin/sh +#hack for discovery / boot to otafs mechanism with no security +PORT=10000 + +while true; do + echo "Listening on port $PORT..." + + # Handles one connection at a time, ensuring response goes back + echo -e "zbot" | nc -l -p "$PORT" | while read -r cmd; do + if [ "$cmd" = "ota" ]; then + /usr/bin/fw_setenv next_boot otafs; sleep 1; sync; reboot + elif [ "$cmd" = "discover" ]; then + echo "zbot" + fi + done +done + + diff --git a/tools/zbot_updater.py b/tools/zbot_updater.py new file mode 100755 index 0000000000..9d30d936f6 --- /dev/null +++ b/tools/zbot_updater.py @@ -0,0 +1,199 @@ +#!/usr/bin/env python3 + +import asyncio +import websockets +import json +import os +import http.client +import argparse +import socket +import time +import requests +from tqdm import tqdm +from termcolor import colored + + +def send_command(host, port, command): + """Send a command to the TCP server and return the response.""" + try: + with socket.create_connection((host, port), timeout=1) as sock: + sock.sendall(command.encode() + b"\n") + response = sock.recv(1024).decode().strip() + return response + + except Exception: + return None + + +async def check_websocket(host, port): + """Attempt to connect to the WebSocket server with a timeout.""" + try: + return await asyncio.wait_for(websockets.connect(f"ws://{host}:{port}/ws"), timeout=2) + except (asyncio.TimeoutError, websockets.exceptions.ConnectionClosed, OSError): + return False + + + +def wait_for_reboot(host, port, timeout=120): + """Wait for the device to reboot and start the SWUpdate WebSocket server.""" + print(colored("waiting for zbot to reboot...", "yellow")) + start_time = time.time() + + while time.time() - start_time < timeout: + try: + if asyncio.run(check_websocket(host, port)): # Fix: Proper async handling + print(colored("zbot is back online", "green")) + return True + except RuntimeError: + print(colored("Async event loop error. Retrying...", "red")) + time.sleep(1) + continue # Keep retrying + + time.sleep(1) # Retry every second + + print(colored("Could not connect to zbot: timeout.", "red")) + return False + + + +def upload_file_http(file_path, host, port=10000, endpoint="/upload"): + """Upload SWU file using HTTP POST.""" + try: + file_size = os.path.getsize(file_path) + boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW" + headers = { + "Content-Type": f"multipart/form-data; boundary={boundary}", + "Connection": "keep-alive", + } + + body_start = ( + f"--{boundary}\r\n" + f"Content-Disposition: form-data; name=\"file\"; filename=\"{os.path.basename(file_path)}\"\r\n" + f"Content-Type: application/octet-stream\r\n\r\n" + ).encode() + + body_end = f"\r\n--{boundary}--\r\n".encode() + total_size = len(body_start) + file_size + len(body_end) + + with open(file_path, "rb") as file, tqdm(total=file_size, unit="B", unit_scale=True, desc="uploading") as bar: + conn = http.client.HTTPConnection(host, port) + conn.putrequest("POST", endpoint) + conn.putheader("Content-Length", str(total_size)) + for key, value in headers.items(): + conn.putheader(key, value) + conn.endheaders() + + conn.send(body_start) + while chunk := file.read(1024): + conn.send(chunk) + bar.update(len(chunk)) + conn.send(body_end) + + bar.close() + print("\033[K", end="\r") # Clear progress bar + + response = conn.getresponse() + print(f"Response: {response.status} {response.reason}") + #print(response.read().decode()) + conn.close() + except Exception as e: + print(f"Error uploading file: {e}") + + +async def keep_alive(websocket, interval=10): + """Send keep-alive pings to WebSocket server.""" + while True: + try: + await websocket.ping() + await asyncio.sleep(interval) + except websockets.ConnectionClosed: + print("WebSocket connection closed during keep-alive.") + break + + +async def connect(host, file_path): + """Connect to SWUpdate WebSocket and monitor update process.""" + ws_url = f"ws://{host}:10000/ws" + progress_bar = None + + try: + async with websockets.connect(ws_url) as websocket: + print(colored("connected to update service", "green")) + asyncio.create_task(keep_alive(websocket)) + + upload_file_http(file_path, host) + + while True: + try: + message = await websocket.recv() + data = json.loads(message) + + if data.get("type") == "step": + step = int(data.get("step", 0)) + number = int(data.get("number", 1)) + percent = int(data.get("percent", 0)) + name = data.get("name", "Unknown") + + if progress_bar is None: + progress_bar = tqdm( + total=100, + desc=f"updating: {name}", + ncols=80, + dynamic_ncols=True, + bar_format="{l_bar}{bar}| {n_fmt}/{total_fmt}%", + leave=False, + ) + + progress_bar.n = percent + progress_bar.refresh() + + if percent == 100: + progress_bar.close() + progress_bar = None + print("\033[K", end="\r") # Clear progress bar + + if data.get("type") == "status": + status = data.get("status") + if status == "DONE": + print(colored("Update complete!", "green")) + exit(0) + elif status == "SUCCESS": + print(colored("Successfully completed.", "green")) + + except json.JSONDecodeError: + pass + except websockets.ConnectionClosed: + print(colored("Update service connection closed.", "red")) + break + except: + print(colored(f"zbot not found @ {host}", "red")) + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="zbot_updater: a tool for updating zbot firmware.", + formatter_class=argparse.RawTextHelpFormatter + ) + + subparsers = parser.add_subparsers(dest="command", required=True) + + update_parser = subparsers.add_parser("update", help="Upload and apply an SWU file to a zbot device.") + update_parser.add_argument("host", help="The zbot device host (e.g., 192.168.42.1).") + update_parser.add_argument("swu_file", help="The SWU package to upload and apply.") + + args = parser.parse_args() + + if args.command == "update": + host = args.host + swu_file = args.swu_file + + ota_response = send_command(host, 10000, "ota") + + if ota_response == "zbot": + print(colored("zbot detected", "grey")) + print(colored("rebooting...", "grey")) + if not wait_for_reboot(host, 10000): + print(colored("Timeout waiting for reboot. Aborting update.", "red")) + exit(1) + + asyncio.run(connect(host, swu_file)) + diff --git a/u-boot-2021.10/board/cvitek/cv181x/board.c b/u-boot-2021.10/board/cvitek/cv181x/board.c index f3ad355772..baded95e95 100644 --- a/u-boot-2021.10/board/cvitek/cv181x/board.c +++ b/u-boot-2021.10/board/cvitek/cv181x/board.c @@ -344,3 +344,15 @@ void board_save_time_record(uintptr_t saveaddr) mmio_write_16(saveaddr, DIV_ROUND_UP(boot_us, 1000)); } + +void apply_uart_clock_settings(void) +{ + printf("Applying custom UART clock settings before kernel handoff...\n"); + volatile uint32_t *reg_div_clk_cam0_200 = (volatile uint32_t *)0x030020a8; + *reg_div_clk_cam0_200 = 0xF0109; // Set custom UART clock divider + + volatile uint32_t *uart0_dll = (volatile uint32_t *)0x04140020; + *uart0_dll = 43; // Set Divisor Latch Low + + printf("UART clock settings applied successfully.\n"); +} \ No newline at end of file diff --git a/u-boot-2021.10/common/autoboot.c b/u-boot-2021.10/common/autoboot.c index 1589928ea9..c23cf977d1 100644 --- a/u-boot-2021.10/common/autoboot.c +++ b/u-boot-2021.10/common/autoboot.c @@ -52,6 +52,11 @@ static int menukey; #define AUTOBOOT_MENUKEY 0 #endif +__weak void apply_uart_clock_settings(void) +{ + // Default: Do nothing for other boards +} + /** * passwd_abort_crypt() - check for a crypt-style hashed key sequence to abort booting * @@ -481,6 +486,19 @@ void autoboot_command(const char *s) bool lock; int prev; + //// Call the milkv duos UART clock configuration + apply_uart_clock_settings(); + + //// Apply custom UART clock settings + //printf("Applying custom UART clock settings before kernel handoff...\n"); + //volatile uint32_t *reg_div_clk_cam0_200 = (volatile uint32_t *)0x030020a8; + //*reg_div_clk_cam0_200 = 0xF0109; // Set custom UART clock divider + + //volatile uint32_t *uart0_dll = (volatile uint32_t *)0x04140020; + //*uart0_dll = 43; // Set Divisor Latch Low + + //printf("UART clock settings applied successfully.\n"); + lock = autoboot_keyed() && !IS_ENABLED(CONFIG_AUTOBOOT_KEYED_CTRLC); if (lock) diff --git a/u-boot-2021.10/include/configs/cv181x-asic-ota.h b/u-boot-2021.10/include/configs/cv181x-asic-ota.h new file mode 100644 index 0000000000..692d0e2c81 --- /dev/null +++ b/u-boot-2021.10/include/configs/cv181x-asic-ota.h @@ -0,0 +1,369 @@ +/* + * Configuration for Versatile Express. Parts were derived from other ARM + * configurations. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __CV181X_ASIC_H__ +#define __CV181X_ASIC_H__ + +#include <../../../board/cvitek/cv181x/cv181x_reg.h> + +/* defined in cvipart.h */ +#undef CONFIG_ENV_OFFSET +#undef CONFIG_ENV_OFFSET_REDUND +#undef CONFIG_ENV_SIZE +#undef CONFIG_ENV_IS_IN_SPI_FLASH +#undef CONFIG_ENV_IS_IN_MMC +#undef CONFIG_ENV_IS_IN_NAND +#undef CONFIG_ENV_SECT_SIZE + +/* cvi_board_memmap.h is generated from build/boards/{CHIP_ARCH}/{BOARD}/memmap.py */ +#include "cvi_board_memmap.h" +/* partition definitions header which is created by mkcvipart.py */ +/* please do not modify header manually */ +#include "cvipart.h" +#include "cvi_panels/cvi_panel_diffs.h" + +// defined in this .h +#undef CONFIG_BOOTCOMMAND + +#if defined(__aarch64__) +#define CONFIG_ARMV8_SWITCH_TO_EL1 +#endif + +#define CONFIG_REMAKE_ELF + +/* Physical Memory Map */ +#define CONFIG_SYS_RESVIONSZ CVIMMAP_ION_SIZE +#define CONFIG_SYS_RESVLOGOSZ CVIMMAP_BOOTLOGO_SIZE +#define CONFIG_SYS_BOOTMAPSZ CVIMMAP_KERNEL_MEMORY_SIZE + +#define PHYS_SDRAM_1 CVIMMAP_KERNEL_MEMORY_ADDR +#define PHYS_SDRAM_1_SIZE CVIMMAP_KERNEL_MEMORY_SIZE +#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 + +/* Link Definitions */ +#define CONFIG_SYS_INIT_SP_ADDR CVIMMAP_CONFIG_SYS_INIT_SP_ADDR + +/* default address for bootm command without arguments */ +#define CONFIG_SYS_LOAD_ADDR 0x80080000 +#define CONFIG_SYS_BOOTM_LEN (64 << 20) + +/* Generic Interrupt Controller Definitions */ +#define GICD_BASE (0x01F01000) +#define GICC_BASE (0x01F02000) + +/* Size of malloc() pool */ +#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (9 << 20)) + +#if defined(__aarch64__) +#define CONFIG_SYS_NONCACHED_MEMORY BIT(20) /* 1 MiB */ +#endif + +#if defined(__riscv) +#define CONFIG_SYS_CACHELINE_SIZE 64 +#endif + +// Frequency of ARM arch timer and RISC-V rdtime +#define SYS_COUNTER_FREQ_IN_SECOND 25000000 + +/* 16550 Serial Configuration */ +#define CONFIG_SYS_NS16550_COM1 0x04140000 +#define CONFIG_SYS_NS16550_SERIAL +#define CONFIG_SYS_NS16550_REG_SIZE (-4) +#define CONFIG_SYS_NS16550_MEM32 +#define CONFIG_SYS_NS16550_CLK 25000000 + +/* include/generated/autoconf.h would define CONFIG_BAUDRATE from drivers/serial/Kconfig (default 115200) */ + +/*#define CONFIG_MENU_SHOW*/ + + +/* Download related definitions */ +#define UPGRADE_SRAM_ADDR 0x0e000030 +#define UBOOT_PID_SRAM_ADDR 0x0e000030 +#define UPDATE_ADDR CVIMMAP_ION_ADDR +#define HEADER_ADDR UPDATE_ADDR +#define USB_UPDATE_MAGIC MAGIC_NUM_USB_DL +/*---------------------------------------------------------------------- + * SPI Flash Configuration + * --------------------------------------------------------------------- + */ + +#ifdef CONFIG_SPI_FLASH + #define CONFIG_SPI_FLASH_CVSFC + + #define CONFIG_CMD_MTDPARTS + #define CONFIG_MTD_PARTITIONS + #define CONFIG_FLASH_CFI_MTD + #define CONFIG_SYS_MAX_FLASH_BANKS 1 + #define CONFIG_SPI_FLASH_MTD +#endif /* CONFIG_SPI_FLASH */ + +/*----------------------------------------------------------------------- + * SPI NAND Flash Configuration + *---------------------------------------------------------------------- + */ + +#ifdef CONFIG_NAND_SUPPORT + /*#define CONFIG_ENV_IS_IN_NAND*/ /* env in nand flash */ + #define CONFIG_CMD_NAND + #define CONFIG_SYS_MAX_NAND_DEVICE 1 + + #define CONFIG_NAND_FLASH_CVSNFC + #define CONFIG_SYS_MAX_NAND_CHIPS 1 + /*#define CONFIG_SYS_NAND_SELF_INIT*/ + + #define CONFIG_CMD_MTDPARTS + #define CONFIG_MTD_PARTITIONS + /* For CMD_UBI && CMD_UBIFS */ + #define CONFIG_RBTREE + #define CONFIG_LZO + //#define CONFIG_CMD_UBI + //#define CONFIG_CMD_UBIFS + #define CONFIG_MTD_UBI_WL_THRESHOLD 4096 + #define CONFIG_MTD_UBI_BEB_LIMIT 20 + #define NANDBOOT_V2 +#endif /* CONFIG_NAND_SUPPORT */ + +#ifdef CONFIG_NAND_FLASH_CVSNFC + #define SPI_NAND_TX_DATA_BASE 0x4060060 + #define SPI_NAND_RX_DATA_BASE 0x4060064 + + #define SPI_NAND_REG_BASE 0x4060000 + + #define CONFIG_SYS_NAND_MAX_CHIPS 1 + #define CONFIG_SYS_NAND_BASE SPI_NAND_REG_BASE + #define CONFIG_CVSNFC_MAX_CHIP CONFIG_SYS_MAX_NAND_DEVICE + #define CONFIG_CVSNFC_REG_BASE_ADDRESS SPI_NAND_REG_BASE + #define CONFIG_CVSNFC_BUFFER_BASE_ADDRESS SPI_NAND_MEM_BASE + #define CONFIG_CVSNFC_HARDWARE_PAGESIZE_ECC + #define CONFIG_SYS_NAND_BASE_LIST {CONFIG_SYS_NAND_BASE} + +#endif /* CONFIG_NAND_SUPPORT */ + +/* Monitor Command Prompt */ +#define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ + sizeof(CONFIG_SYS_PROMPT) + 16) +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE +#define CONFIG_SYS_MAXARGS 64 /* max command args */ + +#ifndef CONFIG_ENV_SECT_SIZE +#define CONFIG_ENV_SECT_SIZE 0x00040000 +#endif + +#define CONFIG_ENV_OVERWRITE + +#define CONFIG_MMC_UHS_SUPPORT +#define CONFIG_MMC_HS200_SUPPORT +#define CONFIG_MMC_SUPPORTS_TUNING +/* #define CONFIG_USB_DWC2 */ +/* #define CONFIG_USB_DWC2_REG_ADDR 0x04340000 */ +/* Enable below CONFIG for fastboot */ + +/* To use usb fastboot, you need to enable below Kconfig + * CONFIG_USB, CONFIG_USB_GADGET and CONFIG_USB_GADGET_DWC2_OTG + */ + +#ifdef CONFIG_USB_GADGET +#define CONFIG_USB_FUNCTION_FASTBOOT +#define CONFIG_USB_GADGET_DOWNLOAD +#define CONFIG_G_DNL_MANUFACTURER "Cvitek" +#define CONFIG_G_DNL_VENDOR_NUM 0x18d1 +#define CONFIG_G_DNL_PRODUCT_NUM 0x4ee0 +#endif + +#define CONFIG_IPADDR 192.168.0.3 +#define CONFIG_NETMASK 255.255.255.0 +#define CONFIG_GATEWAYIP 192.168.0.11 +#define CONFIG_SERVERIP 192.168.56.101 + +#ifdef CONFIG_USE_DEFAULT_ENV +/* The following Settings are chip dependent */ +/******************************************************************************/ + #define UIMAG_ADDR CVIMMAP_UIMAG_ADDR + + #ifdef CONFIG_BOOTLOGO + #define LOGO_RESERVED_ADDR __stringify(CVIMMAP_BOOTLOGO_ADDR)//yuv load addr + #define LOGO_READ_ADDR "0x84080000" //jpeg load addr + #define VO_ALIGNMENT "16" + #define LOGOSIZE "0x80000" //jpeg max size + #endif +/******************************************************************************/ +/* define common env */ +/*******************************************************************************/ + /* Config FDT_NO */ + #ifndef USE_HOSTCC + #define FDT_NO __stringify(CVICHIP) "_" __stringify(CVIBOARD) + #else + #define FDT_NO "" + #endif + + /* config root */ + #ifdef CONFIG_NAND_SUPPORT + #ifdef CONFIG_SKIP_RAMDISK + #define ROOTARGS "ubi.mtd=ROOTFS ubi.block=0,0 root=/dev/ubiblock0_0 rootfstype=squashfs" + + #else + #define ROOTARGS "ubi.mtd=ROOTFS ubi.block=0,0" + #endif /* CONFIG_SKIP_RAMDISK */ + #elif defined(CONFIG_SD_BOOT) || defined(CONFIG_EMMC_SUPPORT) + #define ROOTARGS "root=" ROOTFS_DEV " rootwait rw" + #define OTAFS_ARGS "root=" OTAFS_DEV " rootwait rw" + //#define OTAFS_BAK_ARGS "root=" OTAFS_BAK_ARGS " rootwait rw" + #else + #define ROOTARGS "rootfstype=squashfs rootwait ro root=" ROOTFS_DEV + #endif + + /* BOOTARGS */ + #define PARTS PART_LAYOUT + + /* config uart */ + #define CONSOLEDEV "ttyS0\0" + + /* config loglevel */ + #ifdef RELEASE + #define CONSOLE_LOGLEVEL " loglevel=0" + #define EARLYCON_RELEASE " release " + #else + #define CONSOLE_LOGLEVEL " loglevel=9" + #define EARLYCON_RELEASE " " + #endif + + #define OTHERBOOTARGS "earlycon=sbi riscv.fwsz=" __stringify(CVIMMAP_OPENSBI_SIZE) " " \ + EARLYCON_RELEASE CONSOLE_LOGLEVEL + + /* config mtdids */ + #ifdef CONFIG_NAND_SUPPORT + #define MTDIDS_DEFAULT "nand0=cvsnfc" + #elif CONFIG_SPI_FLASH + #define MTDIDS_DEFAULT "nor1=flash-0" + #else + #define MTDIDS_DEFAULT "" + #endif + + #define CONFIG_EXTRA_ENV_SETTINGS \ + "netdev=eth0\0" \ + "consoledev=" CONSOLEDEV \ + "baudrate=115200\0" \ + "uImage_addr=" __stringify(UIMAG_ADDR) "\0" \ + "update_addr=" __stringify(UPDATE_ADDR) "\0" \ + "mtdparts=" PARTS "\0" \ + "mtdids=" MTDIDS_DEFAULT "\0" \ + "root=" OTAFS_ARGS "\0" \ + "sdboot=" SD_BOOTM_COMMAND "\0" \ + "othbootargs=" OTHERBOOTARGS "\0" \ + PARTS_OFFSET \ + "otafs=" OTAFS_ARGS "\0" \ + "rootfs=" ROOTARGS "\0" \ + "next_boot=otafs\0" \ + +/********************************************************************************/ + /* UBOOT_VBOOT commands */ + #ifdef UBOOT_VBOOT + #define UBOOT_VBOOT_BOOTM_COMMAND \ + "aes_itb dec_fdt_key 0 ${uImage_addr} ${uImage_addr}; " \ + "if test $? -ne 0; then " \ + " echo ITB decryption failed; " \ + "else; " \ + " bootm ${uImage_addr}#config-" FDT_NO ";" \ + "fi;" + #else + #define UBOOT_VBOOT_BOOTM_COMMAND "bootm ${uImage_addr}#config-" FDT_NO ";" + #endif + + /* BOOTLOGO */ + #ifdef CONFIG_BOOTLOGO + #define SHOWLOGOCMD "run showlogo;" + + #ifdef CONFIG_NAND_SUPPORT + #define LOAD_LOGO "nand read " LOGO_READ_ADDR " MISC;" + #elif defined(CONFIG_SPI_FLASH) + #define LOAD_LOGO "sf probe;sf read " LOGO_READ_ADDR " ${MISC_PART_OFFSET} ${MISC_PART_SIZE};" + #else + #define LOAD_LOGO "mmc dev 0;mmc read " LOGO_READ_ADDR " ${MISC_PART_OFFSET} ${MISC_PART_SIZE};" + #endif + #define SHOWLOGOCOMMAND LOAD_LOGO CVI_JPEG START_VO START_VL SET_VO_BG + #else + #define SHOWLOGOCMD + #endif + + #define SET_BOOTARGS "setenv bootargs ${reserved_mem} ${root} ${mtdparts} " \ + "console=$consoledev,$baudrate $othbootargs;" + + + // TODO: clean this up, add boot counts/limits + #define SD_BOOTM_COMMAND \ + "if test -n ${first_boot}; then " \ + "echo Environment loaded from persistent storage.; " \ + "else " \ + "echo First boot detected. Initializing environment variables...; " \ + "setenv first_boot 1; " \ + "saveenv; " \ + "fi; " \ + "if test ${next_boot} = otafs; then " \ + "setenv root ${otafs}; " \ + "saveenv; " \ + "elif test ${next_boot} = rootfs; then " \ + "setenv root ${rootfs}; " \ + "saveenv; " \ + "else " \ + "echo Invalid next_boot value! Booting otafs as fallback.; " \ + "setenv root ${otafs}; " \ + "saveenv; " \ + "fi; " \ + "setenv bootargs ${reserved_mem} ${root} ${mtdparts} console=$consoledev,$baudrate $othbootargs; " \ + "echo Boot from ${next_boot} ...; " \ + "mmc dev 0 && fatload mmc 0 ${uImage_addr} boot.sd; " \ + "if test $? -eq 0; then " \ + UBOOT_VBOOT_BOOTM_COMMAND \ + "fi;" \ + + #ifndef CONFIG_SD_BOOT + #ifdef CONFIG_ENABLE_ALIOS_UPDATE + #define CONFIG_BOOTCOMMAND "cvi_update_rtos" + #else + #define CONFIG_BOOTCOMMAND SHOWLOGOCMD "cvi_update || run norboot || run nandboot ||run emmcboot" + #endif + #else + #define CONFIG_BOOTCOMMAND SHOWLOGOCMD "run sdboot" + #endif + + #if defined(CONFIG_NAND_SUPPORT) + /* For spi nand boot, need to reset DMA and its setting before exiting uboot */ + /* 0x4330058 : DMA reset */ + /* 0x3000154 : restore DMA remap to 0 */ + + #define CONFIG_NANDBOOTCOMMAND \ + SET_BOOTARGS \ + "nand read ${uImage_addr} BOOT;" \ + "mw.l 4330058 1 1; md.l 4330058 1; mw.l 3000154 0 1;" \ + UBOOT_VBOOT_BOOTM_COMMAND + #elif defined(CONFIG_SPI_FLASH) + #define CONFIG_NORBOOTCOMMAND \ + SET_BOOTARGS \ + "sf probe;sf read ${uImage_addr} ${BOOT_PART_OFFSET} ${BOOT_PART_SIZE};" \ + UBOOT_VBOOT_BOOTM_COMMAND + #elif defined(CONFIG_EMMC_SUPPORT) + #define CONFIG_EMMCBOOTCOMMAND \ + SET_BOOTARGS \ + "mmc dev 0 ;" \ + "mmc read ${uImage_addr} ${BOOT_PART_OFFSET} ${BOOT_PART_SIZE} ;" \ + UBOOT_VBOOT_BOOTM_COMMAND + #endif + +#else + /* define your environment */ + #define CONFIG_BOOTCOMMAND "" + +#endif /* CONFIG_USE_DEFAULT_ENV */ + +#define CVI_SPL_BOOTAGRS \ + PARTS " " \ + ROOTARGS " " \ + "console=ttyS0,115200 " \ + OTHERBOOTARGS "\0" +#endif /* __CV181X_ASIC_H__ */