Add deprecated instruction flags to pinebookpro_defconfig
Certain instructions are deprecated or obsoleted in ARMv8, but still crop up in certain programs compiled for ARMv6 or ARMv7 (e.g. binaries distributed for Android or Raspberry Pi). The kernel can emulate these instructions, but requires some configs to be enabled to do so; otherwise, it fires a SIGILL when such an instruction is attempted.
I think enabling these flags would be beneficial to Pinebook Pro users wanting to run a wide variety of software, especially if it's proprietary and cannot be used otherwise. For instance, several Mono-based games can run on the PBP if their native dependencies are replaced with ARM ones. FMOD is one such dependency, and although it's proprietary it distributes libraries targeting ARMv6. However, these libraries use deprecated functionality, thus making them unusable unless the kernel's emulation is enabled. There are certainly other uses beyond that, such as using anbox, running software intended for old/varied Raspberry Pi boards, or even using Rust's ARMv6 toolchain.
These config flags also enable sysctl nodes to control their functionality (described in the above link), so users can disable emulation if desired.
The following configs would need to be added:
CONFIG_ARMV8_DEPRECATED=y CONFIG_SWP_EMULATION=y CONFIG_CP15_BARRIER_EMULATION=y CONFIG_SETEND_EMULATION=y
Further reading: Handling ARM architecture changes [LWN.net] (and the mailing list post in question)