diff --git a/README.md b/README.md index 5a605b1cdf65b73065259101c7de8b6209c52438..9fd995792a0669643ba723a199a4ee4102781127 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ [![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](LICENSE) -ZVM项目是在开源实时操作系统 [Zephyr RTOS](https://github.com/zephyrproject-rtos/zephyr)(由Linux基金会托管)上构建的一款虚拟机管理器(Hypervisor),ZVM一方面继承了Zephyr RTOS的开源生态和特性,另一方面为业界提供了一个原创的面向嵌入式场景的开源虚拟化平台解决方案。 +ZVM(Zephyr-based Virtual Machine)是基于开源微内核实时操作系统 Zephyr RTOS [Zephyr RTOS](https://github.com/zephyrproject-rtos/zephyr)(由Linux基金会托管)开发的一款虚拟机管理器(Hypervisor),能在单一硬件平台上启动多个操作系统,以构建安全隔离的多内核混合部署系统。 -ZVM由湖南大学教授、嵌入式与网络计算湖南省重点实验室主任谢国琪老师主导开发,这是一款面向嵌入式场景的开源、实时、安全、轻量及易用的虚拟机管理平台,致力于成为嵌入式领域的“Linux-KVM”,构建混合关键部署的开源生态。项目仓库中包含Zephyr RTOS内核、工具及虚拟化支持所需的一些代码,共同构成了ZVM的代码仓。 +ZVM由湖南大学教授、嵌入式与网络计算湖南省重点实验室主任谢国琪老师主导开发,一方面继承了Zephyr RTOS的微内核体系结构和开源生态,另一方面为业界提供了一个原创的面向嵌入式场景的开源虚拟化平台解决方案。ZVM项目仓库中包含Zephyr RTOS内核、工具及虚拟化支持代码。 ## 架构设计 @@ -16,22 +16,22 @@ ZVM面向高性能嵌入式计算环境,提供嵌入式平台上操作系统 ZVM将持续支持多种虚拟机操作系统和底层硬件平台,拓展软硬件生态。 -#### 虚拟机操作系统 +#### 虚拟机操作系统(Guest OS)支持 -ZVM支持的虚拟机操作系统列表如下, 包括: +ZVM目前支持的Guest OS列表如下, 包括: -- Zephyr RTOS -- openEuler Embedded -- Debian -- **欢迎您提交新的虚拟机OS支持到ZVM社区** +- Zephyr RTOS、FreeRTOS +- openEuler Embedded、Debian GNU/Linux +- **欢迎您提交新的Guest OS支持到ZVM社区** -#### 底层硬件平台 +#### 底层芯片支持 -ZVM 支持的平台如下, 包括多核的ARMv8平台: +ZVM目前支持基于ARMv8架构的处理器芯片: +- 瑞芯微RK3568/RK3588 +- 飞腾D3000/S5000C - QEMU ARM64 virt (qemu-max) -- RK3568 SoC (roc_rk3568_pc/ok3568/lubancat2) -- ARM Fixed platform (cortex-a55x4) +- ARM FVP(Fixed Virtual Platform, A55) - **欢迎您提交新的芯片支持到ZVM社区** ## 视频介绍 diff --git a/auto_zvm.sh b/auto_zvm.sh index c3ea5298dcdeaba24c9db63f4e309af6ab6994ae..29aad59b27040cba72ec3bed75b8e628024265b0 100755 --- a/auto_zvm.sh +++ b/auto_zvm.sh @@ -52,7 +52,8 @@ if [ "$OPS" = "${ops_array[0]}" ]; then -DARMFVP_BL1_FILE=$(pwd)/zvm_config/fvp_platform/hub/bl1.bin \ -DARMFVP_FIP_FILE=$(pwd)/zvm_config/fvp_platform/hub/fip.bin elif [ "$PLAT" = "${plat_array[2]}" ]; then - west build -b roc_rk3568_pc_smp samples/_zvm + west build -b roc_rk3568_pc_smp samples/_zvm && \ + cp build/zephyr/zvm_host.bin /home/proctor-a/tftp_server/master_test/ else echo "Error arguments for this auto.sh! \n Please input command like: ./auto_build.sh build qemu. " fi diff --git a/compare.conf b/compare.conf deleted file mode 100644 index 16c47dff8fc93b8bc5e5c059d22fa56752ba922c..0000000000000000000000000000000000000000 --- a/compare.conf +++ /dev/null @@ -1,889 +0,0 @@ -# CONFIG_GPIO is not set -# CONFIG_SPI is not set -# CONFIG_I2C is not set -# CONFIG_KSCAN is not set -# CONFIG_DISK_DRIVER_SDMMC is not set -# CONFIG_WIFI is not set -# CONFIG_MODEM is not set -CONFIG_UART_INTERRUPT_DRIVEN=y -CONFIG_BUILD_OUTPUT_BIN=y -CONFIG_BOARD="qemu_cortex_max" -CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=62500000 -CONFIG_NUM_IRQS=220 -CONFIG_SOC="qemu_cortex_max" -CONFIG_FLASH_SIZE=2048 -CONFIG_FLASH_BASE_ADDRESS=0x0 -CONFIG_KERNEL_VM_SIZE=0xC0000000 - -# -# Modules -# - -# -# Available modules. -# - -# -# Optional modules. Make sure they're installed, via the project manifest. -# -# CONFIG_CIVETWEB is not set -# CONFIG_LIBMETAL is not set -# CONFIG_HAS_MEC_HAL is not set -# CONFIG_OPENAMP is not set -# CONFIG_SOF is not set -# CONFIG_MIPI_SYST_LIB is not set -# CONFIG_HAS_TELINK_DRIVERS is not set -# CONFIG_TINYCBOR is not set -# CONFIG_TINYCRYPT is not set -# CONFIG_MCUBOOT_BOOTUTIL_LIB is not set - -# -# Unavailable modules, please install those via the project manifest. -# - -# -# hal_gigadevice module not available. -# - -# -# hal_nordic module not available. -# - -# -# mbedtls module not available. -# - -# -# Trusted-firmware-m module not available. -# - -# -# Nanopb module not available. -# - -# -# Lz4 module not available. -# - -# -# loramac-node module not available. -# - -# -# CANopenNode module not available. -# - -# -# FFF module not available. -# -CONFIG_ROM_START_OFFSET=0 -# end of Modules - -CONFIG_QEMU_TARGET=y -# CONFIG_NET_DRIVERS is not set -CONFIG_BOARD_QEMU_CORTEX_MAX=y - -# -# Board Options -# -# CONFIG_QEMU_ICOUNT is not set -# end of Board Options - -# CONFIG_SOC_SERIES_FVP_AEMV8A is not set -# CONFIG_SOC_SERIES_FVP_AEMV8R is not set -# CONFIG_SOC_SERIES_FVP_BASE_AARCH64 is not set -# CONFIG_SOC_SERIES_VIPER is not set -# CONFIG_SOC_SERIES_AGILEX is not set -# CONFIG_SOC_SERIES_LS1046A is not set -# CONFIG_SOC_QEMU_CORTEX_A53 is not set -CONFIG_SOC_QEMU_CORTEX_MAX=y -# CONFIG_SOC_SERIES_RK3568 is not set -# CONFIG_SOC_XENVM is not set - -# -# Hardware Configuration -# -# CONFIG_SOC_LOG_LEVEL_OFF is not set -# CONFIG_SOC_LOG_LEVEL_ERR is not set -# CONFIG_SOC_LOG_LEVEL_WRN is not set -CONFIG_SOC_LOG_LEVEL_INF=y -# CONFIG_SOC_LOG_LEVEL_DBG is not set -CONFIG_SOC_LOG_LEVEL=3 -# end of Hardware Configuration - -# -# ARM64 Options -# -CONFIG_ARCH="arm64" -CONFIG_CPU_CORTEX=y -CONFIG_CPU_CORTEX_A=y -CONFIG_CPU_CORTEX_MAX=y -CONFIG_HAS_ARM_SMCCC=y -CONFIG_HAS_ARM_VHE_EXTN=y -CONFIG_MAIN_STACK_SIZE=32768 -CONFIG_IDLE_STACK_SIZE=32768 -CONFIG_ISR_STACK_SIZE=65536 -CONFIG_TEST_EXTRA_STACKSIZE=2048 -CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096 -CONFIG_CMSIS_THREAD_MAX_STACK_SIZE=4096 -CONFIG_CMSIS_V2_THREAD_MAX_STACK_SIZE=4096 -CONFIG_CMSIS_V2_THREAD_DYNAMIC_STACK_SIZE=4096 -CONFIG_IPM_CONSOLE_STACK_SIZE=2048 -CONFIG_AARCH64_IMAGE_HEADER=y -CONFIG_PRIVILEGED_STACK_SIZE=4096 -CONFIG_KOBJECT_TEXT_AREA=4096 -CONFIG_ARMV8_A_NS=y -CONFIG_ARMV8_A=y -CONFIG_GEN_ISR_TABLES=y -# CONFIG_GEN_IRQ_VECTOR_TABLE is not set -CONFIG_ARM_MMU=y -CONFIG_EXCEPTION_DEBUG=y -# CONFIG_XIP is not set -CONFIG_MMU_PAGE_SIZE=0x1000 -CONFIG_ARM64_VA_BITS_32=y -# CONFIG_ARM64_VA_BITS_36 is not set -# CONFIG_ARM64_VA_BITS_40 is not set -# CONFIG_ARM64_VA_BITS_42 is not set -# CONFIG_ARM64_VA_BITS_48 is not set -CONFIG_ARM64_VA_BITS=32 -CONFIG_ARM64_PA_BITS_32=y -# CONFIG_ARM64_PA_BITS_36 is not set -# CONFIG_ARM64_PA_BITS_40 is not set -# CONFIG_ARM64_PA_BITS_42 is not set -# CONFIG_ARM64_PA_BITS_48 is not set -CONFIG_ARM64_PA_BITS=32 -CONFIG_MAX_XLAT_TABLES=10240 -CONFIG_ZVM_ZEPHYR_MAX_XLAT_TABLES=512 -CONFIG_ZVM_LINUX_MAX_XLAT_TABLES=10240 -# end of ARM64 Options - -CONFIG_ARM64=y -CONFIG_ARCH_IS_SET=y - -# -# General Architecture Options -# -# CONFIG_ARCH_LOG_LEVEL_OFF is not set -# CONFIG_ARCH_LOG_LEVEL_ERR is not set -# CONFIG_ARCH_LOG_LEVEL_WRN is not set -CONFIG_ARCH_LOG_LEVEL_INF=y -# CONFIG_ARCH_LOG_LEVEL_DBG is not set -CONFIG_ARCH_LOG_LEVEL=3 -# CONFIG_MPU_LOG_LEVEL_OFF is not set -# CONFIG_MPU_LOG_LEVEL_ERR is not set -# CONFIG_MPU_LOG_LEVEL_WRN is not set -CONFIG_MPU_LOG_LEVEL_INF=y -# CONFIG_MPU_LOG_LEVEL_DBG is not set -CONFIG_MPU_LOG_LEVEL=3 -CONFIG_64BIT=y -CONFIG_SRAM_SIZE=524288 -CONFIG_SRAM_BASE_ADDRESS=0x40000000 -CONFIG_USERSPACE=y -CONFIG_KOBJECT_DATA_AREA_RESERVE_EXTRA_PERCENT=100 -CONFIG_KOBJECT_RODATA_AREA_EXTRA_BYTES=16 -# CONFIG_STACK_GROWS_UP is not set -CONFIG_MAX_THREAD_BYTES=2 -# CONFIG_DYNAMIC_OBJECTS is not set -# CONFIG_NOCACHE_MEMORY is not set - -# -# Interrupt Configuration -# -# CONFIG_DYNAMIC_INTERRUPTS is not set -CONFIG_GEN_SW_ISR_TABLE=y -CONFIG_ARCH_SW_ISR_TABLE_ALIGN=0 -CONFIG_GEN_IRQ_START_VECTOR=0 -# end of Interrupt Configuration -# end of General Architecture Options - -CONFIG_ARCH_HAS_USERSPACE=y -CONFIG_ARCH_HAS_NOCACHE_MEMORY_SUPPORT=y -CONFIG_ARCH_HAS_THREAD_LOCAL_STORAGE=y -CONFIG_CPU_HAS_MMU=y -CONFIG_MMU=y -CONFIG_KERNEL_VM_BASE=0x40000000 -CONFIG_KERNEL_VM_OFFSET=0 -CONFIG_SRAM_REGION_PERMISSIONS=y - -# -# Floating Point Options -# -# end of Floating Point Options - -# -# Cache Options -# -CONFIG_CACHE_MANAGEMENT=y -# CONFIG_DCACHE_LINE_SIZE_DETECT is not set -CONFIG_DCACHE_LINE_SIZE=0 -# CONFIG_ICACHE_LINE_SIZE_DETECT is not set -CONFIG_ICACHE_LINE_SIZE=0 -CONFIG_HAS_ARCH_CACHE=y -# CONFIG_HAS_EXTERNAL_CACHE is not set -# end of Cache Options - -CONFIG_TOOLCHAIN_HAS_BUILTIN_FFS=y - -# -# General Kernel Options -# -# CONFIG_KERNEL_LOG_LEVEL_OFF is not set -# CONFIG_KERNEL_LOG_LEVEL_ERR is not set -# CONFIG_KERNEL_LOG_LEVEL_WRN is not set -CONFIG_KERNEL_LOG_LEVEL_INF=y -# CONFIG_KERNEL_LOG_LEVEL_DBG is not set -CONFIG_KERNEL_LOG_LEVEL=3 -CONFIG_MULTITHREADING=y -CONFIG_NUM_COOP_PRIORITIES=16 -CONFIG_NUM_PREEMPT_PRIORITIES=15 -CONFIG_MAIN_THREAD_PRIORITY=0 -CONFIG_COOP_ENABLED=y -CONFIG_PREEMPT_ENABLED=y -CONFIG_PRIORITY_CEILING=-127 -CONFIG_NUM_METAIRQ_PRIORITIES=0 -CONFIG_SCHED_DEADLINE=y -CONFIG_SCHED_CPU_MASK=y -CONFIG_SCHED_CPU_MASK_PIN_ONLY=y -CONFIG_THREAD_STACK_INFO=y -# CONFIG_THREAD_CUSTOM_DATA is not set -CONFIG_THREAD_USERSPACE_LOCAL_DATA=y -CONFIG_ERRNO=y -CONFIG_SCHED_DUMB=y -# CONFIG_SCHED_SCALABLE is not set -# CONFIG_WAITQ_SCALABLE is not set -CONFIG_WAITQ_DUMB=y - -# -# Kernel Debugging and Metrics -# -CONFIG_INIT_STACKS=y -CONFIG_BOOT_BANNER=y -CONFIG_BOOT_DELAY=0 -CONFIG_THREAD_MONITOR=y -CONFIG_THREAD_NAME=y -CONFIG_THREAD_MAX_NAME_LEN=32 -# CONFIG_THREAD_RUNTIME_STATS is not set -# end of Kernel Debugging and Metrics - -# -# Work Queue Options -# -CONFIG_SYSTEM_WORKQUEUE_PRIORITY=-1 -# CONFIG_SYSTEM_WORKQUEUE_NO_YIELD is not set -# end of Work Queue Options - -# -# Atomic Operations -# -CONFIG_ATOMIC_OPERATIONS_BUILTIN=y -# end of Atomic Operations - -# -# Timer API Options -# -CONFIG_TIMESLICING=y -CONFIG_TIMESLICE_SIZE=0 -CONFIG_TIMESLICE_PRIORITY=0 -CONFIG_POLL=y -# end of Timer API Options - -# -# Other Kernel Object Options -# -# CONFIG_MEM_SLAB_TRACE_MAX_UTILIZATION is not set -CONFIG_NUM_MBOX_ASYNC_MSGS=10 -CONFIG_NUM_PIPE_ASYNC_MSGS=10 -# CONFIG_EVENTS is not set -CONFIG_KERNEL_MEM_POOL=y -CONFIG_HEAP_MEM_POOL_SIZE=385875968 -# end of Other Kernel Object Options - -CONFIG_ARCH_HAS_CUSTOM_BUSY_WAIT=y -CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000 -CONFIG_SYS_CLOCK_EXISTS=y -CONFIG_TIMEOUT_64BIT=y - -# -# Initialization Priorities -# -CONFIG_KERNEL_INIT_PRIORITY_OBJECTS=30 -CONFIG_KERNEL_INIT_PRIORITY_DEFAULT=40 -CONFIG_KERNEL_INIT_PRIORITY_DEVICE=50 -CONFIG_APPLICATION_INIT_PRIORITY=90 -# end of Initialization Priorities - -# -# Security Options -# -# CONFIG_BOUNDS_CHECK_BYPASS_MITIGATION is not set -# end of Security Options - -CONFIG_MAX_DOMAIN_PARTITIONS=16 -CONFIG_ARCH_MEM_DOMAIN_DATA=y -CONFIG_ARCH_MEM_DOMAIN_SYNCHRONOUS_API=y - -# -# SMP Options -# -CONFIG_USE_SWITCH=y -CONFIG_USE_SWITCH_SUPPORTED=y -CONFIG_SMP=y -# CONFIG_SMP_BOOT_DELAY is not set -CONFIG_MP_NUM_CPUS=4 -CONFIG_SCHED_IPI_SUPPORTED=y -# CONFIG_TRACE_SCHED_IPI is not set -# end of SMP Options - -CONFIG_TICKLESS_KERNEL=y -CONFIG_TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE=y -# CONFIG_THREAD_LOCAL_STORAGE is not set -# end of General Kernel Options - -CONFIG_HAS_DTS=y - -# -# Device Drivers -# -# CONFIG_IEEE802154 is not set -# CONFIG_LORA is not set -CONFIG_CONSOLE=y -CONFIG_CONSOLE_INPUT_MAX_LINE_LEN=128 -CONFIG_CONSOLE_HAS_DRIVER=y -CONFIG_CONSOLE_HANDLER=y -CONFIG_CONSOLE_INIT_PRIORITY=60 -CONFIG_UART_CONSOLE=y -# CONFIG_UART_CONSOLE_DEBUG_SERVER_HOOKS is not set -# CONFIG_UART_CONSOLE_MCUMGR is not set -# CONFIG_RAM_CONSOLE is not set -# CONFIG_IPM_CONSOLE_SENDER is not set -# CONFIG_IPM_CONSOLE_RECEIVER is not set -# CONFIG_UART_PIPE is not set -# CONFIG_UART_MCUMGR is not set -# CONFIG_SEMIHOST_CONSOLE is not set -# CONFIG_UART_CONSOLE_LOG_LEVEL_OFF is not set -# CONFIG_UART_CONSOLE_LOG_LEVEL_ERR is not set -# CONFIG_UART_CONSOLE_LOG_LEVEL_WRN is not set -CONFIG_UART_CONSOLE_LOG_LEVEL_INF=y -# CONFIG_UART_CONSOLE_LOG_LEVEL_DBG is not set -CONFIG_UART_CONSOLE_LOG_LEVEL=3 -# CONFIG_GSM_MUX is not set -# CONFIG_EC_HOST_CMD_PERIPH is not set -# CONFIG_MDIO is not set -CONFIG_SERIAL=y - -# -# Capabilities -# -CONFIG_SERIAL_HAS_DRIVER=y -CONFIG_SERIAL_SUPPORT_INTERRUPT=y -CONFIG_SERIAL_INIT_PRIORITY=50 -CONFIG_UART_USE_RUNTIME_CONFIGURE=y -# CONFIG_UART_LINE_CTRL is not set -# CONFIG_UART_DRV_CMD is not set -# CONFIG_UART_WIDE_DATA is not set - -# -# Serial Drivers -# -# CONFIG_UART_NS16550 is not set -# CONFIG_UART_ITE_IT8XXX2 is not set -# CONFIG_UART_ALTERA_JTAG is not set -CONFIG_UART_PL011=y -CONFIG_UART_PL011_PORT0=y -# CONFIG_UART_PL011_PORT1 is not set -# CONFIG_UART_PL011_PORT2 is not set -# CONFIG_UART_PL011_SBSA is not set -# CONFIG_UART_XLNX_UARTLITE is not set - -# -# Interrupt Controllers -# -# CONFIG_SWERV_PIC is not set -# CONFIG_MULTI_LEVEL_INTERRUPTS is not set -CONFIG_GIC=y -CONFIG_GIC_V3=y -CONFIG_GIC_VER=3 -# CONFIG_GIC_V3_ITS is not set -# CONFIG_INTC_ESP32 is not set -# end of Interrupt Controllers - -# -# Timer Drivers -# -CONFIG_TIMER_HAS_64BIT_CYCLE_COUNTER=y -# CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME is not set -# CONFIG_SYSTEM_CLOCK_SLOPPY_IDLE is not set -CONFIG_SYSTEM_CLOCK_INIT_PRIORITY=0 -CONFIG_TICKLESS_CAPABLE=y -CONFIG_ARM_ARCH_TIMER=y -# CONFIG_ARM_ARCH_TIMER_ERRATUM_740657 is not set -# CONFIG_HPET_TIMER is not set -CONFIG_RISCV_MACHINE_TIMER_SYSTEM_CLOCK_DIVIDER=0 -# end of Timer Drivers - -# CONFIG_ENTROPY_GENERATOR is not set -# CONFIG_PCIE is not set -# CONFIG_PCIE_ENDPOINT is not set -# CONFIG_SHARED_IRQ is not set -# CONFIG_I2S is not set -# CONFIG_PWM is not set -# CONFIG_PINMUX is not set -# CONFIG_ADC is not set -# CONFIG_DAC is not set -# CONFIG_WATCHDOG is not set -# CONFIG_CLOCK_CONTROL is not set -# CONFIG_PTP_CLOCK is not set -# CONFIG_IPM is not set -# CONFIG_FLASH is not set -# CONFIG_SENSOR is not set -# CONFIG_COUNTER is not set -# CONFIG_DMA is not set -# CONFIG_USB_DEVICE_DRIVER is not set -# CONFIG_CRYPTO is not set -# CONFIG_DISPLAY is not set -# CONFIG_LED_STRIP is not set -# CONFIG_LED is not set -# CONFIG_CAN is not set -# CONFIG_AUDIO is not set -# CONFIG_NEURAL_NET_ACCEL is not set -# CONFIG_HWINFO is not set -# CONFIG_ESPI is not set -# CONFIG_PS2 is not set -# CONFIG_VIDEO is not set -# CONFIG_EEPROM is not set -# CONFIG_PECI is not set -# CONFIG_PECI_INTERRUPT_DRIVEN is not set -# CONFIG_REGULATOR is not set -# CONFIG_MEMC is not set -# CONFIG_VIRTUALIZATION is not set -# CONFIG_EDAC is not set -CONFIG_PM_CPU_OPS=y -# CONFIG_PM_CPU_OPS_LOG_LEVEL_OFF is not set -# CONFIG_PM_CPU_OPS_LOG_LEVEL_ERR is not set -# CONFIG_PM_CPU_OPS_LOG_LEVEL_WRN is not set -CONFIG_PM_CPU_OPS_LOG_LEVEL_INF=y -# CONFIG_PM_CPU_OPS_LOG_LEVEL_DBG is not set -CONFIG_PM_CPU_OPS_LOG_LEVEL=3 -CONFIG_PM_CPU_OPS_HAS_DRIVER=y -CONFIG_PM_CPU_OPS_PSCI=y - -# -# Miscellaneous Drivers -# -# end of Miscellaneous Drivers - -CONFIG_DISK_DRIVERS=y -CONFIG_DISK_DRIVER_RAM=y -CONFIG_DISK_RAM_VOLUME_SIZE=192 -CONFIG_DISK_RAM_VOLUME_NAME="RAM" -# CONFIG_RAMDISK_LOG_LEVEL_OFF is not set -# CONFIG_RAMDISK_LOG_LEVEL_ERR is not set -# CONFIG_RAMDISK_LOG_LEVEL_WRN is not set -CONFIG_RAMDISK_LOG_LEVEL_INF=y -# CONFIG_RAMDISK_LOG_LEVEL_DBG is not set -CONFIG_RAMDISK_LOG_LEVEL=3 -# CONFIG_DISK_DRIVER_FLASH is not set -# CONFIG_CACHE is not set -# CONFIG_SYSCON is not set -# CONFIG_RK3568_SYSCON is not set -# CONFIG_BBRAM is not set -# CONFIG_FPGA is not set -# CONFIG_PINCTRL is not set -# CONFIG_MBOX is not set -# end of Device Drivers - -# -# C Library -# -CONFIG_SUPPORT_MINIMAL_LIBC=y -CONFIG_MINIMAL_LIBC=y -# CONFIG_NEWLIB_LIBC is not set -# CONFIG_EXTERNAL_LIBC is not set -CONFIG_HAS_NEWLIB_LIBC_NANO=y -CONFIG_MINIMAL_LIBC_MALLOC=y -CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=8192 -CONFIG_MINIMAL_LIBC_CALLOC=y -CONFIG_MINIMAL_LIBC_REALLOCARRAY=y -CONFIG_MINIMAL_LIBC_LL_PRINTF=y -# CONFIG_MINIMAL_LIBC_OPTIMIZE_STRING_FOR_SIZE is not set -CONFIG_MINIMAL_LIBC_RAND=y -CONFIG_STDOUT_CONSOLE=y -CONFIG_NEED_LIBC_MEM_PARTITION=y -# end of C Library - -# -# Additional libraries -# -# CONFIG_LVGL is not set - -# -# OS Support Library -# -# CONFIG_JSON_LIBRARY is not set -CONFIG_RING_BUFFER=y -# CONFIG_BASE64 is not set -# CONFIG_SYS_HEAP_VALIDATE is not set -CONFIG_SYS_HEAP_ALLOC_LOOPS=3 -# CONFIG_SYS_HEAP_RUNTIME_STATS is not set -# CONFIG_HEAP_LISTENER is not set -CONFIG_PRINTK_SYNC=y -# CONFIG_MPSC_PBUF is not set -# CONFIG_SHARED_MULTI_HEAP is not set -# CONFIG_REBOOT is not set -CONFIG_CBPRINTF_COMPLETE=y -# CONFIG_CBPRINTF_NANO is not set -CONFIG_CBPRINTF_FULL_INTEGRAL=y -# CONFIG_CBPRINTF_REDUCED_INTEGRAL is not set -# CONFIG_CBPRINTF_FP_SUPPORT is not set -# CONFIG_CBPRINTF_FP_A_SUPPORT is not set -# CONFIG_CBPRINTF_FP_ALWAYS_A is not set -CONFIG_CBPRINTF_N_SPECIFIER=y -# CONFIG_CBPRINTF_LIBC_SUBSTS is not set -# CONFIG_CBPRINTF_PACKAGE_LONGDOUBLE is not set -# CONFIG_CBPRINTF_STATIC_PACKAGE_CHECK_ALIGNMENT is not set -# end of OS Support Library - -CONFIG_POSIX_MAX_FDS=4 -# CONFIG_POSIX_API is not set -# CONFIG_PTHREAD_IPC is not set -# CONFIG_POSIX_CLOCK is not set -CONFIG_MAX_TIMER_COUNT=5 -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_EVENTFD is not set -# CONFIG_OPENAMP_RSC_TABLE is not set - -# -# Util libraries -# -CONFIG_FNMATCH=y -CONFIG_GETOPT=y -# end of Util libraries - -# CONFIG_SMF is not set -# end of Additional libraries - -# -# Sub Systems and OS Services -# - -# -# Controller Area Network (CAN) bus subsystem -# -# CONFIG_ISOTP is not set -# end of Controller Area Network (CAN) bus subsystem - -CONFIG_CONSOLE_SUBSYS=y -# CONFIG_CONSOLE_GETCHAR is not set -CONFIG_CONSOLE_GETLINE=y -# CONFIG_CPLUSPLUS is not set - -# -# System Monitoring Options -# -# CONFIG_THREAD_ANALYZER is not set -# end of System Monitoring Options - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_STACK_USAGE is not set -CONFIG_PRINTK=y -CONFIG_PRINTK_BUFFER_SIZE=32 -CONFIG_EARLY_CONSOLE=y -CONFIG_ASSERT=y -CONFIG_ASSERT_LEVEL=2 -CONFIG_SPIN_VALIDATE=y -# CONFIG_FORCE_NO_ASSERT is not set -CONFIG_ASSERT_VERBOSE=y -# CONFIG_ASSERT_NO_FILE_INFO is not set -# CONFIG_ASSERT_NO_COND_INFO is not set -# CONFIG_ASSERT_NO_MSG_INFO is not set -# CONFIG_OVERRIDE_FRAME_POINTER_DEFAULT is not set -# CONFIG_DEBUG_INFO is not set -# CONFIG_OPENOCD_SUPPORT is not set -# end of Debugging Options - -CONFIG_DISK_ACCESS=y -# CONFIG_DISK_LOG_LEVEL_OFF is not set -# CONFIG_DISK_LOG_LEVEL_ERR is not set -# CONFIG_DISK_LOG_LEVEL_WRN is not set -CONFIG_DISK_LOG_LEVEL_INF=y -# CONFIG_DISK_LOG_LEVEL_DBG is not set -CONFIG_DISK_LOG_LEVEL=3 -# CONFIG_EMUL is not set -# CONFIG_CHARACTER_FRAMEBUFFER is not set - -# -# File Systems -# -# CONFIG_FILE_SYSTEM is not set -# CONFIG_NVS is not set -# end of File Systems - -# -# Inter Processor Communication -# -# CONFIG_RPMSG_SERVICE is not set -# CONFIG_IPC_SERVICE is not set -# end of Inter Processor Communication - -# CONFIG_JWT is not set -CONFIG_LOG=y -# CONFIG_LOG_MODE_DEFERRED is not set -# CONFIG_LOG2_MODE_DEFERRED is not set -# CONFIG_LOG2_MODE_IMMEDIATE is not set -# CONFIG_LOG_MODE_IMMEDIATE is not set -CONFIG_LOG_MODE_MINIMAL=y -# CONFIG_LOG_FRONTEND is not set - -# -# Logging levels filtering -# -CONFIG_LOG_DEFAULT_LEVEL=3 -CONFIG_LOG_OVERRIDE_LEVEL=0 -CONFIG_LOG_MAX_LEVEL=4 -# end of Logging levels filtering - -# -# Misc -# -CONFIG_LOG2_USE_VLA=y -CONFIG_LOG2_ALWAYS_RUNTIME=y -# CONFIG_LOG2_FMT_SECTION is not set -# end of Misc - -# -# Device Management -# - -# -# Host command handler subsystem -# -# CONFIG_EC_HOST_CMD is not set -# end of Host command handler subsystem - -# CONFIG_MCUMGR is not set -# CONFIG_HAWKBIT is not set -# CONFIG_UPDATEHUB is not set -# CONFIG_OSDP is not set -# end of Device Management - -# CONFIG_MODBUS is not set - -# -# Networking -# -# CONFIG_NET_BUF is not set -# CONFIG_NETWORKING is not set -# end of Networking - -# -# Portability -# -# end of Portability - -# -# Power Management -# -# CONFIG_PM is not set -# CONFIG_PM_DEVICE is not set -# end of Power Management - -CONFIG_SHELL=y -# CONFIG_SHELL_LOG_LEVEL_OFF is not set -# CONFIG_SHELL_LOG_LEVEL_ERR is not set -# CONFIG_SHELL_LOG_LEVEL_WRN is not set -CONFIG_SHELL_LOG_LEVEL_INF=y -# CONFIG_SHELL_LOG_LEVEL_DBG is not set -CONFIG_SHELL_LOG_LEVEL=3 -CONFIG_SHELL_BACKENDS=y -CONFIG_SHELL_BACKEND_SERIAL=y -CONFIG_SHELL_BACKEND_SERIAL_INIT_PRIORITY=0 -CONFIG_SHELL_PROMPT_UART="zvm_host:~#" -CONFIG_SHELL_BACKEND_SERIAL_INTERRUPT_DRIVEN=y -CONFIG_SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE=8 -CONFIG_SHELL_BACKEND_SERIAL_RX_RING_BUFFER_SIZE=64 -CONFIG_SHELL_BACKEND_SERIAL_LOG_MESSAGE_QUEUE_TIMEOUT=100 -CONFIG_SHELL_BACKEND_SERIAL_LOG_MESSAGE_QUEUE_SIZE=10 -CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT=y -# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG is not set -# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_INF is not set -# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN is not set -# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR is not set -# CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE is not set -CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL=5 -# CONFIG_SHELL_BACKEND_DUMMY is not set -# CONFIG_SHELL_MINIMAL is not set -CONFIG_SHELL_THREAD_PRIORITY_OVERRIDE=y -CONFIG_SHELL_THREAD_PRIORITY=4 -CONFIG_SHELL_STACK_SIZE=65536 -CONFIG_SHELL_BACKSPACE_MODE_DELETE=y -CONFIG_SHELL_CMD_BUFF_SIZE=256 -CONFIG_SHELL_PRINTF_BUFF_SIZE=30 -CONFIG_SHELL_DEFAULT_TERMINAL_WIDTH=80 -CONFIG_SHELL_DEFAULT_TERMINAL_HEIGHT=24 -CONFIG_SHELL_ARGC_MAX=12 -CONFIG_SHELL_TAB=y -CONFIG_SHELL_TAB_AUTOCOMPLETION=y -CONFIG_SHELL_WILDCARD=y -CONFIG_SHELL_ECHO_STATUS=y -# CONFIG_SHELL_START_OBSCURED is not set -CONFIG_SHELL_VT100_COMMANDS=y -CONFIG_SHELL_VT100_COLORS=y -CONFIG_SHELL_GETOPT=y -CONFIG_SHELL_METAKEYS=y -CONFIG_SHELL_HELP=y -CONFIG_SHELL_HELP_ON_WRONG_ARGUMENT_COUNT=y -CONFIG_SHELL_HISTORY=y -CONFIG_SHELL_HISTORY_BUFFER=512 -CONFIG_SHELL_STATS=y -CONFIG_SHELL_CMDS=y -CONFIG_SHELL_CMDS_RESIZE=y -# CONFIG_SHELL_CMDS_SELECT is not set -CONFIG_SHELL_CMD_ROOT="" -CONFIG_KERNEL_SHELL=y -CONFIG_DEVICE_SHELL=y -CONFIG_DEVMEM_SHELL=y -# CONFIG_STATS is not set -# CONFIG_USB_DEVICE_STACK is not set -# CONFIG_IMG_MANAGER is not set - -# -# Random Number Generators -# -# CONFIG_TEST_RANDOM_GENERATOR is not set -# end of Random Number Generators - -# -# Storage -# -# CONFIG_STREAM_FLASH is not set -# end of Storage - -# CONFIG_SETTINGS is not set -# CONFIG_TASK_WDT is not set - -# -# Testing -# -# CONFIG_ZTEST is not set -# CONFIG_ZTEST_MOCKING is not set -# CONFIG_TEST is not set -# CONFIG_TEST_USERSPACE is not set -CONFIG_TEST_LOGGING_FLUSH_AFTER_TEST=y -# end of Testing - -CONFIG_TIMING_FUNCTIONS=y -# CONFIG_TRACING is not set -CONFIG_ZVM_DEVICE_SUPPORT=y -CONFIG_VIRT_DEVICE_INTERRUPT_DRIVEN=y -CONFIG_VM_VGICV3=y -CONFIG_VM_VGICV3_INIT_PRIORITY=52 -CONFIG_VM_SERIAL1=y -CONFIG_VM_SERIAL2=y -CONFIG_VM_VIRTIO_MMIO=y -CONFIG_VM_VIRTIO_BLOCK=y -CONFIG_VIRTIO_INTERRUPT_DRIVEN=y -CONFIG_VIRTIO_MMIO_INIT_PRIORITY=60 -# CONFIG_VM_FIQ_DEBUGGER is not set -# CONFIG_VM_CLOCK_SYSTEM_CONTROLLER is not set -CONFIG_ZVM=y -CONFIG_MAX_VM_NUM=4 -CONFIG_MAX_VCPU_PER_VM=2 -CONFIG_ZVM_INIT_PRIORITY=80 -CONFIG_ZVM_DEBUG_LOG_INFO=y -# CONFIG_ZVM_TIME_MEASURE is not set -# CONFIG_ZVM_ELF_LOADER is not set -# CONFIG_ZVM_EARLYPRINT_MSG is not set -CONFIG_DTB_FILE_INPUT=y -# CONFIG_VM_DYNAMIC_MEMORY is not set -# end of Sub Systems and OS Services - -CONFIG_TOOLCHAIN_ZEPHYR_0_16=y -CONFIG_TOOLCHAIN_ZEPHYR_SUPPORTS_THREAD_LOCAL_STORAGE=y - -# -# Build and Link Features -# - -# -# Linker Options -# -# CONFIG_LINKER_ORPHAN_SECTION_PLACE is not set -CONFIG_LINKER_ORPHAN_SECTION_WARN=y -# CONFIG_LINKER_ORPHAN_SECTION_ERROR is not set -CONFIG_HAS_FLASH_LOAD_OFFSET=y -# CONFIG_USE_DT_CODE_PARTITION is not set -CONFIG_FLASH_LOAD_OFFSET=0 -CONFIG_FLASH_LOAD_SIZE=0 -CONFIG_LD_LINKER_SCRIPT_SUPPORTED=y -CONFIG_LD_LINKER_TEMPLATE=y -# CONFIG_HAVE_CUSTOM_LINKER_SCRIPT is not set -CONFIG_KERNEL_ENTRY="__start" -CONFIG_LINKER_SORT_BY_ALIGNMENT=y -# CONFIG_SRAM_VECTOR_TABLE is not set -CONFIG_SRAM_OFFSET=0 - -# -# Linker Sections -# -# CONFIG_LINKER_USE_BOOT_SECTION is not set -# CONFIG_LINKER_USE_PINNED_SECTION is not set -CONFIG_LINKER_GENERIC_SECTIONS_PRESENT_AT_BOOT=y -# end of Linker Sections -# end of Linker Options - -# -# Compiler Options -# -# CONFIG_CODING_GUIDELINE_CHECK is not set -# CONFIG_NATIVE_APPLICATION is not set -# CONFIG_SIZE_OPTIMIZATIONS is not set -# CONFIG_SPEED_OPTIMIZATIONS is not set -# CONFIG_DEBUG_OPTIMIZATIONS is not set -CONFIG_NO_OPTIMIZATIONS=y -CONFIG_COMPILER_COLOR_DIAGNOSTICS=y -CONFIG_COMPILER_OPT="" -# CONFIG_MISRA_SANE is not set -# end of Compiler Options - -# CONFIG_ASSERT_ON_ERRORS is not set -# CONFIG_NO_RUNTIME_CHECKS is not set -CONFIG_RUNTIME_ERROR_CHECKS=y - -# -# Build Options -# -CONFIG_KERNEL_BIN_NAME="zvm_host" -CONFIG_OUTPUT_STAT=y -CONFIG_OUTPUT_DISASSEMBLY=y -# CONFIG_OUTPUT_DISASSEMBLE_ALL is not set -CONFIG_OUTPUT_PRINT_MEMORY_USAGE=y -# CONFIG_CLEANUP_INTERMEDIATE_FILES is not set -# CONFIG_BUILD_NO_GAP_FILL is not set -# CONFIG_BUILD_OUTPUT_HEX is not set -# CONFIG_BUILD_OUTPUT_EXE is not set -# CONFIG_BUILD_OUTPUT_S19 is not set -# CONFIG_BUILD_OUTPUT_UF2 is not set -# CONFIG_BUILD_OUTPUT_STRIPPED is not set -# CONFIG_APPLICATION_DEFINED_SYSCALL is not set -# CONFIG_MAKEFILE_EXPORTS is not set -# CONFIG_BUILD_OUTPUT_META is not set -# end of Build Options - -# CONFIG_WARN_EXPERIMENTAL is not set -# end of Build and Link Features - -# -# Boot Options -# -# CONFIG_BOOTLOADER_MCUBOOT is not set -# CONFIG_BOOTLOADER_BOSSA is not set -# end of Boot Options - -# -# Compatibility -# -CONFIG_COMPAT_INCLUDES=y -# end of Compatibility diff --git a/compare.dts b/compare.dts deleted file mode 100644 index 544530d196f91da08208382118c1d4fa996ff789..0000000000000000000000000000000000000000 Binary files a/compare.dts and /dev/null differ diff --git a/include/virtualization/os/os_linux.h b/include/virtualization/os/os_linux.h index 386c10bb450b634b320fa0214c174ea12bd3fb92..d9c2789b8ea6f761f9d9469603f2e31c18279ccd 100644 --- a/include/virtualization/os/os_linux.h +++ b/include/virtualization/os/os_linux.h @@ -17,7 +17,13 @@ * LINUX_VM_IMAGE_BASE presents that the linux image base * in the ddr(@TODO: In the disk better). And LINUX_VM_IMAGE_SIZE * presents the linux image size in the ddr. -*/ + * LINUX_VM_IMAGE_BASE: Linux VM image base; + * LINUX_VM_IMAGE_SIZE: Linux VM image size; + * LINUX_VMSYS_BASE: Linux VM virtual memory base; + * LINUX_VMSYS_SIZE: Linux VM virtual memory size; + * LINUX_VMCPY_BASE: Linux VM image tmp base; + * LINUX_VMCPY_SIZE: Linux VM image tmp size; + */ #define LINUX_VM_IMAGE_BASE DT_REG_ADDR(DT_NODELABEL(linux_ddr)) #define LINUX_VM_IMAGE_SIZE DT_REG_SIZE(DT_NODELABEL(linux_ddr)) #define LINUX_VMSYS_BASE DT_PROP(DT_NODELABEL(linux_ddr), vm_reg_base) diff --git a/zvm_doc/4_Run_on_ROC_RK3568_PC.rst b/zvm_doc/4_Run_on_ROC_RK3568_PC.rst index 94bf2b6f4e78efdd826a552f3b71a533e97cf2b7..67d71d905d7638244d599475827111ff903b0d64 100644 --- a/zvm_doc/4_Run_on_ROC_RK3568_PC.rst +++ b/zvm_doc/4_Run_on_ROC_RK3568_PC.rst @@ -112,6 +112,9 @@ rk3568板卡通电,使用串口助手连接板卡后,启动时长按`ctrl + - uart3: 分配给Zephyr虚拟机 - uart9: 分配给其他虚拟机 +注:进行测试时尽可能3个串口都连接上,不然可能出现由于串口浮空导致的异常 +中断问题; + .. code:: shell mw 0xfdc60000 0xffff0022 #写入串口uart3配置 @@ -126,7 +129,7 @@ rk3568板卡通电,使用串口助手连接板卡后,启动时长按`ctrl + tftp 0x10000000 zvm_host.bin #下载zvm镜像 tftp 0x01000000 zephyr.bin #下载zephyr vm镜像 - tftp 0x60000000 Image #下载linux vm镜像 + tftp 0xe0000000 Image #下载linux vm镜像 tftp 0x99000000 rk3568-firefly-roc-pc-simple.dtb #下载linux 设备树镜像 tftp 0x69000000 debian_rt.cpio.gz #下载linux rootfs镜像