sctlr.S 648 B

12345678910111213141516171819202122
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Routines to access the system control register
  4. *
  5. * Copyright (c) 2018 Heinrich Schuchardt
  6. */
  7. #include <linux/linkage.h>
  8. /*
  9. * void allow_unaligned(void) - allow unaligned access
  10. *
  11. * This routine clears the aligned flag in the system control register.
  12. * After calling this routine unaligned access does no longer lead to a
  13. * data abort but is handled by the CPU.
  14. */
  15. ENTRY(allow_unaligned)
  16. mrc p15, 0, r0, c1, c0, 0 @ load system control register
  17. bic r0, r0, #2 @ clear aligned flag
  18. mcr p15, 0, r0, c1, c0, 0 @ write system control register
  19. bx lr @ return
  20. ENDPROC(allow_unaligned)