Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 8cbb4fc12e1d10182cbab93f234510bc616594ca
      
https://github.com/qemu/qemu/commit/8cbb4fc12e1d10182cbab93f234510bc616594ca
  Author: Stacey Son <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    A bsd-user/aarch64/target_arch_cpu.c
    A bsd-user/aarch64/target_arch_cpu.h
    A bsd-user/aarch64/target_syscall.h

  Log Message:
  -----------
  bsd-user:Add CPU initialization and management functions

Added function to initialize ARM CPU and check if it supports 64-bit mode.
Implemented CPU loop function to handle exceptions and emulate execution of 
instructions.
Added function to clone CPU state to create a new thread.
Included AArch64 specific CPU functions for bsd-user to set and receive 
thread-local-storage
value from the tpidr_el0 register.
Introduced structure for storing CPU register states for BSD-USER.

Signed-off-by: Stacey Son <[email protected]>
Signed-off-by: Ajeet Singh <[email protected]>
Co-authored-by: Kyle Evans <[email protected]>
Co-authored-by: Sean Bruno <[email protected]>
Co-authored-by: Jessica Clarke <[email protected]>
Reviewed-by: Warner Losh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Warner Losh <[email protected]>


  Commit: 1acce7718bd41a20d3db6323959fedf9c3675ebe
      
https://github.com/qemu/qemu/commit/1acce7718bd41a20d3db6323959fedf9c3675ebe
  Author: Stacey Son <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    A bsd-user/aarch64/target_arch.h
    A bsd-user/aarch64/target_arch_reg.h
    A bsd-user/aarch64/target_arch_sysarch.h
    A bsd-user/aarch64/target_arch_thread.h
    A bsd-user/aarch64/target_arch_vmparam.h

  Log Message:
  -----------
  bsd-user:Add AArch64 register handling and related functions

Added header file for managing CPU register states in FreeBSD user mode.
Introduced prototypes for setting and getting thread-local storage (TLS).
Implemented AArch64 sysarch() system call emulation and a printing function.
Added function for setting up thread upcall to add thread support to BSD-USER.
Initialized thread's register state during thread setup.
Updated ARM AArch64 VM parameter definitions for bsd-user, including address 
spaces for FreeBSD/arm64 and
a function for getting the stack pointer from CPU and setting a return value.

Signed-off-by: Stacey Son <[email protected]>
Signed-off-by: Ajeet Singh <[email protected]>
Co-authored-by: Jessica Clarke <[email protected]>
Co-authored-by: Sean Bruno <[email protected]>
Co-authored-by: Warner Losh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Warner Losh <[email protected]>


  Commit: 1541d87db24063fcb11b13e6bfb66a193ff9be65
      
https://github.com/qemu/qemu/commit/1541d87db24063fcb11b13e6bfb66a193ff9be65
  Author: Warner Losh <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M bsd-user/aarch64/target_arch.h
    A bsd-user/aarch64/target_arch_elf.h
    M bsd-user/aarch64/target_arch_vmparam.h

  Log Message:
  -----------
  bsd-user:Add ARM AArch64 support and capabilities

Added function to access rval2 by accessing the x1 register.
Defined ARM AArch64 ELF parameters including mmap and dynamic load addresses.
Introduced extensive hardware capability definitions and macros for retrieving 
hardware capability (hwcap) flags.
Implemented function to retrieve ARM AArch64 hardware capabilities using the 
`GET_FEATURE_ID` macro.
Added function to retrieve extended ARM AArch64 hardware capability flags.

Signed-off-by: Stacey Son <[email protected]>
Signed-off-by: Ajeet Singh <[email protected]>
Signed-off-by: Warner Losh <[email protected]>
Co-authored-by: Kyle Evans <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Warner Losh <[email protected]>


  Commit: 7dba5e10a65be276267f379f07a9643100209c0d
      
https://github.com/qemu/qemu/commit/7dba5e10a65be276267f379f07a9643100209c0d
  Author: Stacey Son <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    A bsd-user/aarch64/signal.c
    A bsd-user/aarch64/target_arch_signal.h
    A bsd-user/aarch64/target_arch_sigtramp.h

  Log Message:
  -----------
  bsd-user:Add ARM AArch64 signal handling support

Added sigcode setup function for signal trampoline which initializes a sequence 
of instructions
to handle signal returns and exits, copying this code to the target offset.
Defined ARM AArch64 specific signal definitions including register indices and 
sizes,
and introduced structures to represent general purpose registers, floating 
point registers, and machine context.
Added function to set up signal handler arguments, populating register values 
in `CPUARMState`
based on the provided signal, signal frame, signal action, and frame address.

Signed-off-by: Stacey Son <[email protected]>
Signed-off-by: Ajeet Singh <[email protected]>
Signed-off-by: Warner Losh <[email protected]>
Co-authored-by: Warner Losh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Warner Losh <[email protected]>


  Commit: 9959fae592b2babddb7c371e27281a4e127a2951
      
https://github.com/qemu/qemu/commit/9959fae592b2babddb7c371e27281a4e127a2951
  Author: Stacey Son <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M bsd-user/aarch64/signal.c

  Log Message:
  -----------
  bsd-user:Add get_mcontext function for ARM AArch64

function to retrieve machine context,it populates the provided
target_mcontext_t structure with information from the CPUARMState
registers.

Signed-off-by: Stacey Son <[email protected]>
Signed-off-by: Ajeet Singh <[email protected]>
Co-authored-by: Kyle Evans <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Warner Losh <[email protected]>


  Commit: c88f44d85ab209576fc6704ff636e68e2bbc41dc
      
https://github.com/qemu/qemu/commit/c88f44d85ab209576fc6704ff636e68e2bbc41dc
  Author: Warner Losh <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M bsd-user/aarch64/signal.c

  Log Message:
  -----------
  bsd-user:Add setup_sigframe_arch function for ARM AArch64

The function utilizes the `get_mcontext` function to retrieve the machine
context for the current CPUARMState

Signed-off-by: Warner Losh <[email protected]>
Signed-off-by: Ajeet Singh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Warner Losh <[email protected]>


  Commit: dadfc6d5df1006b52c1c0c8ae3af84ac3be36b31
      
https://github.com/qemu/qemu/commit/dadfc6d5df1006b52c1c0c8ae3af84ac3be36b31
  Author: Stacey Son <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M bsd-user/aarch64/signal.c

  Log Message:
  -----------
  bsd-user:Add set_mcontext function for ARM AArch64

The function copies register values from the provided target_mcontext_t
structure to the CPUARMState registers.
Note:FP is unfinished upstream but will be a separate commit coming soon.

Signed-off-by: Stacey Son <[email protected]>
Signed-off-by: Ajeet Singh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Warner Losh <[email protected]>


  Commit: ce6c541dcb8aff5ca6f02bb64b0d6b6753becab4
      
https://github.com/qemu/qemu/commit/ce6c541dcb8aff5ca6f02bb64b0d6b6753becab4
  Author: Stacey Son <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M bsd-user/aarch64/signal.c
    M bsd-user/aarch64/target_arch_cpu.h
    M bsd-user/aarch64/target_arch_reg.h
    M bsd-user/aarch64/target_arch_signal.h
    M bsd-user/qemu.h

  Log Message:
  -----------
  bsd-user:Add AArch64 improvements and signal handling functions

Added get_ucontext_sigreturn function to check processor state ensuring current 
execution mode is EL0 and no flags
indicating interrupts or exceptions are set.
Updated AArch64 code to use CF directly without reading/writing the entire 
processor state, improving efficiency.
Changed FP data structures to use Int128 instead of __uint128_t, leveraging 
QEMU's generic mechanism for referencing this type.

Signed-off-by: Stacey Son <[email protected]>
Signed-off-by: Ajeet Singh <[email protected]>
Signed-off-by: Warner Losh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Warner Losh <[email protected]>


  Commit: e6e102b972c5228d9d50b3208b83b025ccfd1455
      
https://github.com/qemu/qemu/commit/e6e102b972c5228d9d50b3208b83b025ccfd1455
  Author: Doug Rabson <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M bsd-user/freebsd/os-proc.c
    M bsd-user/main.c

  Log Message:
  -----------
  bsd-user: Simplify the implementation of execve

This removes the logic which prepends the emulator to each call to
execve and fexecve. This is not necessary with the existing
imgact_binmisc support and it avoids the need to install the emulator
binary into jail environments when using 'binmiscctl --pre-open'.

Signed-off-by: Doug Rabson <[email protected]>
Reviewed-by: Warner Losh <[email protected]>
Signed-off-by: Warner Losh <[email protected]>
Acked-by: Richard Henderson <[email protected]>


  Commit: b314fd06cf2e55c6cbdda753faeda0c453ee2629
      
https://github.com/qemu/qemu/commit/b314fd06cf2e55c6cbdda753faeda0c453ee2629
  Author: Warner Losh <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M target/arm/cpu-param.h

  Log Message:
  -----------
  bsd-user: Hard wire aarch64 to be 4k pages only

Only support 4k pages for aarch64 binaries. The variable page size stuff
isn't working just yet, so put in this lessor-of-evils kludge until that
is complete.

Signed-off-by: Warner Losh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>


  Commit: 5b6828d194fba3c170a5f717cc1fc3d35645aadd
      
https://github.com/qemu/qemu/commit/5b6828d194fba3c170a5f717cc1fc3d35645aadd
  Author: Jessica Clarke <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M bsd-user/main.c

  Log Message:
  -----------
  bsd-user: Sync fork_start/fork_end with linux-user

This reorders some of the calls, deduplicates code between branches and,
most importantly, fixes a double end_exclusive call in the parent that
will cause exclusive_context_count to go negative.

Signed-off-by: Jessica Clarke <[email protected]>
Pull-Request: https://github.com/qemu-bsd-user/qemu-bsd-user/pull/52
Reviewed-by: Warner Losh <[email protected]>
Signed-off-by: Warner Losh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>


  Commit: 5fa2a10ba6822fc1e500e921dcae344db46e1649
      
https://github.com/qemu/qemu/commit/5fa2a10ba6822fc1e500e921dcae344db46e1649
  Author: Warner Losh <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M bsd-user/aarch64/target_arch_signal.h
    M bsd-user/arm/target_arch_signal.h
    M bsd-user/i386/target_arch_signal.h
    M bsd-user/signal.c
    M bsd-user/x86_64/target_arch_signal.h

  Log Message:
  -----------
  bsd-user: Define TARGET_SIGSTACK_ALIGN and use it to round stack

Most (all?) targets require stacks to be properly aligned. Rather than a
series of ifdefs in bsd-user/signal.h, instead use a manditory #define
for all architectures.

Signed-off-by: Warner Losh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>


  Commit: 1c687f65b4cd4af2bf4732fd327a4f63c8c33e30
      
https://github.com/qemu/qemu/commit/1c687f65b4cd4af2bf4732fd327a4f63c8c33e30
  Author: Warner Losh <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M target/arm/gdbstub64.c

  Log Message:
  -----------
  bsd-user: Make compile for non-linux user-mode stuff

We include the files that define PR_MTE_TCF_SHIFT only on Linux, but use
them unconditionally. Restrict its use to Linux-only.

"It's ugly, but it's not actually wrong."

Signed-off-by: Warner Losh <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>


  Commit: afdb6be1bd8528395af65a087bd668bf7a42ab99
      
https://github.com/qemu/qemu/commit/afdb6be1bd8528395af65a087bd668bf7a42ab99
  Author: Warner Losh <[email protected]>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    A configs/targets/aarch64-bsd-user.mak

  Log Message:
  -----------
  bsd-user: Add aarch64 build to tree

Add the aarch64 bsd-user fragments needed to build the new aarch64 code.

Signed-off-by: Warner Losh <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>


  Commit: ec018b76798e1196882ebcbf3df15e6d86ac9d7c
      
https://github.com/qemu/qemu/commit/ec018b76798e1196882ebcbf3df15e6d86ac9d7c
  Author: Warner Losh <[email protected]>
  Date:   2024-07-24 (Wed, 24 Jul 2024)

  Changed paths:
    A bsd-user/aarch64/target.h

  Log Message:
  -----------
  bsd-user: Add target.h for aarch64.

For aarch64, it's a 64-bit API, so there's no pairing of registers for
64-bit values.

Signed-off-by: Warner Losh <[email protected]>


  Commit: 029e13a8a56a2931e7c24c0db52ae7256b932cb0
      
https://github.com/qemu/qemu/commit/029e13a8a56a2931e7c24c0db52ae7256b932cb0
  Author: Richard Henderson <[email protected]>
  Date:   2024-07-25 (Thu, 25 Jul 2024)

  Changed paths:
    A bsd-user/aarch64/signal.c
    A bsd-user/aarch64/target.h
    A bsd-user/aarch64/target_arch.h
    A bsd-user/aarch64/target_arch_cpu.c
    A bsd-user/aarch64/target_arch_cpu.h
    A bsd-user/aarch64/target_arch_elf.h
    A bsd-user/aarch64/target_arch_reg.h
    A bsd-user/aarch64/target_arch_signal.h
    A bsd-user/aarch64/target_arch_sigtramp.h
    A bsd-user/aarch64/target_arch_sysarch.h
    A bsd-user/aarch64/target_arch_thread.h
    A bsd-user/aarch64/target_arch_vmparam.h
    A bsd-user/aarch64/target_syscall.h
    M bsd-user/arm/target_arch_signal.h
    M bsd-user/freebsd/os-proc.c
    M bsd-user/i386/target_arch_signal.h
    M bsd-user/main.c
    M bsd-user/qemu.h
    M bsd-user/signal.c
    M bsd-user/x86_64/target_arch_signal.h
    A configs/targets/aarch64-bsd-user.mak
    M target/arm/cpu-param.h
    M target/arm/gdbstub64.c

  Log Message:
  -----------
  Merge tag 'bsd-user-for-9.1-pull-request' of gitlab.com:bsdimp/qemu into 
staging

bsd-user: Misc changes for 9.1 (I hope)

V2: Add missing bsd-user/aarch64/target.h

This patch series includes two main sets of patches. To make it simple to
review, I've included the changes from my student which the later changes depend
on. I've included a change from Jessica and Doug as well. I've reviewed them,
but more eyes never hurt.

I've also included a number of 'touch up' patches needed either to get the
aarch64 building, or to implmement suggestions from prior review cycles. The
main one is what's charitably described as a kludge: force aarch64 to use 4k
pages. The qemu-project (and blitz branch) hasn't had the necessary changes to
bsd-user needed to support variable page size.

Sorry this is so late... Live has conspired to delay me.

# -----BEGIN PGP SIGNATURE-----
# Comment: GPGTools - https://gpgtools.org
#
# iQIzBAABCgAdFiEEIDX4lLAKo898zeG3bBzRKH2wEQAFAmahejwACgkQbBzRKH2w
# EQCXuQ/+Pj1Izmox/y9X1trn1T8KC7JdMtimdLiGMaS4C6+gcThXJkIB4l9ZStbV
# 7rI540mpqVf0KSRLYwc2/ATyhYU7Ffsz02WPn7Xn/NvmmITp4kjw9Z0gd7C7mPVq
# fS8DJbTyFQDy5dO8FUKLaTfnlYQe+NCnL421t9wFkIrlEepFygRaBaJN5yWVoC+0
# 1Ob6dG+JEV5BmNguMufvvI3S7nEFEnSBGpNqW3ljrRHAZjdNhv8d9GBYbj1laR1r
# HQ6r5+u4ZmKCuUbchS0jxGkug0DjuQC7iq+rQ/7fhLYLChkPZ4P2RxNv8ibzKjEV
# wlTy5LaM+WZNzKWdcHfDFMomeSnnUkOOfAMipMney2jedEjTIwCFDnP4zCAuG83V
# RbdXWfleP1rDto3AQ765pFneqm3+su2Dh4TKaTSnq6gd1eORJ2IL8dubCfcVwZCy
# TofemXPWh0HX3kwlD9IB9rqplQZFL78TkQ47btftxinHCLCQOOHRDPVG0IahQPjo
# pgK4yVH7WA7pWV2Xbo4ngG3sX5U1TyBCbfkkAwhq+P3gjnU8zxonx8Tk/qLeEDdH
# KEypi/pkGFQKZY0wc/y4XM+XQh6E1l8gMaQ4gJWK1qlyVtUKM1BiNQ2lweohYzC8
# p6WAfBQLPpzY4mDWfJMF6DsgObLwWmYbgKzuOtHgST1D/Ebk3Zo=
# =RPuN
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 25 Jul 2024 08:03:40 AM AEST
# gpg:                using RSA key 2035F894B00AA3CF7CCDE1B76C1CD1287DB01100
# gpg: Good signature from "Warner Losh <[email protected]>" [unknown]
# gpg:                 aka "Warner Losh <[email protected]>" [unknown]
# gpg:                 aka "Warner Losh <[email protected]>" [unknown]
# gpg:                 aka "Warner Losh <[email protected]>" [unknown]
# gpg:                 aka "Warner Losh <[email protected]>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 2035 F894 B00A A3CF 7CCD  E1B7 6C1C D128 7DB0 1100

* tag 'bsd-user-for-9.1-pull-request' of gitlab.com:bsdimp/qemu:
  bsd-user: Add target.h for aarch64.
  bsd-user: Add aarch64 build to tree
  bsd-user: Make compile for non-linux user-mode stuff
  bsd-user: Define TARGET_SIGSTACK_ALIGN and use it to round stack
  bsd-user: Sync fork_start/fork_end with linux-user
  bsd-user: Hard wire aarch64 to be 4k pages only
  bsd-user: Simplify the implementation of execve
  bsd-user:Add AArch64 improvements and signal handling functions
  bsd-user:Add set_mcontext function for ARM AArch64
  bsd-user:Add setup_sigframe_arch function for ARM AArch64
  bsd-user:Add get_mcontext function for ARM AArch64
  bsd-user:Add ARM AArch64 signal handling support
  bsd-user:Add ARM AArch64 support and capabilities
  bsd-user:Add AArch64 register handling and related functions
  bsd-user:Add CPU initialization and management functions

Signed-off-by: Richard Henderson <[email protected]>


  Commit: 59f989c3d75342c9cbe9e687e9c819bc9cb25b56
      
https://github.com/qemu/qemu/commit/59f989c3d75342c9cbe9e687e9c819bc9cb25b56
  Author: Akihiko Odaki <[email protected]>
  Date:   2024-07-26 (Fri, 26 Jul 2024)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml
    M meson.build

  Log Message:
  -----------
  meson: Use -fno-sanitize=function when available

Commit 23ef50ae2d0c (".gitlab-ci.d/buildtest.yml: Use
-fno-sanitize=function in the clang-system job") adds
-fno-sanitize=function for the CI but doesn't add the flag in the
other context. Move it to meson.build.

Signed-off-by: Akihiko Odaki <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>


Compare: https://github.com/qemu/qemu/compare/9726687f2fdf...59f989c3d753

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications

Reply via email to