1/*
2 * AURORA shared L2 cache controller support
3 *
4 * Copyright (C) 2012 Marvell
5 *
6 * Yehuda Yitschak <yehuday@marvell.com>
7 * Gregory CLEMENT <gregory.clement@free-electrons.com>
8 *
9 * This file is licensed under the terms of the GNU General Public
10 * License version 2.  This program is licensed "as is" without any
11 * warranty of any kind, whether express or implied.
12 */
13
14#ifndef __ASM_ARM_HARDWARE_AURORA_L2_H
15#define __ASM_ARM_HARDWARE_AURORA_L2_H
16
17#define AURORA_SYNC_REG		    0x700
18#define AURORA_RANGE_BASE_ADDR_REG  0x720
19#define AURORA_FLUSH_PHY_ADDR_REG   0x7f0
20#define AURORA_INVAL_RANGE_REG	    0x774
21#define AURORA_CLEAN_RANGE_REG	    0x7b4
22#define AURORA_FLUSH_RANGE_REG	    0x7f4
23
24#define AURORA_ACR_REPLACEMENT_OFFSET	    27
25#define AURORA_ACR_REPLACEMENT_MASK	     \
26	(0x3 << AURORA_ACR_REPLACEMENT_OFFSET)
27#define AURORA_ACR_REPLACEMENT_TYPE_WAYRR    \
28	(0 << AURORA_ACR_REPLACEMENT_OFFSET)
29#define AURORA_ACR_REPLACEMENT_TYPE_LFSR     \
30	(1 << AURORA_ACR_REPLACEMENT_OFFSET)
31#define AURORA_ACR_REPLACEMENT_TYPE_SEMIPLRU \
32	(3 << AURORA_ACR_REPLACEMENT_OFFSET)
33
34#define AURORA_ACR_FORCE_WRITE_POLICY_OFFSET	0
35#define AURORA_ACR_FORCE_WRITE_POLICY_MASK	\
36	(0x3 << AURORA_ACR_FORCE_WRITE_POLICY_OFFSET)
37#define AURORA_ACR_FORCE_WRITE_POLICY_DIS	\
38	(0 << AURORA_ACR_FORCE_WRITE_POLICY_OFFSET)
39#define AURORA_ACR_FORCE_WRITE_BACK_POLICY	\
40	(1 << AURORA_ACR_FORCE_WRITE_POLICY_OFFSET)
41#define AURORA_ACR_FORCE_WRITE_THRO_POLICY	\
42	(2 << AURORA_ACR_FORCE_WRITE_POLICY_OFFSET)
43
44#define MAX_RANGE_SIZE		1024
45
46#define AURORA_WAY_SIZE_SHIFT	2
47
48#define AURORA_CTRL_FW		0x100
49
50/* chose a number outside L2X0_CACHE_ID_PART_MASK to be sure to make
51 * the distinction between a number coming from hardware and a number
52 * coming from the device tree */
53#define AURORA_CACHE_ID	       0x100
54
55#endif /* __ASM_ARM_HARDWARE_AURORA_L2_H */
56