1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Copyright (C) 2004 Olof Johansson <olof@lixom.net>, IBM Corporation
6 #ifndef _POWERPC_SYSDEV_DART_H
7 #define _POWERPC_SYSDEV_DART_H
10 /* Offset from base to control register */
13 /* Offset from base to exception register */
14 #define DART_EXCP_U3 0x10
15 /* Offset from base to TLB tag registers */
16 #define DART_TAGS_U3 0x1000
19 #define DART_BASE_U4 0x10
20 #define DART_SIZE_U4 0x20
21 #define DART_EXCP_U4 0x30
22 #define DART_TAGS_U4 0x1000
24 /* Control Register fields */
27 #define DART_CNTL_U3_BASE_MASK 0xfffff
28 #define DART_CNTL_U3_BASE_SHIFT 12
29 #define DART_CNTL_U3_FLUSHTLB 0x400
30 #define DART_CNTL_U3_ENABLE 0x200
31 #define DART_CNTL_U3_SIZE_MASK 0x1ff
32 #define DART_CNTL_U3_SIZE_SHIFT 0
35 #define DART_BASE_U4_BASE_MASK 0xffffff
36 #define DART_BASE_U4_BASE_SHIFT 0
37 #define DART_CNTL_U4_ENABLE 0x80000000
38 #define DART_CNTL_U4_IONE 0x40000000
39 #define DART_CNTL_U4_FLUSHTLB 0x20000000
40 #define DART_CNTL_U4_IDLE 0x10000000
41 #define DART_CNTL_U4_PAR_EN 0x08000000
42 #define DART_CNTL_U4_IONE_MASK 0x07ffffff
43 #define DART_SIZE_U4_SIZE_MASK 0x1fff
44 #define DART_SIZE_U4_SIZE_SHIFT 0
46 #define DART_REG(r) (dart + ((r) >> 2))
47 #define DART_IN(r) (in_be32(DART_REG(r)))
48 #define DART_OUT(r,v) (out_be32(DART_REG(r), (v)))
51 /* size of table in pages */
54 /* DART table fields */
56 #define DARTMAP_VALID 0x80000000
57 #define DARTMAP_RPNMASK 0x00ffffff
60 #define DART_PAGE_SHIFT 12
61 #define DART_PAGE_SIZE (1 << DART_PAGE_SHIFT)
64 #endif /* _POWERPC_SYSDEV_DART_H */