blob: d44b21498f6b536d190a15d0ffb19e83e7034d34 [file] [log] [blame]
Heinrich Schuchardt206697a2018-04-03 21:59:33 +02001/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Routines to access the system control register
4 *
5 * Copyright (c) 2018 Heinrich Schuchardt
6 */
7
8#include <linux/linkage.h>
9
10/*
Marek Vasut13578042023-07-01 17:26:18 +020011 * void v7_arch_cp15_allow_unaligned(void) - allow unaligned access
Heinrich Schuchardt206697a2018-04-03 21:59:33 +020012 *
13 * This routine clears the aligned flag in the system control register.
14 * After calling this routine unaligned access does no longer lead to a
15 * data abort but is handled by the CPU.
16 */
Marek Vasut13578042023-07-01 17:26:18 +020017ENTRY(v7_arch_cp15_allow_unaligned)
Heinrich Schuchardt206697a2018-04-03 21:59:33 +020018 mrc p15, 0, r0, c1, c0, 0 @ load system control register
19 bic r0, r0, #2 @ clear aligned flag
20 mcr p15, 0, r0, c1, c0, 0 @ write system control register
21 bx lr @ return
Marek Vasut13578042023-07-01 17:26:18 +020022ENDPROC(v7_arch_cp15_allow_unaligned)