W-M-R opened a new pull request, #21361:
URL: https://github.com/apache/nuttx/pull/21361

   ## Summary
   
   - `arm64_fork.c`: `fork()` did not copy `SCTLR_EL1` into the child context, 
so
     the child ran with whatever value the previous task left behind. Copy it
     from the parent and force `TCF1` when `CONFIG_ARM64_MTE` is enabled.
   - `arm64_hwdebug.c`: clear `OSDLR_EL1`/`OSLAR_EL1` when enabling the debug
     monitor, as required on armv8-R; otherwise stale software lock state is
     left behind.
   - `arm64_arch_timer.c`: remove an unused timer compare helper.
   - `boards/arm64/fvp-v8r/fvp-armv8r/scripts/dramboot.ld`: drop the leftover
     `. = + 60;` location-counter expression.
   
   ## Impact
   
   - Corrects fork state on arm64 and hwdebug on armv8-R.
   - The remaining two changes are dead code and linker script cleanups.
   
   ## Testing
   
   Host: Ubuntu 22.04, qemu-system-aarch64 8.2, aarch64-none-elf-gcc 13.
   
   fork / SCTLR_EL1:
   
       ./tools/configure.sh -l qemu-armv8a:nsh_smp
       make -j
       # boot as documented, then:
       nsh> ostest
   
   `ostest` runs the fork test; the child no longer inherits a stale 
`SCTLR_EL1`.
   Repeated `fork()` + `exec()` in a loop also passes.
   
   MTE variant: build `qemu-armv8a:mte`, boot with `-cpu max ... mte=on` and run
   `mtetest`.
   
   hwdebug on armv8-R and the `dramboot.ld` change were build-tested with the
   `fvp-armv8r:nsh` config; running them needs the Arm FVP model, not QEMU.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to