ACRN is a flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind, optimized to streamline embedded development through an open source platform. It is built for embedded IOT with small footprint and real-time features. More details can be found in https://projectacrn.org/
This is the patch set that allows the Linux to work on ACRN hypervisor and it can work with the following patch set to manage the Linux guest on acrn-hypervisor. It includes the detection of acrn_hypervisor, upcall notification vector from hypervisor, hypercall. The hypervisor detection is similar to Xen/VMWARE/Hyperv. ACRN also uses the upcall notification mechanism similar to that in Xen/Microsoft HyperV when it needs to send the notification to Linux OS. The hypercall provides the mechanism that can be used to query/configure the acrn-hypervisor by Linux guest. Following this patch set, we will send acrn driver part, which provides the interface that can be used to manage the virtualized CPU/memory/device/interrupt for other guest OS after the acrn hypervisor is detected. v1->v2: Change the CONFIG_ACRN to CONFIG_ACRN_GUEST, which makes it easy to understand. Remove the export of x86_hyper_acrn. Remove the unused API definition of acrn_setup_intr_handler and acrn_remove_intr_handler. Adjust the order of header file Add the declaration of acrn_hv_vector_handler and tracing definition of acrn_hv_callback_vector. Refine the comments for the function of acrn_hypercall0/1/2 v2-v3: Add one new config symbol to unify the conditional definition of hv_irq_callback_count Use the "vmcall" mnemonic to replace the hard-code byte definition Remove the unnecessary dependency of CONFIG_PARAVIRT for ACRN_GUEST Zhao Yakui (4): x86: Add new config symbol to unify conditional definition of hv_irq_callback_count x86: Add the support of ACRN guest x86: Use HYPERVISOR_CALLBACK_VECTOR for acrn_guest upcall vector x86: Add hypercall for acrn_guest arch/x86/Kconfig | 12 +++++ arch/x86/entry/entry_64.S | 5 +++ arch/x86/include/asm/acrn_hypercall.h | 82 +++++++++++++++++++++++++++++++++++ arch/x86/include/asm/acrnhyper.h | 19 ++++++++ arch/x86/include/asm/hardirq.h | 2 +- arch/x86/include/asm/hypervisor.h | 1 + arch/x86/kernel/cpu/Makefile | 1 + arch/x86/kernel/cpu/acrn.c | 57 ++++++++++++++++++++++++ arch/x86/kernel/cpu/hypervisor.c | 4 ++ arch/x86/kernel/irq.c | 2 +- arch/x86/xen/Kconfig | 1 + drivers/hv/Kconfig | 1 + 12 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 arch/x86/include/asm/acrn_hypercall.h create mode 100644 arch/x86/include/asm/acrnhyper.h create mode 100644 arch/x86/kernel/cpu/acrn.c -- 2.7.4