Page MenuHomeFreeBSD

Set CP15BEN in SCTLR to make memory barriers work in 32-bit mode.
ClosedPublic

Authored by ed on Nov 18 2017, 1:10 PM.
Referenced Files
Unknown Object (File)
Jan 2 2024, 9:17 AM
Unknown Object (File)
Dec 20 2023, 2:32 AM
Unknown Object (File)
Oct 19 2023, 6:23 PM
Unknown Object (File)
Oct 19 2023, 7:20 AM
Unknown Object (File)
Oct 9 2023, 11:14 AM
Unknown Object (File)
Sep 30 2023, 11:42 AM
Unknown Object (File)
Aug 9 2023, 11:52 PM
Unknown Object (File)
Jul 4 2023, 1:30 PM
Subscribers

Details

Summary

Binaries generated by Clang for ARMv6 may contain these instructions:

MCR p15, 0, <Rd>, c7, c10, 5

These instructions are deprecated as of ARMv7, which is why modern
processors have a way of toggling support for them. On FreeBSD/arm64 we
currently disable support for these instructions, meaning that if 32-bit
executables would be run, they would crash with SIGILL. This is likely
not what we want.

Test Plan

This change, and others, allow me to properly run CloudABI
executables for ARMv6 and ARMv7 on FreeBSD/arm64.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Are we expecting to run armv6 code, or should we just support armv7?

Are we expecting to run armv6 code, or should we just support armv7?

In the case of CloudABI I'd like to run ARMv6 code as well.

This revision is now accepted and ready to land.Nov 24 2017, 1:49 PM
This revision was automatically updated to reflect the committed changes.