Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • L linux-pinebook-pro
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 5
    • Issues 5
    • List
    • Boards
    • Service Desk
    • Milestones
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Tobias Schramm
  • linux-pinebook-pro
  • Issues
  • #9
Closed
Open
Issue created Jul 03, 2020 by Will Springer@Skirmisher

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

Thanks!

Further reading: Handling ARM architecture changes [LWN.net] (and the mailing list post in question)

Assignee
Assign to
Time tracking