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 <[email protected]>
AuthorDate: 2024-01-09 15:22:27 +0000
Commit:     Andrew Turner <[email protected]>
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?

Reply via email to