summaryrefslogtreecommitdiffstats
path: root/include/asm-arm/proc-armv/uncompress.h
blob: acce2de35e44b9cf7e23f8301997c97d1587f30e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 * linux/include/asm-arm/proc-armv/uncompress.h
 *
 * (c) 1997 Russell King
 */

static inline void proc_decomp_setup (void)
{
	__asm__ __volatile__("
	mrc	p15, 0, r0, c0, c0
	eor	r0, r0, #0x44 << 24
	eor	r0, r0, #0x01 << 16
	eor	r0, r0, #0xA1 << 8
	movs	r0, r0, lsr #4
	mcreq	p15, 0, r0, c7, c5, 0		@ flush I cache
	mrceq	p15, 0, r0, c1, c0
	orreq	r0, r0, #1 << 12
	mcreq	p15, 0, r0, c1, c0		@ enable I cache
	mov	r0, #0
	mcreq	p15, 0, r0, c15, c1, 2		@ enable clock switching
	" : : : "r0", "cc", "memory");
}