Giter Site home page Giter Site logo

xvisor / xvisor Goto Github PK

View Code? Open in Web Editor NEW
512.0 512.0 240.0 21.98 MB

Xvisor: eXtensible Versatile hypervISOR

Home Page: http://xhypervisor.org

License: GNU General Public License v2.0

Makefile 1.17% C 95.36% C++ 0.29% Assembly 1.11% Python 0.03% Tcl 0.04% Shell 0.50% Lex 0.04% Yacc 0.08% Perl 0.40% Roff 0.97%

xvisor's Introduction

Build Status

Xvisor

http://xvisor.org

http://xhypervisor.org

Please read this document carefully, as it tell you what this is all about, explain how to build and use the hypervisor, and what to do if something goes wrong.

What Is Xvisor?

The term Xvisor can stand for: eXtensible versatile hypervisor.

Xvisor is an open-source type-1 hypervisor, which aims at providing a monolithic, light-weight, portable, and flexible virtualization solution.

It provides a high performance and low memory foot print virtualization solution for ARMv7a-ve, ARMv8a, x86_64, RISC-V, and other CPU architectures.

Xvisor primarily supports Full virtualization hence, supports a wide range of unmodified Guest operating systems. Paravirtualization is optional for Xvisor and will be supported in an architecture independent manner (such as VirtIO PCI/MMIO devices) to ensure no-change in Guest OS for using paravirtualization.

It has most features expected from a modern hypervisor, such as:

  • Device tree based configuration,
  • Tickless and high resolution timekeeping,
  • Threading framework,
  • Host device driver framework,
  • IO device emulation framework,
  • Runtime loadable modules,
  • Pass-through hardware access,
  • Dynamic guest creation/destruction,
  • Managment terminal,
  • Network virtualization,
  • Input device virtualization,
  • Display device virtualization,
  • and many more.

It is distributed under the GNU General Public License. See the accompanying COPYING file for more details.

On What Hardware Does It Run?

The Xvisor source code is highly portable and can be easily ported to most general-purpose 32-bit or 64-bit architectures as long as they have a paged memory management unit (PMMU) and a port of the GNU C compiler (GCC).

Please refer to the HOSTS text file in top-level directory of source code for a detailed and formatted list of supported host hardware.

Documentation

For Xvisor we prefer source level documentation more, so wherever possible we describe stuff directly in the source code. This helps us maintain source and its documentation at the same place.

For source level documentation we strictly follow Doxygen style.

Please refer Doxygen manual for details.

In addition, we also have various README files in the docs subdirectory. Please refer docs/00-INDEX for a list of what is contained in each file or sub-directory.

Output Directory

When compiling/configuring hypervisor all output files will by default be stored in a directory called build in hypervisor source directory.

Using the option make O=<output_dir> allow you to specify an alternate place for the output files (including .config).

Note

If the O=<output_dir> option is to be used then it must be used for all invocations of make.

Configuring

Do not skip this step even if you are only upgrading one minor version.

New configuration options are added in each release, and odd problems will turn up if the configuration files are not set up as expected.

If you want to carry your existing configuration to a new version with minimal work, use make oldconfig, which will only ask you for the answers to new questions.

To configure hypervisor use one the following command:

make <configuration_command>

or

make O=<output_dir> <configuration_command>

Various configuration commands (<configuration_command>) are:

  • config - Plain text interface.
  • menuconfig - Text based color menus, radiolists & dialogs.
  • oldconfig - Default all questions based on the contents of your existing ./.config file and asking about new config symbols.
  • <xyz>_defconfig - Create a ./.config file by using the default values from arch/$ARCH/configs/<xyz>_defconfig.

For configuration Xvisor uses Openconf, which is a modified version of Linux Kconfig. The motivation behing Openconf is to get Xvisor specific information from environment variables, and to later extend the syntax of Kconfig to check for dependent libraries & tools at configuration time.

For more information refer to Openconf Syntax.

Compiling

Make sure you have at least gcc 4.x available.

To compile hypervisor use one the following command:

make

or

make O=<output_dir>

Verbose compile/build output

Normally the hypervisor build system runs in a fairly quiet mode (but not totally silent). However, sometimes you or other hypervisor developers need to see compile, link, or other commands exactly as they are executed. For this, use verbose build mode by inserting VERBOSE=y in the make command

make VERBOSE=y

Testing

The above steps of configuring and/or compiling are common steps for any architecture but, this is not sufficient for running hypervisor. We also need guidelines for configuring/compiling/running a guest OS in hypervisor environment. Some guest OS may even expect specific type of hypervisor configuration at compile time. Sometimes we may also need to patch a guest OS for proper functioning under hypervisor environment.

The guidelines required for running a guest OS on a particular type of guest (Guest CPU + Guest Board) can be found under directory:

tests/<Guest CPU>/<Guest Board>/README

Please refer to this README for getting detailed information on running a particular type of OS on particular type of guest in hypervisor.


And finally remember

It's all JUST FOR FUN....

.:: HAPPY HACKING ::.

xvisor's People

Contributors

acdkynesim avatar alistair23 avatar aprsharma avatar atishp04 avatar avpatel avatar bhargavshah1988 avatar elebihan avatar endeneer avatar hschauhan avatar jcdubois avatar jimmydurandwesolowski avatar jolivain avatar jserv avatar julienvdg avatar oza-pawandeep avatar pa007 avatar pborzenkov avatar pitti avatar pkanni avatar psawargaonkar avatar sanjeev-pandita avatar soccercheng avatar songjf-ttk avatar sukantoghosh avatar thatsjindal avatar thjagad avatar tonosaman avatar upcbharat avatar vppillai avatar ycoroneos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xvisor's Issues

Port FreeRTOS v12.0.0

Hi,

I would like to port FreeRTOS v12.0.0 on Xvisor. The instructions under test/arm32/vexpress-a9/freertos refer to FreeRTOS v.9.0.0 and the provided patches are outdated.

Could I please get some help on what changes I would need to apply or how can I achieve my goal?

VFS error when booting Linux for RISC-V

Hello,

I'm following the instructions in riscv64-spike.txt to boot Linux (5.15.78) using Spike and the latest xvisor-next repo, and a VFS error has occurred:

XVisor# guest kick guest0
guest kick guest0
guest0: Kicked
XVisor# vserial bind guest0/uart0
vserial bind guest0/uart0
[guest0/uart0] RISC-V SBI specification v1.0 detected
[guest0/uart0] RISC-V SBI implementation ID=0x2 Version=0x3001
[guest0/uart0]
[guest0/uart0] RISC-V Virt64 Basic Firmware
[guest0/uart0]
[guest0/uart0] autoboot: disabled
[guest0/uart0]
[guest0/uart0] basic# autoexec
[guest0/uart0]
[guest0/uart0] autoexec(copy 0x80200000 0x00100000 0x1E00000)
[guest0/uart0] copy took 75210 usecs for 0x1E00000 bytes
[guest0/uart0] autoexec(copy 0x83000000 0x01F00000 0x020000)
[guest0/uart0] copy took 320 usecs for 0x020000 bytes
[guest0/uart0] autoexec(copy 0x83100000 0x02000000 0x1000000)
[guest0/uart0] copy took 40135 usecs for 0x1000000 bytes
[guest0/uart0] autoexec(start_linux_fdt 0x80200000 0x83000000 0x83100000 0x1000000)
[guest0/uart0] Trying to set new bootargs: root=/dev/ram rw console=ttyS0,115200 earlycon=uart8250,mmio,0x10000000 mem=256M
[guest0/uart0] Jumping into linux ...
[guest0/uart0] [    0.000000] Linux version 5.15.78 (xwan@rios-cad5) (riscv64-unknown-linux-gnu-gcc (g2ee5e430018) 12.2.0, GNU ld (GNU Bi[guest0/uart0] 2 SMP Mon Nov 14 16:26:02 CST 2022
[guest0/uart0] [    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[guest0/uart0] [    0.000000] Machine model: Virt64
[guest0/uart0] [    0.000000] earlycon: uart8250 at MMIO 0x0000000010000000 (options '')
[guest0/uart0] [    0.000000] printk: bootconsole [uart8250] enabled
[guest0/uart0] [    0.000000] Memory limited to 256MB
[guest0/uart0] [    0.000000] efi: UEFI not found.
[guest0/uart0] [    0.000000] Reserved memory: created DMA memory pool at 0x0000000058000000, size 16 MiB
[guest0/uart0] [    0.000000] OF: reserved mem: initialized node shmem@58000000, compatible id shared-dma-pool
[guest0/uart0] [    0.000000] Zone ranges:
[guest0/uart0] [    0.000000]   DMA32    [mem 0x0000000080200000-0x000000008fffffff]
[guest0/uart0] [    0.000000]   Normal   empty
[guest0/uart0] [    0.000000] Movable zone start for each node
[guest0/uart0] [    0.000000] Early memory node ranges
[guest0/uart0] [    0.000000]   node   0: [mem 0x0000000080200000-0x000000008fffffff]
[guest0/uart0] [    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff]
[guest0/uart0] [    0.000000] SBI specification v1.0 detected
[guest0/uart0] [    0.000000] SBI implementation ID=0x2 Version=0x3001
[guest0/uart0] [    0.000000] SBI TIME extension detected
[guest0/uart0] [    0.000000] SBI IPI extension detected
[guest0/uart0] [    0.000000] SBI RFENCE extension detected
[guest0/uart0] [    0.000000] SBI v0.2 HSM extension detected
[guest0/uart0] [    0.000000] riscv: ISA extensions acdfim
[guest0/uart0] [    0.000000] riscv: ELF capabilities acdfim
[guest0/uart0] [    0.000000] percpu: Embedded 17 pages/cpu s30440 r8192 d31000 u69632
[guest0/uart0] [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64135
[guest0/uart0] [    0.000000] Kernel command line: root=/dev/ram rw console=ttyS0,115200 earlycon=uart8250,mmio,0x10000000 mem=256M
[guest0/uart0] [    0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[guest0/uart0] [    0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[guest0/uart0] [    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[guest0/uart0] [    0.000000] Virtual kernel memory layout:
[guest0/uart0] [    0.000000]       fixmap : 0xffffffcefee00000 - 0xffffffceff000000   (2048 kB)
[guest0/uart0] [    0.000000]       pci io : 0xffffffceff000000 - 0xffffffcf00000000   (  16 MB)
[guest0/uart0] [    0.000000]      vmemmap : 0xffffffcf00000000 - 0xffffffcfffffffff   (4095 MB)
[guest0/uart0] [    0.000000]      vmalloc : 0xffffffd000000000 - 0xffffffdfffffffff   (65535 MB)
[guest0/uart0] [    0.000000]      modules : 0xffffffff01125000 - 0xffffffff80000000   (2030 MB)
[guest0/uart0] [    0.000000]       lowmem : 0xffffffe000000000 - 0xffffffe00fe00000   ( 254 MB)
[guest0/uart0] [    0.000000]       kernel : 0xffffffff80000000 - 0xffffffffffffffff   (2047 MB)
[guest0/uart0] [    0.000000] Memory: 221132K/260096K available (6226K kernel code, 4847K rwdata, 2048K rodata, 2158K init, 305K bss, 389[guest0/uart0] K cma-reserved)
[guest0/uart0] [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[guest0/uart0] [    0.000000] rcu: Hierarchical RCU implementation.
[guest0/uart0] [    0.000000] rcu:      RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[guest0/uart0] [    0.000000] rcu:      RCU debug extended QS entry/exit.
[guest0/uart0] [    0.000000]   Tracing variant of Tasks RCU enabled.
[guest0/uart0] [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[guest0/uart0] [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[guest0/uart0] [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[guest0/uart0] [    0.000000] riscv-intc: 64 local interrupts mapped
[guest0/uart0] [    0.000000] plic: interrupt-controller@c000000: mapped 31 interrupts with 2 handlers for 4 contexts.
[guest0/uart0] [    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[guest0/uart0] [    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120[guest0/uart0]
[guest0/uart0] [    0.000000] sched_clock: 64 bits at 10MHz, resolution 100ns, wraps every 4398046511100ns
[guest0/uart0] [    0.001695] Console: colour dummy device 80x25
[guest0/uart0] [    0.002650] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=40000)
[guest0/uart0] [    0.004590] pid_max: default: 32768 minimum: 301
[guest0/uart0] [    0.005670] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[guest0/uart0] [    0.007085] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[guest0/uart0] [    0.009485] ASID allocator using 16 bits (65536 entries)
[guest0/uart0] [    0.010685] rcu: Hierarchical SRCU implementation.
[guest0/uart0] [    0.011785] EFI services will not be available.
[guest0/uart0] [    0.012890] smp: Bringing up secondary CPUs ...
[guest0/uart0] [    0.014275] smp: Brought up 1 node, 2 CPUs
[guest0/uart0] [    0.015475] devtmpfs: initialized
[guest0/uart0] [    0.016920] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[guest0/uart0] [    0.018785] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[guest0/uart0] [    0.020900] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[guest0/uart0] [    0.028800] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[guest0/uart0] [    0.030480] vgaarb: loaded
[guest0/uart0] [    0.031270] SCSI subsystem initialized
[guest0/uart0] [    0.032365] usbcore: registered new interface driver usbfs
[guest0/uart0] [    0.033500] usbcore: registered new interface driver hub
[guest0/uart0] [    0.034595] usbcore: registered new device driver usb
[guest0/uart0] [    0.062325] clocksource: Switched to clocksource riscv_clocksource
[guest0/uart0] [    0.063760] simple-framebuffer 50000000.simplefb: framebuffer at 0x50000000, 0x1000000 bytes
[guest0/uart0] [    0.065415] simple-framebuffer 50000000.simplefb: format=a8r8g8b8, mode=1600x900x32, linelength=6400
[guest0/uart0] [    0.091020] Console: switching to colour frame buffer device 200x56
[guest0/uart0] [    0.113990] simple-framebuffer 50000000.simplefb: fb0: simplefb registered!
[guest0/uart0] [    0.122965] NET: Registered PF_INET protocol family
[guest0/uart0] [    0.124080] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[guest0/uart0] [    0.126015] tcp_listen_portaddr_hash hash table entries: 128 (order: 0, 5120 bytes, linear)
[guest0/uart0] [    0.127625] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[guest0/uart0] [    0.129165] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear)
[guest0/uart0] [    0.130695] TCP bind hash table entries: 2048 (order: 4, 65536 bytes, linear)
[guest0/uart0] [    0.132150] TCP: Hash tables configured (established 2048 bind 2048)
[guest0/uart0] [    0.133525] UDP hash table entries: 256 (order: 2, 24576 bytes, linear)
[guest0/uart0] [    0.134855] UDP-Lite hash table entries: 256 (order: 2, 24576 bytes, linear)
[guest0/uart0] [    0.136350] NET: Registered PF_UNIX/PF_LOCAL protocol family
[guest0/uart0] [    0.137985] RPC: Registered named UNIX socket transport module.
[guest0/uart0] [    0.139170] RPC: Registered udp transport module.
[guest0/uart0] [    0.140145] RPC: Registered tcp transport module.
[guest0/uart0] [    0.141150] RPC: Registered tcp NFSv4.1 backchannel transport module.
[guest0/uart0] [    0.142425] PCI: CLS 0 bytes, default 64
[guest0/uart0] [    0.143730] Unpacking initramfs...
[guest0/uart0] [    0.156315] workingset: timestamp_bits=62 max_order=16 bucket_order=0
[guest0/uart0] [    0.224455] NFS: Registering the id_resolver key type
[guest0/uart0] [    0.225560] Key type id_resolver registered
[guest0/uart0] [    0.226445] Key type id_legacy registered
[guest0/uart0] [    0.227355] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[guest0/uart0] [    0.228705] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[guest0/uart0] [    0.230195] 9p: Installing v9fs 9p2000 file system support
[guest0/uart0] [    0.231495] NET: Registered PF_ALG protocol family
[guest0/uart0] [    0.232535] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[guest0/uart0] [    0.233975] io scheduler mq-deadline registered
[guest0/uart0] [    0.245000] io scheduler kyber registered
[guest0/uart0] [    0.629100] Freeing initrd memory: 16384K
[guest0/uart0] [    0.635835] virtio_rpmsg_bus virtio3: rpmsg host is online
[guest0/uart0] [    0.638625] input: Xvisor VirtIO Input as /devices/platform/smb/20004000.virtio_input/virtio4/input/input0
[guest0/uart0] [    0.658480] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[guest0/uart0] [    0.660385] printk: console [ttyS0] disabled
[guest0/uart0] [    0.661335] 10000000.uart: ttyS0 at MMIO 0x10000000 (irq = 1, base_baud = 230400) is a 16550A
[guest0/uart0] [    0.663020] printk: console [ttyS0] enabled
[guest0/uart0] [    0.663020] printk: console [ttyS0] enabled
[guest0/uart0] [    0.664835] printk: bootconsole [uart8250] disabled
[guest0/uart0] [    0.664835] printk: bootconsole [uart8250] disabled
[guest0/uart0] [    0.671215] loop: module loaded
[guest0/uart0] [    0.672225] virtio_blk virtio1: [vda] 0 512-byte logical blocks (0 B/0 B)
[guest0/uart0] [    0.675765] e1000e: Intel(R) PRO/1000 Network Driver
[guest0/uart0] [    0.676835] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[guest0/uart0] [    0.678085] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[guest0/uart0] [    0.679490] ehci-pci: EHCI PCI platform driver
[guest0/uart0] [    0.680490] ehci-platform: EHCI generic platform driver
[guest0/uart0] [    0.681605] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[guest0/uart0] [    0.682860] ohci-pci: OHCI PCI platform driver
[guest0/uart0] [    0.683825] ohci-platform: OHCI generic platform driver
[guest0/uart0] [    0.685250] usbcore: registered new interface driver uas
[guest0/uart0] [    0.686380] usbcore: registered new interface driver usb-storage
[guest0/uart0] [    0.687695] mousedev: PS/2 mouse device common for all mice
[guest0/uart0] [    0.689105] goldfish_rtc 10003000.rtc: registered as rtc0
[guest0/uart0] [    0.690240] goldfish_rtc 10003000.rtc: setting system clock to 1970-01-01T00:00:07 UTC (7)
[guest0/uart0] [    0.692000] sdhci: Secure Digital Host Controller Interface driver
[guest0/uart0] [    0.693280] sdhci: Copyright(c) Pierre Ossman
[guest0/uart0] [    0.694225] sdhci-pltfm: SDHCI platform and OF driver helper
[guest0/uart0] [    0.695570] usbcore: registered new interface driver usbhid
[guest0/uart0] [    0.696750] usbhid: USB HID core driver
[guest0/uart0] [    0.697990] NET: Registered PF_INET6 protocol family
[guest0/uart0] [    0.699740] Segment Routing with IPv6
[guest0/uart0] [    0.700635] In-situ OAM (IOAM) with IPv6
[guest0/uart0] [    0.701530] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[guest0/uart0] [    0.703035] NET: Registered PF_PACKET protocol family
[guest0/uart0] [    0.704200] 9pnet: Installing 9P2000 support
[guest0/uart0] [    0.705210] Key type dns_resolver registered
[guest0/uart0] [    0.706450] debug_vm_pgtable: [debug_vm_pgtable         ]: Validating architecture page table helpers
[guest0/uart0] [    0.709390] VFS: Cannot open root device "ram" or unknown-block(1,0): error -6
[guest0/uart0] [    0.710825] Please append a correct "root=" boot option; here are the available partitions:
[guest0/uart0] [    0.712485] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
[guest0/uart0] [    0.714095] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.15.78 #2
[guest0/uart0] [    0.715320] Hardware name: Virt64 (DT)
[guest0/uart0] [    0.716150] Call Trace:
[guest0/uart0] [    0.716770] [<ffffffff800049e8>] dump_backtrace+0x1c/0x24
[guest0/uart0] [    0.717890] [<ffffffff80607be8>] show_stack+0x2c/0x38
[guest0/uart0] [    0.718950] [<ffffffff8060a8e2>] dump_stack_lvl+0x40/0x58
[guest0/uart0] [    0.720135] [<ffffffff8060a90e>] dump_stack+0x14/0x1c
[guest0/uart0] [    0.721210] [<ffffffff80607dc8>] panic+0xf6/0x29c
[guest0/uart0] [    0.722210] [<ffffffff80801390>] mount_block_root+0x17c/0x22e
[guest0/uart0] [    0.723390] [<ffffffff80801632>] mount_root+0x1f0/0x220
[guest0/uart0] [    0.724480] [<ffffffff808017a4>] prepare_namespace+0x142/0x184
[guest0/uart0] [    0.725675] [<ffffffff80800fb2>] kernel_init_freeable+0x1f0/0x20a
[guest0/uart0] [    0.726915] [<ffffffff8060f626>] kernel_init+0x1e/0x104
[guest0/uart0] [    0.728005] [<ffffffff80003080>] ret_from_exception+0x0/0xc
[guest0/uart0] [    0.729155] SMP: stopping secondary CPUs
[guest0/uart0] [    0.749545] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0) ]---
[guest0/uart0]

I also tried Linux 6.0.7 and got the same problem.
Could you help me about why it occurs and how to fix it?
Thanks!

Port xvisor to new platform

Hi,
We have xvisor support for R-Car H2 legar board.
I have R-Car H3 (starter kit). What are changes need to port xvisor on R-Car H3 (starter kit).

Please give me any suggestion

Thanks&Regards,
Gopal

Derivative fork is violating the license

The PS4 emulator PCSX4 claims to be 'partial open-source' despite including GPLv2 code (in particular, this fork of XVisor. they also squashed the commit tree)

Might want to send them a C&D to either release their source or discontinue distribution. Although, given that they've been distributing it for a while now, pointing out that they are required to publish the source to the entire application, and threatening to involve the (politically irrelevant, but have the teeth) FSF to make them release the source if they don't might be the better option.

Printing messy code during booting kernel

Hi there. I am using Raspberry 3B+ to run Xvisor and some messy code occurred after starting kernel following the instructions.
My baud rate is 115200. Same situation happens both on v0.3.1 and v0.3.0.
Is there anything I can do to fix this? Here are the logs of booting steps.

U-Boot 2017.09 (Oct 25 2022 - 11:18:34 +0800)

DRAM:  960 MiB
RPI: Board rev 0xd outside known range
RPI Unknown model (0xa020d3)
MMC:   sdhci@7e300000: 0
reading uboot.env

** Unable to read "uboot.env" from mmc0:1 **
Using default environment

In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   No ethernet found.
starting USB...
USB0:   Core Release: 2.80a
scanning bus 0 for devices... 4 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
U-Boot> mmc dev 0:0
switch to partitions #0, OK
mmc0 is current device
U-Boot> ext4load mmc 0:2 0x200000 uvmm.bin
1716312 bytes read in 199 ms (8.2 MiB/s)
U-Boot> ext4load mmc 0:2 0x800000 bcm2837-rpi-3-b.dtb
3787 bytes read in 120 ms (30.3 KiB/s)
U-Boot> ext4load mmc 0:2 0x2000000 udisk.img
33554496 bytes read in 1847 ms (17.3 MiB/s)
U-Boot> bootm 0x200000 0x2000000 0x800000
## Booting kernel from Legacy Image at 00200000 ...
   Image Name:   Xvisor
   Image Type:   AArch64 Linux Kernel Image (uncompressed)
   Data Size:    1716248 Bytes = 1.6 MiB
   Load Address: 00080000
   Entry Point:  00080000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
   Image Name:   Xvisor Ramdisk
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    33554432 Bytes = 32 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00800000
   Booting using the fdt blob at 0x800000
   Loading Kernel Image ... OK
   Loading Ramdisk to 39b4f000, end 3bb4f000 ... OK
   reserving fdt memory region: addr=0 size=8000
   Loading Device Tree to 0000000039b4b000, end 0000000039b4eeca ... OK

Starting kernel ...

5M▒YKA▒UQS▒▒
w▒▒         B\[▒T▒▒
   m▒u▒S▒       ▒mXQQQQA▒▒▒M▒W!
                               m▒▒u▒VZ)▒▒QQS\Qi▒▒▒S▒▒UK\A▒
                                                          ▒KXqc▒XQQQQQ▒▒▒Q]UK
                                                                             m▒▒ukP▒▒
                                                                                     ▒▒QQS\Qi▒▒▒WW▒Bt@▒NHV▒u
                                                                                                            ▒QQQQQQQ▒▒[▒UB\▒ʝ▒՝q▒yQQQSEAӟF[Ѫ▒▒c▒M▒▒V▒u
                                                                                                                                                      ▒QQQQUQQ▒▒QK
    m▒u▒S▒▒՝uXyQQQQQw▒m▒]▒Km@uԍ▒՝Z1▒▒XQQQQQAӟFUU▒
                                                 m▒X5^▒▒▒qc▒QQW%▒Qwk▒[-
                                                                       m▒▒u▒▒V▒u
                                                                                ▒QQQW%eQ▒▒▒Q▒K\AS▒▒n▒▒S▒K\Q▒Vq[▒m@c▒▒L▒P͙▒BSa▒/T1▒-
                                                                                                                                  m▒X!▒JE\▒P▒▒R▒
                                                                                                                                                O
                                                                                                                                                 m▒X!▒ɝZ5▒▒▒▒@▒▒BSq▒
      ▒s▒H▒▒3ABVŚ▒B\[▒▒@I▒▒▒B\B
cXcBv@▒ZEH▒▒PKLA͝X%▒
V▒BSw͛kB\▒K▒s▒EC▒͝C▒K▒
k։▒C
    LQcV▒V▒▒TBm@i▒▒M▒Xw[▒▒▒
)▒▒▒mBi▒▒▒w▒Ռ▒             m@i▒▒M▒XwCk▒kO▒c▒J▒X▒▒
)▒՝X▒▒3A▒]▒▒E m▒N▒▒kq▒▒HBm@k▒▒▒▒▒▒
                  rK\A▒Z▒K▒▒Y▒▒K\A▒▒
▒B▒▒mBZg▒C▒▒n▒͝C▒M▒▒M▒X%▒▒
                         rA
                           \Q▒M▒▒▒
R▒q▒JEY▒▒kF                       ▒VCՈ▒▒]DCtP▒
▒S▒▒▒
     rK\Ac▒▒▒V▒SNHFR[▒в▒Z)R▒NP▒PPK▒
                                   w▒Ӎ▒
                                       ▒JXg
                                           m▒E▒
e\S)▒▒Ґ▒
▒▒kFRt▒V▒k▒▒RC▒N▒u[▒▒V▒
                 r▒X-▒▒]PK\u▒▒▒▒D▒▒R▒X%▒▒VE▒P9щeQAy▒▒%QKPKLA▒RC▒Ce[Nm▒k▒▒X▒e]k▒▒X!R▒▒m▒w▒He▒Qw▒RP▒\VSŀ▒▒y▒▒A▒Qo▒▒▒Ђ▒T▒▒▒▒TQ▒▒TQ-PVS▒▒TC
e\jk▒▒;+Rs▒▒i▒.Z        ▒
                         A[▒@▒P%▒▒wT▒F▒)R]%▒▒sSU▒%֒▒▒▒S▒▒▒▒▒;+Rw,▒)n▒.▒͝QQ▒▒▒Sg
▒u\.▒Ő▒▒9▒QQ    ▒M▒▒]e[▒Pa▒s▒▒C▒FQ▒▒[▒͓ZHeYQQ▒M▒▒▒ELIMQ3▒T▒SV#▒
▒gL▒[▒Ң̀T{▒XtPZrLVE▒ ▒u[N▒^R▒▒#▒3AoSo▒▒3%o▒[T
{▒u▒▒▒kss^▒▒^S▒▒s▒▒▒s▒▒▒▒▒A\▒]▒▒P▒XmQ▒▒܊^Q▒▒
mBtP▒s▒HAՃ▒
           O▒sy▒▒H▒T!▒Ț▒J▒T)▒
                             O▒▒H
▒u▒▒▒FJH\]1؃▒▒B{▒5▒▒uO[݉▒PR▒▒▒▒▒iR▒▒yQQQQQw\C▒▒P_▒▒
   ▒H])C▒QQQQQQA▒YYu▒▒▒H
]iC▒▒PyQQQeD▒
P횀O▒▒▒▒▒▒▒iR▒QQQ▒Qws▒UҌ▒▒H
]iC▒▒PyQQQQQwsP횀OS.▒
                     ▒▒▒TQ[N▒9QQQQQQ5▒
                                      SUU▒▒
                                           ▒▒iP▒▒yQQQ▒QQ▒PuS▒uZ▒Xq▒▒▒▒
]iCQXQQ▒        QQ5▒
                    UU▒▒sӌ▒[RVXQQQQQ▒
P▒PZ▒▒ԳO▒
         ▒H
])C▒QQQQYQA▒S▒AҜ▒
                 m▒▒u[▒▒Xu▒@▒▒w▒▒V▒▒ՓXB
AQAXYEQYAAa▒%YYAAAYeB!Y]▒▒▒A!YuAQXYEAYAVA]eAYGAAYBAAYA▒AQYY[Y▒[[Qb▒Y▒VBKYQaWaY
!Y▒Qe▒YAX%)c-AXYPAA▒AAAXGeqEqF▒T1▒XYCoY-
                                        iB޴▒MA▒YPc▒
                                                   ▒▒[▒
s▒▒B▒VE▒▒K▒^TBO▒T▒Q%T▒S.▒UKr▒▒B\E1      e^S            ▒TM\[
▒Qb-▒▒ʚw▒a▒e^S▒▒▒▒U▒AT▒▒ݜU-▒Z▒bQ{sEs\▒֋    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
s▒▒j▒Ő▒/T%▒T{▒▒▒▒Q%T▒S.▒WQ      j▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

How to run multiple guests?

I ran Xvisor for Vexpress-A9 emulated by QEMU successfully according to the guidance in Vexpress-A9.txt.
but there is only one guest .

image

How to run multiple guests in xvisor? How to create another guest?
Do I need to modify the parameter settings in the make process?

clocksource initialisation raises fatal error

Hello,

I don't know if is supposed to be posted here but I'll try.

I use the guest clock to count time but when I call vmm_clocksource_init(); it raises the following error:

FATAL: do_prefetch_abort: cannot find reserved page
do_prefetch_abort: ifsr = 0x00000007, ifar = 0xff10803c
0xFF003950 do_prefetch_abort+0x2d4/0x370
0xFF0005F8 _prefetch_abort+0x78/0xc0
0xFF0349C4 vmm_cmdmgr_execute_cmd+0x3c/0x88
0xFF034B5C vmm_cmdmgr_execute_cmdstr+0x14c/0x18c
0xFF060740 mterm_main+0xa8/0xb8
0xFF031E90 vmm_threads_entry+0x34/0x7c
0x00000000 _start+0x1000000/0xa8
FATAL: Please reset the system ...

stuck on OpenSBI when running risc-v in xvisor

i follow this docs/riscv/riscv64-qemu.txt to do it, but fail on step 14.

$ /home/rlk/tools/qemu-6.2.0/build/qemu-system-riscv64 -cpu rv64,x-h=true -M virt -m 512M -nographic -bios ../opensbi-1.0/build/platform/generic/firmware/fw_jump.bin -kernel ./build/vmm.bin -initrd ./build/disk.img -append 'vmm.bootcmd="vfs mount initrd /;vfs run /boot.xscript;vfs cat /system/banner.txt"'

OpenSBI v1.0-76-g1bc67db
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name             : riscv-virtio,qemu
Platform Features         : medeleg
Platform HART Count       : 1
Platform IPI Device       : aclint-mswi
Platform Timer Device     : aclint-mtimer @ 10000000Hz
Platform Console Device   : uart8250
Platform HSM Device       : ---
Platform Reboot Device    : sifive_test
Platform Shutdown Device  : sifive_test
Firmware Base             : 0x80000000
Firmware Size             : 284 KB
Runtime SBI Version       : 0.3

Domain0 Name              : root
Domain0 Boot HART         : 0
Domain0 HARTs             : 0*
Domain0 Region00          : 0x0000000002000000-0x000000000200ffff (I)
Domain0 Region01          : 0x0000000080000000-0x000000008007ffff ()
Domain0 Region02          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address      : 0x0000000080200000
Domain0 Next Arg1         : 0x0000000082200000
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes

Boot HART ID              : 0
Boot HART Domain          : root
Boot HART Priv Version    : v1.10
Boot HART Base ISA        : rv64imafdch
Boot HART ISA Extensions  : time
Boot HART PMP Count       : 16
Boot HART PMP Granularity : 4
Boot HART PMP Address Bits: 54
Boot HART MHPM Count      : 0
Boot HART MIDELEG         : 0x0000000000000666
Boot HART MEDELEG         : 0x0000000000f0b509

it looks like the xvisor's start address is 0x10000000, but the OpenSBI's next address is 0x80200000.

Build fail on linux (target x86)

Hello,

I am selecting the x86 target architecture using the menuconfig option. On executing a "make" command after doing this, I am facing the following error accompanied by other errors from the same file:

/xvisor/arch/x86/board/common/devices/video/vga.c:394:14:error: expected ‘}’ before ‘;’ token
394 | .getc = NULL;

The version of the gcc installed in my machine is 9.4.0.

On attempting to rectify this error manually, more errors keep popping up. So I am not sure where it's going wrong. Did someone else face the same issue or has any idea of what could be going wrong?

Thanks,
Neelu

Renesas rcar-h3 Salvator-X board

Hi Guys.

Hoping this is not an inappropriate question.

I had tried to find some documentation about the Renesas rcar-h3 Salvator-X board in the 2.11 release but I couldn't find it.

Any Idea of where it should be.

If you currently are working on that. I would like to be part of the development. would you please give me some advice about the current status of this development.

Thanks.

imx6sabresd with xvisor

hi pater ,I know cortex a9 does not support Virtualization instructions 。how did you realize hypervisor on imx6[cortex a9 inside]。use AMP mode ? or trustzone mode dula-os ?

big.LITTLE chip

hi,
Does xvisor support big.LITTLE chip ? like 4x53 and 2xA72.

USB Read Performance Measurement

Hi Anup,

I have written C code and running on xvisor environment for measuring the time to read any file. I am reading 100mb video file from the USB. i have compared time in plane linux and hypervised linux. For that same file and same hardware (RPI 3b) was used.

Plane linux- 4-5 seconds
Hypervised linux- 55 -70 seconds

Is this behaviour of hypervisor is correct or i am doing anything wrong.

Regards,
Gopal

problem about booting linux

Hi!
I ran Xvisor for Vexpress-A9 emulated by QEMU successfully.

qemu-system-arm -M vexpress-a9 -m 512M -display none -serial stdio -kernel build/vmm.bin -dtb build/arch/arm/board/generic/dts/arm/vexpress-v2p-ca9.dtb -initrd build/disk.img

but i got some problem when booting linux.
It seems to stuck at booting linux.

[guest0/uart0] ARM VExpress-A9 Basic Firmware
[guest0/uart0] 
[guest0/uart0] autoboot: disabled
[guest0/uart0] 
[guest0/uart0] basic# autoexec
[guest0/uart0] autoexec(copy 0x60008000 0x40100000 0x16F0000)
[guest0/uart0] copy took 3159854 usecs for 0x16F0000 bytes
[guest0/uart0] autoexec(copy 0x62000000 0x417F0000 0x010000)
[guest0/uart0] copy took 9341 usecs for 0x010000 bytes
[guest0/uart0] autoexec(copy 0x62100000 0x41800000 0x800000)
[guest0/uart0] copy took 1171783 usecs for 0x800000 bytes
[guest0/uart0] autoexec(start_linux_fdt 0x60008000 0x62000000 0x62100000 0x800000)
[guest0/uart0] Trying to set new bootargs: root=/dev/ram rw earlyprintk earlycon=pl011,0x10009000 console=[guest0/uart0] 
[guest0/uart0] Jumping into linux ...
[guest0/uart0] [    0.000000] Booting Linux on physical CPU 0x0
[guest0/uart0] [    0.000000] Linux version 5.1.1 (pengping@iZ8vb8vas257wiru9phy8kZ) (gcc version 7.5.0 (U[guest0/uart0] 5.0-3ubuntu1~18.04)) #1 SMP Wed Oct 7 10:56:06 CST 2020
[guest0/uart0] [    0.000000] CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d
[guest0/uart0] [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[guest0/uart0] [    0.000000] OF: fdt: Machine model: V2P-CA9
[guest0/uart0] [    0.000000] earlycon: pl11 at MMIO 0x10009000 (options '')
[guest0/uart0] [    0.000000] printk: bootconsole [pl11] enabled
[guest0/uart0] [    0.000000] Memory policy: Data cache writealloc
[guest0/uart0] [    0.000000] Reserved memory: created DMA memory pool at 0x4c000000, size 8 MiB
[guest0/uart0] [    0.000000] OF: reserved mem: initialized node vram@4c000000, compatible id shared-dma-p[guest0/uart0] 
[guest0/uart0] [    0.000000] cma: Reserved 16 MiB at 0x65000000
[guest0/uart0] [    0.000000] random: get_random_bytes called from start_kernel+0x94/0x414 with crng_init=[guest0/uart0] 
[guest0/uart0] [    0.000000] percpu: Embedded 16 pages/cpu s34124 r8192 d23220 u65536
[guest0/uart0] [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 24384
[guest0/uart0] [    0.000000] Kernel command line: root=/dev/ram rw earlyprintk earlycon=pl011,0x10009000 [guest0/uart0]  mem=96M
[guest0/uart0] [    0.000000] printk: log_buf_len individual max cpu contribution: 4096 bytes
[guest0/uart0] [    0.000000] printk: log_buf_len total cpu_extra contributions: 12288 bytes
[guest0/uart0] [    0.000000] printk: log_buf_len min size: 16384 bytes
[guest0/uart0] [    0.000000] printk: log_buf_len: 32768 bytes
[guest0/uart0] [    0.000000] printk: early log buf free: 14644(89%)
[guest0/uart0] [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[guest0/uart0] [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[guest0/uart0] [    0.000000] Memory: 63912K/98304K available (5120K kernel code, 201K rwdata, 1052K rodat[guest0/uart0] 134K bss, 18008K reserved, 16384K cma-reserved)
[guest0/uart0] [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[guest0/uart0] [    0.000000] rcu: Hierarchical RCU implementation.
[guest0/uart0] [    0.000000] rcu:      RCU event tracing is enabled.
[guest0/uart0] [    0.000000] rcu:      RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[guest0/uart0] [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[guest0/uart0] [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[guest0/uart0] [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[guest0/uart0] [    0.000000] L2C: platform modifies aux control register: 0x02020000 -> 0x02420000
[guest0/uart0] [    0.000000] L2C: DT/platform modifies aux control register: 0x02020000 -> 0x02420000
[guest0/uart0] [    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[guest0/uart0] [    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[guest0/uart0] [    0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
[guest0/uart0] [    0.000000] L2C-310 cache controller enabled, 8 ways, 128 kB
[guest0/uart0] [    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x46420001
[guest0/uart0] [    0.000501] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[guest0/uart0] [    0.015338] clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns[guest0/uart0]  ns
[guest0/uart0] [    0.024368] Failed to initialize '/smb@4000000/motherboard/iofpga@7,00000000/timer@12000[guest0/uart0] 
[guest0/uart0] [    0.034151] smp_twd: clock not found -2
[guest0/uart0] [    0.043169] Console: colour dummy device 80x30
[guest0/uart0]

The linux version is 5.1.1.
The busybox version is 1.31.1

Any documentation to run full test?

Hello,

I have been able to compile the X86_64 version of Xvisor on my Ubuntu 20.04 system for which it is has produced:

vmm.bin
vmm.elf
vmm_tmp.elf
vmm.tmp1.elf

Now I would like to boot up some "test" VM's like in the Youtube video by Anup Patel:

https://www.youtube.com/watch?v=KEyi_m3X3Zc

Although in that video he was using an ARM system, I think while the one that I have here is X86_64 based. I can test on AMD and Intel as well. but need some step direction to continue.

Can you please post the scripts from the video or other information that might help?

It would be nice to text some Linux and Windows Guest VM's to as much possible. I was thinking that I have some bootable ISO's of each that I could try.

Any information that you could provide would be helpful.
Thanks in Advance

How to debug when developing guest programs?

Hi, I'm using the latest xvisor-next and qemu, and I can successfully run the test for riscv64.
Now I'm trying to develop some bare-metal programs that run on xvisor's guest machine (the platform is also riscv64).
I'm taking the basic firmware for riscv-virt64 as reference and trying to analyze it. But I failed to run the basic firmware independently on qemu:

I used command like

# Latest qemu will offer opensbi automatically if I didn't specify -bios
qemu-system-riscv64 -cpu rv64 -M virt -m 256M -display none -serial stdio -kernel ./firmware.bin -s -S

and attached gdb to it. I found the program crashed at
https://github.com/avpatel/xvisor-next/blob/3bc00b8874f71ea48e56ce52ddeb42764f45e612/tests/riscv/common/basic/arch_entry.S#L40
and trapped into opensbi.

When I used '-bios' instead of '-kernel':

qemu-system-riscv64 -cpu rv64 -M virt -m 256M -display none -serial stdio -bios ./firmware.bin -s -S

The program can runs normally until hitting sbi call at basic_init() function, which make sense because I can't offer opensbi for it in this case.

So I wandering if I'm doing anything wrong. Is there an efficient way to debug when developing guest programs?
Thank you.

How To Enable Ethernet on RPI 3b

Hi Anup,

I am trying to enable ethernet on rpi 3b board. For that i am using the command
"net switch create bridge guest0/virtio-net0"
For creating switch.
After that load linux kernel on xvisor. Assign the ip address.
"ifconfig eth0 10.31.18.59"
After assigning ip address i am trying to ping in network but i am not able to ping.

Regards,
Gopal

Compile error for Xvisor RISC-V

I got the following error message for make command when compile Xvisor RISC-V ( I can't open an issue on forks).

$ export CROSS_COMPILE=riscv64-unknown-linux-gnu-
$ make ARCH=riscv generic-64b-defconfig
$ make
...
(ld)        vmm_tmp1.elf
/home/jrw/xvisor-next/build/libs/libs.o: in function `cpiofs_lookup':
/home/jrw/xvisor-next/libs/vfs/cpio/cpiofs.c:443: undefined reference to `_code_end'
collect2: error: ld returned 1 exit status
make: *** [Makefile:390: /home/jrw/xvisor-next/build/vmm_tmp1.elf] Error 1`

It would be great if you could help me with this issue. @avpatel thx!

Creating a new, pass-through, host and guest

Hi,

I'm attempting to get Xvisor working with another OMAP3 board. I'd like as much hardware to be available to the guest as possible. I've seen some reference to pass-through being supported, but the examples (from 2011) don't seem to be around any longer.

Is there a straightforward way to pass all memory mapped IO, for multiple devices in a certain region, through? What would that look like in the .dtsi file?

Thanks,

Tom

Which compiler?

Hey,

Since it is not possible to open issues on forks, could someone tell me which risc-v toolchain is required to build the hypervisor for risc-v.

I have tried both riscv-none-embed-gcc-8.2 from GNU MCU Eclipse and riscv-tools from github.

Would be great if you could help me out on this, @avpatel !

Stuck at Starting kernel ...

Hi,
I am just trying to boot the binary after failing various tries to boot with dtb. I assume that even if say dtb is not compatible with the binary (though tried after compiling), Binary should be throwing certain messages regarding dtb missing or rootfs/initrd missing but I am not receiving any of such log. Please guide us what is the meaning of this behavior.Below are the spec of board.

A follow-up and architecture based question I have is .. "Is Xvisor is a standalone binary? in other word is it necessary to compile the kernel images with Xvisor to work with? or By just executing the Xvisor binary uvmm.bin by bootm command or vmm.bin by go command is capable of giving us a terminal of Xvisor."

Board Spec:
iMX6QP - 1GB Ram 8GB Customized by adding different more devices on top of it.
Why I am not expecting a odd behavior is because 6x has iMX6Q which is same processor as iMX6QP.

Request you to share your views on same if I have wrong understanding on the same also about the Xvisor binary dependency.

Hit any key to stop autoboot:  0
=> usb start && load usb 0 0x17800000 uvmm.bin
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
reading uvmm.bin
2033528 bytes read in 87 ms (22.3 MiB/s)
=> bootm 17800000
## Booting kernel from Legacy Image at 17800000 ...
   Image Name:   Xvisor
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2033464 Bytes = 1.9 MiB
   Load Address: 17800000
   Entry Point:  17800000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

I'm curious why firmware.elf.patched is same as firmware.elf ?

I follow ./docs/arm/imx6-sabrelite.txt guide to build xvisor and generate firmware. Locating at .build/tools/cpatch and ./arch/arm/cpu/arm32/elf2cpatch.py will patch the firmware.elf file when running make -C tests/arm32/vexpress-a9/basic.

After that, I think some sensitive non-priviliged instruction will be replaced by hypercall instruction, however I run diff firmware.elf firmware.elf.patched and ouput nothing. Then i run arm-linux-gnueabi-objdump command to objdump that two files and run diff command. But still output nothing.

Why is firmware.elf.patched same as firmware.elf ?

Thanks for any advice!

How to run xvisor on RISC-V

I just follow the steps in doc to run risc-v xvisor, but when I run it in qemu, it stop after the opensbi. Just like this:

../qemu-5.1.0/riscv64-softmmu/qemu-system-riscv64 -cpu rv64,x-h=true -M virt -m 512M -display none -serial stdio -bios default -kernel ./build/vmm.bin -initrd ./build/disk.img -append "vmm.console=uart@10000000 vmm.rtcdev=rtc@101000 vmm.bootcmd=\"vfs mount initrd /;vfs run /boot.xscript;vfs cat /system/banner.txt\""  
OpenSBI v0.7
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name          : QEMU Virt Machine
Platform HART Features : RV64ACDFHIMSU
Current Hart           : 0
Firmware Base          : 0x80000000
Firmware Size          : 128 KB
Runtime SBI Version    : 0.2

MIDELEG : 0x0000000000000666
MEDELEG : 0x0000000000b0b509
PMP0    : 0x0000000080000000-0x000000008001ffff (A)
PMP1    : 0x0000000000000000-0xffffffffffffffff (A,R,W,X)

I tried to fix the bug but failed.
Then I replaced the opensbi with rustsbi, which is a sbi written with rust language, it works: rustsbi

./qemu-5.1.0/riscv64-softmmu/qemu-system-riscv64 -cpu rv64,x-h=true -M virt -m 512M -display none -serial stdio -bios ../rustsbi/target/riscv64imac-unknown-none-elf/debug/rustsbi-qemu -kernel ./build/vmm.bin -initrd ./build/disk.img -append "vmm.console=uart@10000000 vmm.rtcdev=rtc@101000 vmm.bootcmd=\"vfs mount initrd /;vfs run /boot.xscript;vfs cat /system/banner.txt\""  
[rustsbi] Version 0.1.0
.______       __    __      _______.___________.  _______..______   __
|   _  \     |  |  |  |    /       |           | /       ||   _  \ |  |
|  |_)  |    |  |  |  |   |   (----`---|  |----`|   (----`|  |_)  ||  |
|      /     |  |  |  |    \   \       |  |      \   \    |   _  < |  |
|  |\  \----.|  `--'  |.----)   |      |  |  .----)   |   |  |_)  ||  |
| _| `._____| \______/ |_______/       |__|  |_______/    |______/ |__|

[rustsbi] Platform: QEMU
[rustsbi] misa: RV64ACDFHIMSU
[rustsbi] mideleg: 0x666
[rustsbi] medeleg: 0xb109
[rustsbi] Kernel entry: 0x80200000

Xvisor v0.3.0-1-g6fea5d23 (Oct  8 2020 20:20:45)

INIT: host address space
INIT: vapool: base=0x0000000010000000 size=33554432
INIT: vapool: hkbase=0x0000000010501000 hksize=131072
INIT: ram: bank0 phys=0x0000000080000000 size=536870912
INIT: ram: bank0 hkbase=0x0000000010521000 hksize=16384
INIT: ram_reserve: phys=0x0000000080200000 size=1052672
INIT: ram_reserve: phys=0x0000000080701000 size=376832
INIT: ram_reserve: phys=0x0000000080301000 size=4194304
INIT: vapool_reserve: virt=0x0000000010000000 size=5623808
INIT: ram_reserve: phys=0x0000000080000000 size=2097152
INIT: heap management
INIT: page pool
INIT: exception table
INIT: device tree
INIT: SBI specification v0.2 detected
INIT: SBI implementation ID=0x4 Version=0x1
INIT: SBI v0.2 TIME extension detected
INIT: SBI v0.2 IPI extension detected
INIT: WARNING: SBI v0.2 RFENCE not available !
INIT: device tree reserved-memory
INIT: discover secondary CPUs
INIT: per-CPU areas
INIT: CPU hotplug
INIT: host irq subsystem
INIT: plic: base=0x000000000C000000 size=2105344
INIT: plic: devices=54 contexts=1/2
INIT: CPU early
INIT: early_params: vmm.console=uart@10000000 vmm.rtcdev=rtc@101000 vmm.bootcmd="vfs mount initrd /;vfs run /boot.xscript;vfs cat /system/banner.txt"
INIT: board early
INIT: early funtions
INIT: standard I/O
INIT: clocksource manager
INIT: clockchip manager
INIT: hypervisor timer
INIT: hypervisor soft delay
INIT: hypervisor shared memory
INIT: hypervisor manager
INIT: hypervisor scheduler
INIT: hypervisor threads
INIT: inter-processor interrupts
INIT: workqueue framework

But it still have some bugs. It still can not enter the xvisor shell.
I guess that may be the latest opensbi version does not work with xvisor correctly.
So how can I run xvisor in risc-v correctly? Which opensbi version and linux version I should choose?
Thanks for your help.

Compilation Issue

Hi
I'am trying to compile Xvisor for RISC-V.

when I follow the compilation steps i.e

CROSS_COMPILE=riscv64-unknown-linux-gnu-
make ARCH=riscv generic-64b-defconfig
make

I have the following error :

xvisor/libs/include/libs/bitops.h:519: Error: unrecognized opcode `csrrc s9,0x100,2'
/home/jc/Work/xvisor/libs/include/libs/bitops.h:521: Error: unrecognized opcode `csrs 0x100,a5'

version of gcc is 11.1.0
any idea ?
Thank you

python script error msg elf2cpatch

I get this error with python 2.7.x and also similar error with python 3.x. This step is mentioned in docs/arm/bcm2835-raspi.txt where we run the efl2cpatch python script.

Below is the traceback shown.
linux-rpi-4.6.y$ python3 ~/xvisor/xvisor-master/arch/arm/cpu/arm32/elf2cpatch.py -f /home/yogi/rpi/linux-rpi-4.6.y/vmlinux | ~/xvisor/xvisor-master/build/tools/

bash: /home/yogi/xvisor/xvisor-master/build/tools/: Is a directory
Traceback (most recent call last):
File "/home/yogi/xvisor/xvisor-master/arch/arm/cpu/arm32/elf2cpatch.py", line 633, in
print("\t#", w[2], w[3], w[4])
BrokenPipeError: [Errno 32] Broken pipe

How can this be solved . Any clues ?
From google search I understand that the one of the process is getting closed and hence print is not working.

-- yogesh

riscv: run linux in xvisor, occur fault on wirte plic reg

I try to run linux in xvisor, but I get wrong with [guest0/uart0] devemu_dowrite: edev=plic offset=0x0000000000000080 src_len=4 failed (error -5), then xvisor halt.
I tryed other guest os, it's the same result!

XVisor# guest kick guest0
guest0: Kicked
XVisor# vserial bind guest0/uart0
[guest0/uart0] RISC-V SBI specification v0.3 detected
[guest0/uart0] RISC-V SBI implementation ID=0x2 Version=0x3000
[guest0/uart0] 
[guest0/uart0] RISC-V Virt64 Basic Firmware
[guest0/uart0] 
[guest0/uart0] autoboot: disabled
[guest0/uart0] 
[guest0/uart0] basic# 
[guest0/uart0] basic# autoexec
[guest0/uart0] autoexec(copy 0x80200000 0x00100000 0x1E00000)
[guest0/uart0] copy took 90996 usecs for 0x1E00000 bytes
[guest0/uart0] autoexec(copy 0x83000000 0x01F00000 0x020000)
[guest0/uart0] copy took 663 usecs for 0x020000 bytes
[guest0/uart0] autoexec(copy 0x83100000 0x02000000 0x1000000)
[guest0/uart0] copy took 35544 usecs for 0x1000000 bytes
[guest0/uart0] autoexec(start_linux_fdt 0x80200000 0x83000000 0x83100000 0x1000000)
[guest0/uart0] Trying to set new bootargs: root=/dev/ram rw console=ttyS0,115200 earlycon=uart8250,mmio,0x10000000 mem=256M
[guest0/uart0] Jumping into linux ...
[guest0/uart0] [    0.000000] Linux version 6.0.0-rc3-00031-gc5e4d5e99162 (jasonhu@jasonhu-virtual-machine) (riscv64-linux-gnu-gcc (Ubuntu 11.2.0-16ubuntu1) 11.2.0, GNU ld (GNU Binuti[guest0/uart0] 2.38) #1 SMP Thu Sep 1 14:30:18 CST 2022
[guest0/uart0] [    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[guest0/uart0] [    0.000000] Machine model: Virt64
[guest0/uart0] [    0.000000] earlycon: uart8250 at MMIO 0x0000000010000000 (options '')
[guest0/uart0] [    0.000000] printk: bootconsole [uart8250] enabled
[guest0/uart0] [    0.000000] Memory limited to 256MB
[guest0/uart0] [    0.000000] efi: UEFI not found.
[guest0/uart0] [    0.000000] Reserved memory: created DMA memory pool at 0x0000000058000000, size 16 MiB
[guest0/uart0] [    0.000000] OF: reserved mem: initialized node shmem@58000000, compatible id shared-dma-pool
[guest0/uart0] [    0.000000] Zone ranges:
[guest0/uart0] [    0.000000]   DMA32    [mem 0x0000000080200000-0x000000008fffffff]
[guest0/uart0] [    0.000000]   Normal   empty
[guest0/uart0] [    0.000000] Movable zone start for each node
[guest0/uart0] [    0.000000] Early memory node ranges
[guest0/uart0] [    0.000000]   node   0: [mem 0x0000000080200000-0x000000008fffffff]
[guest0/uart0] [    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000008fffffff]
[guest0/uart0] [    0.000000] SBI specification v0.3 detected
[guest0/uart0] [    0.000000] SBI implementation ID=0x2 Version=0x3000
[guest0/uart0] [    0.000000] SBI TIME extension detected
[guest0/uart0] [    0.000000] SBI IPI extension detected
[guest0/uart0] [    0.000000] SBI RFENCE extension detected
[guest0/uart0] [    0.000000] SBI SRST extension detected
[guest0/uart0] [    0.000000] SBI HSM extension detected
[guest0/uart0] [    0.000000] riscv: base ISA extensions cg
[guest0/uart0] [    0.000000] riscv: ELF capabilities c
[guest0/uart0] [    0.000000] percpu: Embedded 18 pages/cpu s33016 r8192 d32520 u73728
[guest0/uart0] [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64008
[guest0/uart0] [    0.000000] Kernel command line: root=/dev/ram rw console=ttyS0,115200 earlycon=uart8250,mmio,0x10000000 mem=256M
[guest0/uart0] [    0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[guest0/uart0] [    0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[guest0/uart0] [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[guest0/uart0] [    0.000000] Virtual kernel memory layout:
[guest0/uart0] [    0.000000]       fixmap : 0xff1bfffffee00000 - 0xff1bffffff000000   (2048 kB)
[guest0/uart0] [    0.000000]       pci io : 0xff1bffffff000000 - 0xff1c000000000000   (  16 MB)
[guest0/uart0] [    0.000000]      vmemmap : 0xff1c000000000000 - 0xff20000000000000   (1024 TB)
[guest0/uart0] [    0.000000]      vmalloc : 0xff20000000000000 - 0xff60000000000000   (16384 TB)
[guest0/uart0] [    0.000000]      modules : 0xffffffff0135a000 - 0xffffffff80000000   (2028 MB)
[guest0/uart0] [    0.000000]       lowmem : 0xff60000000000000 - 0xff6000000fe00000   ( 254 MB)
[guest0/uart0] [    0.000000]       kernel : 0xffffffff80000000 - 0xffffffffffffffff   (2047 MB)
[guest0/uart0] [    0.000000] Memory: 218548K/260096K available (7165K kernel code, 4885K rwdata, 4096K rodata, 2187K init, 451K bss, 41548K reserved, 0K cma-reserved)
[guest0/uart0] [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[guest0/uart0] [    0.000000] rcu: Hierarchical RCU implementation.
[guest0/uart0] [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[guest0/uart0] [    0.000000] rcu: 	RCU debug extended QS entry/exit.
[guest0/uart0] [    0.000000] 	Tracing variant of Tasks RCU enabled.
[guest0/uart0] [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[guest0/uart0] [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[guest0/uart0] [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[guest0/uart0] [    0.000000] riscv-intc: 64 local interrupts mapped
[guest0/uart0] devemu_dowrite: edev=plic offset=0x0000000000000080 src_len=4 failed (error -5)
vmm_devemu_emulate_write: vcpu=guest0/vcpu0 gphys=0x000000000C000080 src_len=4 failed (error -5)
vcpu=guest0/vcpu0 current_state=0x20 to new_state=0x20 failed (error -5)
WARNING: vmm_scheduler_state_change() at /home/jasonhu/workplace/xvisor-next/core/vmm_scheduler.c:696
0x1000E5EE vmm_lprintf+0x20/0x2c
0x1002298E vmm_scheduler_state_change+0x1a2/0x450
0x1002037C vmm_manager_vcpu_set_state+0x10/0x2c
0x100021F4 do_handle_trap+0x80/0x17a
0x100022FE do_handle_exception+0x10/0x2c
0x10000382 _handle_hyp_exception+0x72/0xd2
do_error: CPU0: VCPU=guest0/vcpu0 page fault failed (error -5)
       zero=0x0000000000000000          ra=0xFFFFFFFF8081DF62
         sp=0xFFFFFFFF81203D90          gp=0xFFFFFFFF812E7A20
         tp=0xFFFFFFFF8120DE80          s0=0xFFFFFFFF81203EC0
         s1=0xFF60000001607140          a0=0xFF6000000F9D48C8
         a1=0x0000000000000000          a2=0x0000000000000000
         a3=0x0000000000000080          a4=0x0000000000000001
         a5=0xFF20000000000080          a6=0xFF60000001A00248
         a7=0xFF60000001A002B8          s2=0x0000000000000001
         s3=0xFF6000000F9D48B8          s4=0xFF6000000FDF8110
         s5=0x0000000000000020          s6=0x0000000000000004
         s7=0x0000000000000000          s8=0xFFFFFFFF80A1F8B8
         s9=0xFFFFFFFF80DC1A18         s10=0xFF6000000F9D48C8
        s11=0xFFFFFFFF813213B0          t0=0x0000000000000040
         t1=0x0000000000000000          t2=0x000000000000003E
         t3=0x0000000000000002          t4=0x0000000000000402
         t5=0xFFFFFFFF81286C40          t6=0xFFFFFFFF81286C60
       sepc=0xFFFFFFFF8081DF70     sstatus=0x0000000000004120
    hstatus=0x00000002002001C0     sp_exec=0x0000000010A3C000
     scause=0x0000000000000017       stval=0xFF20000000000080
      htval=0x0000000003000020      htinst=0x0000000000000000

Faild to run multiple guests on riscv64

Hi, I'm using the latest version of xvisor-next.
I followed the guide in test/riscv/virt64/basic/README and I successfully bring up xvisor for riscv64 on qemu, which creates a single guest in the system.
But it fails when I tried the two_guest_virt64.xscript in test/riscv/virt64/xscript/, hoping to create multiple guests:

图片

The error message is:

region_add: Failed to alloc host RAM for guest1/mem0
guest1: Failed to create
Error: command guest failed (code -1)
line16: failed (error -1)

Is there a bug? Or did I miss something? I've emptied the build/ folder before my second attempt, so there may not be any building issues.
Thanks for your attention.

Xvisor on Renesas R-Car H3 Starter Kit

Hello Sir,

Requesting to provide any doc. for porting xvisor on rcar h3 starter kit.
Is this doc. zynqmp-zcu102.txt will help?

I planned to further port AGL along with other guest.

Thanks & Regards,
Nadeem Athani

Does not compile

Gives the following output when makeing:

$ make
 (cc-dep)    drivers/base/iomap.dep
 (cc-dep)    daemons/mterm.dep
 (cc-dep)    commands/cmd_module.dep
 (cc-dep)    commands/cmd_wallclock.dep
 (cc-dep)    commands/cmd_heap.dep
 (cc-dep)    commands/cmd_stdio.dep
 (cc-dep)    commands/cmd_chardev.dep
 (cc-dep)    commands/cmd_thread.dep
 (cc-dep)    commands/cmd_memory.dep
 (cc-dep)    commands/cmd_guest.dep
 (cc-dep)    commands/cmd_vcpu.dep
 (cc-dep)    commands/cmd_devtree.dep
 (cc-dep)    commands/cmd_host.dep
 (cc-dep)    commands/cmd_shutdown.dep
 (cc-dep)    commands/cmd_reset.dep
 (cc-dep)    commands/cmd_echo.dep
 (cc-dep)    commands/cmd_sleep.dep
 (cc-dep)    commands/cmd_version.dep
 (cc-dep)    libs/common/simple_sort.dep
 (cc-dep)    libs/common/bitrev.dep
 (cc-dep)    libs/common/libfdt.dep
 (cc-dep)    libs/common/mempool.dep
 (cc-dep)    libs/common/buddy.dep
 (cc-dep)    libs/common/radix-tree.dep
 (cc-dep)    libs/common/rbtree.dep
 (cc-dep)    libs/common/lifo.dep
 (cc-dep)    libs/common/fifo.dep
 (cc-dep)    libs/common/list_sort.dep
 (cc-dep)    libs/common/smoothsort.dep
 (cc-dep)    libs/common/stacktrace.dep
 (cc-dep)    libs/common/mathlib.dep
 (cc-dep)    libs/common/stringlib.dep
 (cc-dep)    libs/common/scatterlist.dep
 (cc-dep)    libs/common/ctype.dep
 (cc-dep)    libs/common/bitmap.dep
 (cc-dep)    libs/common/bitops.dep
 (cc-dep)    libs/common/bcd.dep
 (cc-dep)    libs/kallsyms/kallsyms.dep
 (cc-dep)    core/vmm_extable.dep
 (cc-dep)    core/vmm_params.dep
 (cc-dep)    core/vmm_modules.dep
 (cc-dep)    core/vmm_chardev.dep
 (cc-dep)    core/vmm_wallclock.dep
 (cc-dep)    core/vmm_cmdmgr.dep
 (cc-dep)    core/vmm_workqueue.dep
 (cc-dep)    core/vmm_notifier.dep
 (cc-dep)    core/vmm_mutex.dep
 (cc-dep)    core/vmm_semaphore.dep
 (cc-dep)    core/vmm_completion.dep
 (cc-dep)    core/vmm_waitqueue.dep
 (cc-dep)    core/vmm_threads.dep
 (cc-dep)    core/vmm_scheduler.dep
 (cc-dep)    core/vmm_manager.dep
 (cc-dep)    core/vmm_guest_aspace.dep
 (cc-dep)    core/vmm_vcpu_irq.dep
 (cc-dep)    core/vmm_delay.dep
 (cc-dep)    core/vmm_timer.dep
 (cc-dep)    core/vmm_clockchip.dep
 (cc-dep)    core/vmm_clocksource.dep
 (cc-dep)    core/vmm_percpu.dep
 (cc-dep)    core/vmm_host_aspace.dep
 (cc-dep)    core/vmm_host_vapool.dep
 (cc-dep)    core/vmm_host_ram.dep
 (cc-dep)    core/vmm_host_irqdomain.dep
 (cc-dep)    core/vmm_host_irqext.dep
 (cc-dep)    core/vmm_host_irq.dep
 (cc-dep)    core/vmm_resource.dep
 (cc-dep)    core/vmm_devemu.dep
 (cc-dep)    core/vmm_devdrv.dep
 (cc-dep)    core/vmm_devres.dep
 (cc-dep)    core/vmm_devtree_reg.dep
 (cc-dep)    core/vmm_devtree_irq.dep
 (cc-dep)    core/vmm_devtree.dep
 (cc-dep)    core/vmm_cpumask.dep
 (cc-dep)    core/vmm_stdio.dep
 (cc-dep)    core/vmm_heap.dep
 (cc-dep)    core/vmm_main.dep
 (cc-dep)    core/schedalgo/vmm_schedalgo_prr.dep
 (make)      tools/dtc/dtc
 (copy)      dtc-lexer.lex.c
 (copy)      dtc-parser.tab.c
 (copy)      dtc-parser.tab.h
 (host-cc)   dtc.o
 (host-cc)   flattree.o
 (host-cc)   fstree.o
 (host-cc)   data.o
 (host-cc)   livetree.o
 (host-cc)   treesource.o
 (host-cc)   srcpos.o
 (host-cc)   checks.o
 (host-cc)   util.o
 (host-cc)   dtc-parser.tab.o
 (host-cc)   dtc-lexer.lex.o
 (host-ld)   dtc
 (dtc-dep)   arch/x86/board/x86_64_generic/dts/defconfig.dep
 (cc-dep)    arch/x86/board/x86_64_generic/hpet.dep
 (cc-dep)    arch/x86/board/x86_64_generic/brd_pic.dep
 (cc-dep)    arch/x86/board/x86_64_generic/brd_defterm.dep
 (cc-dep)    arch/x86/board/x86_64_generic/brd_main.dep
 (cc-dep)    arch/x86/cpu/common/vm/cpu_inst_decode.dep
 (cc-dep)    arch/x86/cpu/common/vm/vm.dep
 (cc-dep)    arch/x86/cpu/common/acpi.dep
 (cc-dep)    arch/x86/cpu/common/cpu_apic.dep
 (cc-dep)    arch/x86/cpu/common/cpu_extables.dep
 (cc-dep)    arch/x86/cpu/common/cpu_features.dep
 (cc-dep)    arch/x86/cpu/common/dumpstack.dep
 (cc-dep)    arch/x86/cpu/common/stacktrace.dep
 (cc-dep)    arch/x86/cpu/x86_64/arch_guest_helper.dep
 (as-dep)    arch/x86/cpu/x86_64/cpu_interrupt_handlers.dep
 (cc-dep)    arch/x86/cpu/x86_64/dumpstack_64.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_mmu.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_pgtbl_helper.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_vcpu_helper.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_vcpu_irq.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_interrupts.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_elf.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_string.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_hacks.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_main.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_atomic64.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_atomic.dep
 (as-dep)    arch/x86/cpu/x86_64/start.dep
 (make)      tools/kallsyms/kallsyms
 (host-cc)   kallsyms.o
 (host-ld)   kallsyms
 (cpp)       linker.ld
 (as)        arch/x86/cpu/x86_64/start.o
 (cc)        arch/x86/cpu/x86_64/cpu_atomic.o
 (cc)        arch/x86/cpu/x86_64/cpu_atomic64.o
 (cc)        arch/x86/cpu/x86_64/cpu_main.o
 (cc)        arch/x86/cpu/x86_64/cpu_hacks.o
 (cc)        arch/x86/cpu/x86_64/cpu_string.o
 (cc)        arch/x86/cpu/x86_64/cpu_elf.o
 (cc)        arch/x86/cpu/x86_64/cpu_interrupts.o
 (cc)        arch/x86/cpu/x86_64/cpu_vcpu_irq.o
 (cc)        arch/x86/cpu/x86_64/cpu_vcpu_helper.o
 (cc)        arch/x86/cpu/x86_64/cpu_pgtbl_helper.o
 (cc)        arch/x86/cpu/x86_64/cpu_mmu.o
 (cc)        arch/x86/cpu/x86_64/dumpstack_64.o
 (as)        arch/x86/cpu/x86_64/cpu_interrupt_handlers.o
 (cc)        arch/x86/cpu/x86_64/arch_guest_helper.o
 (cc)        arch/x86/cpu/common/stacktrace.o
 (cc)        arch/x86/cpu/common/dumpstack.o
 (cc)        arch/x86/cpu/common/cpu_features.o
 (cc)        arch/x86/cpu/common/cpu_extables.o
 (cc)        arch/x86/cpu/common/cpu_apic.o
 (cc)        arch/x86/cpu/common/acpi.o
 (cc)        arch/x86/cpu/common/vm/vm.o
 (cc)        arch/x86/cpu/common/vm/cpu_inst_decode.o
 (merge)     arch/x86/cpu/cpu.o
 (cc)        arch/x86/board/x86_64_generic/brd_main.o
 (cc)        arch/x86/board/x86_64_generic/brd_defterm.o
 (cc)        arch/x86/board/x86_64_generic/brd_pic.o
 (cc)        arch/x86/board/x86_64_generic/hpet.o
 (dtc)       arch/x86/board/x86_64_generic/dts/defconfig.S
 (as)        arch/x86/board/x86_64_generic/dts/defconfig.o
 (merge)     arch/x86/board/board.o
 (cc)        core/schedalgo/vmm_schedalgo_prr.o
 (cc)        core/vmm_main.o
 (cc)        core/vmm_heap.o
 (cc)        core/vmm_stdio.o
 (cc)        core/vmm_cpumask.o
 (cc)        core/vmm_devtree.o
 (cc)        core/vmm_devtree_irq.o
 (cc)        core/vmm_devtree_reg.o
 (cc)        core/vmm_devres.o
 (cc)        core/vmm_devdrv.o
 (cc)        core/vmm_devemu.o
 (cc)        core/vmm_resource.o
 (cc)        core/vmm_host_irq.o
 (cc)        core/vmm_host_irqext.o
 (cc)        core/vmm_host_irqdomain.o
 (cc)        core/vmm_host_ram.o
 (cc)        core/vmm_host_vapool.o
 (cc)        core/vmm_host_aspace.o
 (cc)        core/vmm_percpu.o
 (cc)        core/vmm_clocksource.o
 (cc)        core/vmm_clockchip.o
 (cc)        core/vmm_timer.o
 (cc)        core/vmm_delay.o
 (cc)        core/vmm_vcpu_irq.o
 (cc)        core/vmm_guest_aspace.o
 (cc)        core/vmm_manager.o
 (cc)        core/vmm_scheduler.o
 (cc)        core/vmm_threads.o
 (cc)        core/vmm_waitqueue.o
 (cc)        core/vmm_completion.o
 (cc)        core/vmm_semaphore.o
 (cc)        core/vmm_mutex.o
 (cc)        core/vmm_notifier.o
 (cc)        core/vmm_workqueue.o
 (cc)        core/vmm_cmdmgr.o
 (cc)        core/vmm_wallclock.o
 (cc)        core/vmm_chardev.o
 (cc)        core/vmm_modules.o
 (cc)        core/vmm_params.o
 (cc)        core/vmm_extable.o
 (merge)     core/core.o
 (cc)        libs/kallsyms/kallsyms.o
 (cc)        libs/common/bcd.o
 (cc)        libs/common/bitops.o
 (cc)        libs/common/bitmap.o
 (cc)        libs/common/ctype.o
 (cc)        libs/common/scatterlist.o
 (cc)        libs/common/stringlib.o
 (cc)        libs/common/mathlib.o
 (cc)        libs/common/stacktrace.o
 (cc)        libs/common/smoothsort.o
 (cc)        libs/common/list_sort.o
 (cc)        libs/common/fifo.o
 (cc)        libs/common/lifo.o
 (cc)        libs/common/rbtree.o
 (cc)        libs/common/radix-tree.o
 (cc)        libs/common/buddy.o
 (cc)        libs/common/mempool.o
 (cc)        libs/common/libfdt.o
 (cc)        libs/common/bitrev.o
 (cc)        libs/common/simple_sort.o
 (merge)     libs/libs.o
 (cc)        commands/cmd_version.o
 (cc)        commands/cmd_sleep.o
 (cc)        commands/cmd_echo.o
 (cc)        commands/cmd_reset.o
 (cc)        commands/cmd_shutdown.o
 (cc)        commands/cmd_host.o
 (cc)        commands/cmd_devtree.o
 (cc)        commands/cmd_vcpu.o
 (cc)        commands/cmd_guest.o
 (cc)        commands/cmd_memory.o
 (cc)        commands/cmd_thread.o
 (cc)        commands/cmd_chardev.o
 (cc)        commands/cmd_stdio.o
 (cc)        commands/cmd_heap.o
 (cc)        commands/cmd_wallclock.o
 (cc)        commands/cmd_module.o
 (merge)     commands/commands.o
 (cc)        daemons/mterm.o
 (merge)     daemons/daemons.o
 (cc)        drivers/base/iomap.o
 (merge)     drivers/drivers.o
 (ld)        vmm_tmp1.elf
/home/lucas/xvisor-0.2.7/build/arch/x86/cpu/cpu.o: In function `cpu_init_vcpu_hw_context':
/home/lucas/xvisor-0.2.7/arch/x86/cpu/common/vm/vm.c:181: undefined reference to `amd_setup_vm_control'
/home/lucas/xvisor-0.2.7/arch/x86/cpu/common/vm/vm.c:188: undefined reference to `intel_setup_vm_control'
/home/lucas/xvisor-0.2.7/build/arch/x86/cpu/cpu.o: In function `cpu_enable_vm_extensions':
/home/lucas/xvisor-0.2.7/arch/x86/cpu/common/vm/vm.c:228: undefined reference to `amd_init'
/home/lucas/xvisor-0.2.7/arch/x86/cpu/common/vm/vm.c:233: undefined reference to `intel_init'
collect2: error: ld returned 1 exit status
make: *** [/home/lucas/xvisor-0.2.7/build/vmm_tmp1.elf] Error 1

Returns status [2].
The only config setting I changed was the cpu architecture, from ARM to x86_64 (my processor).

64 bits alignment problem on device tree parsing

Hi,

I am trying to add support for a new board in xvisor (ARM64 arch). As a starting point I am using manufacturer-provided device tree. But xvisor seems to be stuck during ram banks initialization.

In my case the values for #address-cells, #size-cells and reg are the following:

	#address-cells = <0x2>;
	#size-cells = <0x1>;

	memory@0 {
		device_type = "memory";
		reg = <0x0 0x0 0x3b400000 0x0 0x40000000 0xbc000000>;
	};

It gets stuck during reg parsing, here, the second time LIBFDT_DATA64 is called:

if (address_cells == 2) {
*((physical_addr_t *)dst) =
(physical_addr_t)LIBFDT_DATA64(src);

I think this is caused by a wrong alignment because I have #address-cells=2 and #size-cells=1:

aligned :   |-------64 bits---------|-------64 bits---------|-------64 bits---------|-------64 bits---------|
unaligned : |------address-cell-----|---size-cell--|------address-cell-----|

Whereas all currently supported device trees have either address-cell = size-cell = 2 or address-cell = size-cell = 1.

I was able to reproduce the issue with both codes xvisor and xvisor-next.

Did I do something wrong or is this a bug?

Thanks

cpu_init never called in xvisor-next

Hi,

In xvisor-next cpu_entry.S, the only way to call cpu_init is by triggering an exception. Exception vectors are all initialized to call cpu_init during early boot here.

Unfortunately, when I try to boot xvisor no exception is ever triggered, thus cpu_init is never called. In order to boot, I added a short hvc #0 right before the comment We should never reach here.

Did I do something wrong?

do_data_abort: error -1

Hi
I tried to run the test https://github.com/xvisor/xvisor/tree/master/tests/arm32/realview-pb-a8/linux, I used linux kernel version 5.8.10 and busybox version 1.31.1 (I also created rootfs.img according to https://github.com/xvisor/xvisor/tree/master/tests/common/busybox by choosing at point : "8 Create a RootFS image using one of the following options (INITRAMFS preferred)" -> INITRAMFS cpio image)
all points of the guide are successful I launch qemu and when I reach point 17 [17. Copy linux from NOR flash to RAM and start linux booting from RAM] crashes as per attached image
xvisor_error

Xvisor boot on freescale sabre ai/sd board

Hi,

I was wondering whether this forum is still under discussion regarding issues, but sharing issue I am facing with sabre ai/sd board.

I am able to build xvisor binary file for sabre ai/sd board using One_guest_sabrelite.dtb file,but I am stuck at starting kernel.....

Whether i have to change dtb files because it seems xvisor kernel is not booting.

Looking forward for response.

Generated log:

==================================================================
U-Boot 2017.03 (Jun 30 2017 - 17:04:47 +0530)

CPU: Freescale i.MX6Q rev1.2 996 MHz (running at 792 MHz)
CPU: Automotive temperature grade (-40C to 125C) at 41C
Reset cause: POR
Board: MX6-SabreSD
I2C: ready
DRAM: 1 GiB
PMIC: PFUZE100 ID=0x10
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
*** Warning - bad CRC, using default environment

PCI: pcie phy link never came up
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In: serial
Out: serial
Err: serial
Net: FEC [PRIME]
Hit any key to stop autoboot: 0
=> setenv board sabrelite
=> seten bootargs console=ttymxc0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait panic=10
=> mmc dev 1:1
switch to partitions #0, OK
mmc1 is current device
=> fatload mmc 1:1 10008000 /6x_bootscript
reading /6x_bootscript
1055 bytes read in 26 ms (39.1 KiB/s)
=> source 10008000

Executing script at 10008000

Load from SD/MMC
reading /uvmm.bin
1522668 bytes read in 94 ms (15.4 MiB/s)
reading /vmm-imx6q-sabrelite.dtb
16589 bytes read in 19 ms (852.5 KiB/s)

Booting kernel from Legacy Image at 10800000 ...

Image Name: Xvisor
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1522604 Bytes = 1.5 MiB
Load Address: 17800000
Entry Point: 17800000
Verifying Checksum ... OK

Flattened Device Tree blob at 12000000

Booting using the fdt blob at 0x12000000
Loading Kernel Image ... OK
reserving fdt memory region: addr=10000000 size=1000
Using Device Tree in place at 12000000, end 120070cc

Starting kernel ...

Difference between Xvisor and Xvisor-next?

Hello All,

I am digging into Xvisor as I think that it offers a lot of potential for a project that I am working on now but it seem that there are already multiple versions:

Core Xvisor:
https://github.com/xvisor/xvisor

Xvisor-Next (Anup Patel): --- Which is a fork of xvisor
https://github.com/avpatel/xvisor-next

Xvisor-x86 (Himanshu Chauhan): --- Which is a fork of xvisor-next
https://github.com/hschauhan/xvisor-x86

Is the project going in different directions?
Cheers

coreboot payload

Hi, So coreboot is a opensource BIOS I work on. We are able to payload elf containers however while trying to payload Xvisor it seems to not work at all. That is, I don't believe we are hitting the correct entry point. Here is the log snip:

BS: BS_WRITE_TABLES times (us): entry 0 run 5393695 exit 0
CBFS: located payload @ ffe92238, 1060788 bytes.
Loading segment from rom address 0xffe92238
code (compression=0)
New segment dstaddr 0x200000 memsize 0xd5308 srcaddr 0xffe922c4 filesize 0xc8
(cleaned up) New segment addr 0x200000 size 0xd5308 offset 0xffe922c4 filesi8
Loading segment from rom address 0xffe92254
data (compression=0)
New segment dstaddr 0x2d5340 memsize 0x32cc0 srcaddr 0xfff5652c filesize 0x30
(cleaned up) New segment addr 0x2d5340 size 0x32cc0 offset 0xfff5652c filesi0
Loading segment from rom address 0xffe92270
data (compression=0)
New segment dstaddr 0x308000 memsize 0xd000 srcaddr 0xfff891ec filesize 0x400
(cleaned up) New segment addr 0x308000 size 0xd000 offset 0xfff891ec filesiz0
Loading segment from rom address 0xffe9228c
code (compression=0)
New segment dstaddr 0x315000 memsize 0x8000 srcaddr 0xfff8d1ec filesize 0x800
(cleaned up) New segment addr 0x315000 size 0x8000 offset 0xfff8d1ec filesiz0
Loading segment from rom address 0xffe922a8
Entry Point 0x00201000
Bounce Buffer at 65ecf000, 2687072 bytes
Loading Segment: addr: 0x0000000000200000 memsz: 0x00000000000d5308 filesz: 0x8
lb: [0x0000000000200000, 0x0000000000348030)
segment: [0x0000000000200000, 0x00000000002c4268, 0x00000000002d5308)
bounce: [0x0000000065ecf000, 0x0000000065f93268, 0x0000000065fa4308)
Post relocation: addr: 0x0000000065ecf000 memsz: 0x00000000000d5308 filesz: 0x8
it's not compressed!
[ 0x65ecf000, 65f93268, 0x65fa4308) <- ffe922c4
Clearing Segment: addr: 0x0000000065f93268 memsz: 0x00000000000110a0
dest 65ecf000, end 65fa4308, bouncebuffer 65ecf000
Loading Segment: addr: 0x00000000002d5340 memsz: 0x0000000000032cc0 filesz: 0x0
lb: [0x0000000000200000, 0x0000000000348030)
segment: [0x00000000002d5340, 0x0000000000308000, 0x0000000000308000)
bounce: [0x0000000065fa4340, 0x0000000065fd7000, 0x0000000065fd7000)
Post relocation: addr: 0x0000000065fa4340 memsz: 0x0000000000032cc0 filesz: 0x0
it's not compressed!
[ 0x65fa4340, 65fd7000, 0x65fd7000) <- fff5652c
dest 65fa4340, end 65fd7000, bouncebuffer 65ecf000
Loading Segment: addr: 0x0000000000308000 memsz: 0x000000000000d000 filesz: 0x0
lb: [0x0000000000200000, 0x0000000000348030)
segment: [0x0000000000308000, 0x000000000030c000, 0x0000000000315000)
bounce: [0x0000000065fd7000, 0x0000000065fdb000, 0x0000000065fe4000)
Post relocation: addr: 0x0000000065fd7000 memsz: 0x000000000000d000 filesz: 0x0
it's not compressed!
[ 0x65fd7000, 65fdb000, 0x65fe4000) <- fff891ec
Clearing Segment: addr: 0x0000000065fdb000 memsz: 0x0000000000009000
dest 65fd7000, end 65fe4000, bouncebuffer 65ecf000
Loading Segment: addr: 0x0000000000315000 memsz: 0x0000000000008000 filesz: 0x0
lb: [0x0000000000200000, 0x0000000000348030)
segment: [0x0000000000315000, 0x000000000031d000, 0x000000000031d000)
bounce: [0x0000000065fe4000, 0x0000000065fec000, 0x0000000065fec000)
Post relocation: addr: 0x0000000065fe4000 memsz: 0x0000000000008000 filesz: 0x0
it's not compressed!
[ 0x65fe4000, 65fec000, 0x65fec000) <- fff8d1ec
dest 65fe4000, end 65fec000, bouncebuffer 65ecf000
Loaded segments
BS: BS_PAYLOAD_LOAD times (us): entry 0 run 578547 exit 0
Jumping to boot code at 00201000
CPU0: stack: 00287000 - 00288000, lowest used address 00287768, stack used: 22s
entry = 0x00201000
lb_start = 0x00200000
lb_size = 0x00148030
buffer = 0x65ecf000

most of this is our source you can grep from src/lib/selfboot.c in our tree. I'm unsure where to start in figuring this out since its such early stages in the cross over between coreboot and xvisor. Please advise?

Kind Regards,
Edward.

Cannot build on macOS Monterey 12.3

I just typed make menuconfig and selected x86 as target architecture, then when typing make I just get error in start.dep:

➜  xvisor-next git:(master) ✗ make 
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
/bin/sh: line 0: [: -gt: unary operator expected
 (cc-dep)    drivers/base/iomap.dep
 (cc-dep)    daemons/mterm.dep
 (cc-dep)    commands/cmd_module.dep
 (cc-dep)    commands/cmd_wallclock.dep
 (cc-dep)    commands/cmd_heap.dep
 (cc-dep)    commands/cmd_stdio.dep
 (cc-dep)    commands/cmd_chardev.dep
 (cc-dep)    commands/cmd_thread.dep
f (cc-dep)    commands/cmd_shmem.dep
 (cc-dep)    commands/cmd_memory.dep
 (cc-dep)    commands/cmd_guest.dep
 (cc-dep)    commands/cmd_vcpu.dep
 (cc-dep)    commands/cmd_devtree.dep
 (cc-dep)    commands/cmd_iommu.dep
 (cc-dep)    commands/cmd_host.dep
 (cc-dep)    commands/cmd_shutdown.dep
 (cc-dep)    commands/cmd_reset.dep
 (cc-dep)    commands/cmd_echo.dep
 (cc-dep)    commands/cmd_sleep.dep
 (cc-dep)    commands/cmd_version.dep
 (cc-dep)    libs/common/memcpy.dep
 (cc-dep)    libs/common/simple_sort.dep
 (cc-dep)    libs/common/bitrev.dep
 (cc-dep)    libs/common/libfdt.dep
 (cc-dep)    libs/common/mempool.dep
 (cc-dep)    libs/common/buddy.dep
 (cc-dep)    libs/common/idr.dep
 (cc-dep)    libs/common/rational.dep
 (cc-dep)    libs/common/radix-tree.dep
 (cc-dep)    libs/common/rbtree.dep
 (cc-dep)    libs/common/lifo.dep
 (cc-dep)    libs/common/fifo.dep
 (cc-dep)    libs/common/list_sort.dep
 (cc-dep)    libs/common/smoothsort.dep
 (cc-dep)    libs/common/stacktrace.dep
 (cc-dep)    libs/common/mathlib.dep
 (cc-dep)    libs/common/stringlib.dep
 (cc-dep)    libs/common/scatterlist.dep
 (cc-dep)    libs/common/ctype.dep
 (cc-dep)    libs/common/bitmap.dep
 (cc-dep)    libs/common/bitops.dep
 (cc-dep)    libs/common/bcd.dep
 (cc-dep)    libs/kallsyms/kallsyms.dep
 (cc-dep)    core/vmm_extable.dep
 (cc-dep)    core/vmm_params.dep
 (cc-dep)    core/vmm_modules.dep
 (cc-dep)    core/vmm_chardev.dep
 (cc-dep)    core/vmm_iommu.dep
 (cc-dep)    core/vmm_wallclock.dep
 (cc-dep)    core/vmm_cmdmgr.dep
 (cc-dep)    core/vmm_workqueue.dep
 (cc-dep)    core/vmm_notifier.dep
 (cc-dep)    core/vmm_mutex.dep
 (cc-dep)    core/vmm_semaphore.dep
 (cc-dep)    core/vmm_completion.dep
 (cc-dep)    core/vmm_waitqueue.dep
 (cc-dep)    core/vmm_threads.dep
 (cc-dep)    core/vmm_scheduler.dep
 (cc-dep)    core/vmm_manager.dep
 (cc-dep)    core/vmm_guest_aspace.dep
 (cc-dep)    core/vmm_vcpu_irq.dep
 (cc-dep)    core/vmm_shmem.dep
 (cc-dep)    core/vmm_delay.dep
 (cc-dep)    core/vmm_timer.dep
 (cc-dep)    core/vmm_clockchip.dep
 (cc-dep)    core/vmm_clocksource.dep
 (cc-dep)    core/vmm_percpu.dep
 (cc-dep)    core/vmm_cpuhp.dep
 (cc-dep)    core/vmm_msi.dep
 (cc-dep)    core/vmm_host_aspace.dep
 (cc-dep)    core/vmm_host_vapool.dep
 (cc-dep)    core/vmm_host_ram.dep
 (cc-dep)    core/vmm_host_irqdomain.dep
 (cc-dep)    core/vmm_host_irqext.dep
 (cc-dep)    core/vmm_host_irq.dep
 (cc-dep)    core/vmm_resource.dep
 (cc-dep)    core/vmm_devemu.dep
 (cc-dep)    core/vmm_platform_msi.dep
 (cc-dep)    core/vmm_platform.dep
 (cc-dep)    core/vmm_devdrv.dep
 (cc-dep)    core/vmm_devres.dep
 (cc-dep)    core/vmm_devtree_reg.dep
 (cc-dep)    core/vmm_devtree_irq.dep
 (cc-dep)    core/vmm_devtree.dep
 (cc-dep)    core/vmm_cpumask.dep
 (cc-dep)    core/vmm_stdio.dep
 (cc-dep)    core/vmm_pagepool.dep
 (cc-dep)    core/vmm_heap.dep
 (cc-dep)    core/vmm_initfn.dep
 (cc-dep)    core/vmm_main.dep
 (cc-dep)    core/schedalgo/vmm_schedalgo_prr.dep
 (cc-dep)    arch/x86/board/common/devices/serial/serial.dep
 (cc-dep)    arch/x86/board/common/devices/timers/timers.dep
 (cc-dep)    arch/x86/board/common/devices/video/fb_early_console.dep
 (cc-dep)    arch/x86/board/common/devices/video/fb_console.dep
 (cc-dep)    arch/x86/board/common/devices/video/svga.dep
 (cc-dep)    arch/x86/board/common/devices/video/vga.dep
 (dtc-dep)   arch/x86/board/x86_64_generic/dts/defconfig.dep
sed: 1: "/Users/pk/projects/xvis ...": extra characters at the end of p command
 (cc-dep)    arch/x86/board/x86_64_generic/brd_pic.dep
 (cc-dep)    arch/x86/board/x86_64_generic/brd_defterm.dep
 (cc-dep)    arch/x86/board/x86_64_generic/brd_main.dep
 (cc-dep)    arch/x86/cpu/common/vm/arch_guest_helper.dep
 (cc-dep)    arch/x86/cpu/common/vm/cpu_inst_decode.dep
 (cc-dep)    arch/x86/cpu/common/vm/vm.dep
 (cc-dep)    arch/x86/cpu/common/acpi.dep
 (cc-dep)    arch/x86/cpu/common/cpu_apic.dep
 (cc-dep)    arch/x86/cpu/common/cpu_extables.dep
 (cc-dep)    arch/x86/cpu/common/cpu_features.dep
 (cc-dep)    arch/x86/cpu/common/dumpstack.dep
 (cc-dep)    arch/x86/cpu/common/stacktrace.dep
 (as-dep)    arch/x86/cpu/x86_64/cpu_interrupt_handlers.dep
 (cc-dep)    arch/x86/cpu/x86_64/dumpstack_64.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_mmu.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_pgtbl_helper.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_vcpu_helper.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_vcpu_irq.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_interrupts.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_elf.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_string.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_hacks.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_main.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_atomic64.dep
 (cc-dep)    arch/x86/cpu/x86_64/cpu_atomic.dep
 (as-dep)    arch/x86/cpu/x86_64/start.dep
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
/bin/sh: line 0: [: -gt: unary operator expected
/Users/pk/projects/xvisor-next/build/arch/x86/cpu/x86_64/start.dep:1: *** missing separator.  Stop.

P.S I tried both xvisor and xvisor-next

USB device access usecase on Raspberry Pi3

Hello,
After booting with linux guest with USB, SCSI configuration, I am not seeing the directories /sda getting created in /dev after usb pendrive is inserted.
I need to read the usb pendrive contents.
Requesting to provide any advice, suggestions.

Thanks,
Nadeem

Request support for sifive drivers

It would be better if the xvisor can have support for sifive drivers, such as sifive-spi/serial/gpio. Since h-extention has been merged into rocketchip, we can run xvisor on the rocketchip.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.