Re: git: 47e073941f4e - main - Import the kernel parts of bhyve/arm64
- In reply to: Andrew Turner : "git: 47e073941f4e - main - Import the kernel parts of bhyve/arm64"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 26 Feb 2024 07:24:00 UTC
On Wed, 21 Feb 2024, Andrew Turner wrote: > The branch main has been updated by andrew: > > URL: https://cgit.FreeBSD.org/src/commit/?id=47e073941f4e7ca6e9bde3fa65abbfcfed6bfa2b > > commit 47e073941f4e7ca6e9bde3fa65abbfcfed6bfa2b > Author: Andrew Turner <andrew@FreeBSD.org> > AuthorDate: 2024-01-09 15:22:27 +0000 > Commit: Andrew Turner <andrew@FreeBSD.org> > CommitDate: 2024-02-21 18:55:32 +0000 > > Import the kernel parts of bhyve/arm64 > > To support virtual machines on arm64 add the vmm code. This is based on > earlier work by Mihai Carabas and Alexandru Elisei at University > Politehnica of Bucharest, with further work by myself and Mark Johnston. > > All AArch64 CPUs should work, however only the GICv3 interrupt > controller is supported. There is initial support to allow the GICv2 > to be supported in the future. Only pure Armv8.0 virtualisation is > supported, the Virtualization Host Extensions are not currently used. > > With a separate userspace patch and U-Boot port FreeBSD guests are able > to boot to multiuser mode, and the hypervisor can be tested with the > kvm unit tests. Linux partially boots, but hangs before entering > userspace. Other operating systems are untested. > > Sponsored by: Arm Ltd > Sponsored by: Innovate UK > Sponsored by: The FreeBSD Foundation > Sponsored by: University Politehnica of Bucharest > Differential Revision: https://reviews.freebsd.org/D37428 > --- > sys/arm64/include/vmm.h | 362 +++++ > sys/arm64/include/vmm_dev.h | 272 ++++ > sys/arm64/include/vmm_instruction_emul.h | 83 ++ > sys/arm64/include/vmm_snapshot.h | 1 + > sys/arm64/vmm/arm64.h | 165 +++ > sys/arm64/vmm/hyp.h | 114 ++ > sys/arm64/vmm/io/vgic.c | 122 ++ > sys/arm64/vmm/io/vgic.h | 52 + > sys/arm64/vmm/io/vgic_if.m | 104 ++ > sys/arm64/vmm/io/vgic_v3.c | 2348 ++++++++++++++++++++++++++++++ > sys/arm64/vmm/io/vgic_v3.h | 57 + > sys/arm64/vmm/io/vgic_v3_reg.h | 129 ++ > sys/arm64/vmm/io/vtimer.c | 503 +++++++ > sys/arm64/vmm/io/vtimer.h | 85 ++ > sys/arm64/vmm/mmu.h | 52 + > sys/arm64/vmm/reset.h | 33 + > sys/arm64/vmm/vmm.c | 1803 +++++++++++++++++++++++ > sys/arm64/vmm/vmm_arm64.c | 1337 +++++++++++++++++ > sys/arm64/vmm/vmm_call.S | 39 + > sys/arm64/vmm/vmm_dev.c | 1054 ++++++++++++++ > sys/arm64/vmm/vmm_hyp.c | 735 ++++++++++ > sys/arm64/vmm/vmm_hyp_el2.S | 39 + > sys/arm64/vmm/vmm_hyp_exception.S | 384 +++++ > sys/arm64/vmm/vmm_instruction_emul.c | 102 ++ > sys/arm64/vmm/vmm_ktr.h | 69 + > sys/arm64/vmm/vmm_mmu.c | 430 ++++++ > sys/arm64/vmm/vmm_reset.c | 177 +++ > sys/arm64/vmm/vmm_stat.c | 165 +++ > sys/arm64/vmm/vmm_stat.h | 145 ++ > sys/conf/files.arm64 | 33 + > sys/conf/ldscript.arm64 | 2 + > sys/conf/options.arm64 | 3 + > sys/modules/Makefile | 2 + > sys/modules/vmm/Makefile | 78 +- > 34 files changed, 11066 insertions(+), 13 deletions(-) I am not exactly sure but I think it is the SYSTEM_LD_BASECMD in files.amr64 which leads to: ld: warning: cannot find entry symbol _start; not setting start address Is there a way to get rid of the warning?