Re: git: 47e073941f4e - main - Import the kernel parts of bhyve/arm64

From: Bjoern A. Zeeb <bzeeb-lists_at_lists.zabbadoz.net>
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?