hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Contains register definitions common to PowerPC 8xx CPUs.  Notice
 */
#ifndef _ASM_POWERPC_REG_8xx_H
#define _ASM_POWERPC_REG_8xx_H
 
/* Cache control on the MPC8xx is provided through some additional
 * special purpose registers.
 */
#define SPRN_IC_CST    560    /* Instruction cache control/status */
#define SPRN_IC_ADR    561    /* Address needed for some commands */
#define SPRN_IC_DAT    562    /* Read-only data register */
#define SPRN_DC_CST    568    /* Data cache control/status */
#define SPRN_DC_ADR    569    /* Address needed for some commands */
#define SPRN_DC_DAT    570    /* Read-only data register */
 
/* Misc Debug */
#define SPRN_DPDR    630
#define SPRN_MI_CAM    816
#define SPRN_MI_RAM0    817
#define SPRN_MI_RAM1    818
#define SPRN_MD_CAM    824
#define SPRN_MD_RAM0    825
#define SPRN_MD_RAM1    826
 
/* Special MSR manipulation registers */
#define SPRN_EIE    80    /* External interrupt enable (EE=1, RI=1) */
#define SPRN_EID    81    /* External interrupt disable (EE=0, RI=1) */
#define SPRN_NRI    82    /* Non recoverable interrupt (EE=0, RI=0) */
 
/* Debug registers */
#define SPRN_CMPA    144
#define SPRN_COUNTA    150
#define SPRN_CMPE    152
#define SPRN_CMPF    153
#define SPRN_LCTRL1    156
#define   LCTRL1_CTE_GT        0xc0000000
#define   LCTRL1_CTF_LT        0x14000000
#define   LCTRL1_CRWE_RW    0x00000000
#define   LCTRL1_CRWE_RO    0x00040000
#define   LCTRL1_CRWE_WO    0x000c0000
#define   LCTRL1_CRWF_RW    0x00000000
#define   LCTRL1_CRWF_RO    0x00010000
#define   LCTRL1_CRWF_WO    0x00030000
#define SPRN_LCTRL2    157
#define   LCTRL2_LW0EN        0x80000000
#define   LCTRL2_LW0LA_E    0x00000000
#define   LCTRL2_LW0LA_F    0x04000000
#define   LCTRL2_LW0LA_EandF    0x08000000
#define   LCTRL2_LW0LADC    0x02000000
#define   LCTRL2_SLW0EN        0x00000002
#ifdef CONFIG_PPC_8xx
#define SPRN_ICTRL    158
#endif
#define SPRN_BAR    159
 
/* Commands.  Only the first few are available to the instruction cache.
*/
#define    IDC_ENABLE    0x02000000    /* Cache enable */
#define IDC_DISABLE    0x04000000    /* Cache disable */
#define IDC_LDLCK    0x06000000    /* Load and lock */
#define IDC_UNLINE    0x08000000    /* Unlock line */
#define IDC_UNALL    0x0a000000    /* Unlock all */
#define IDC_INVALL    0x0c000000    /* Invalidate all */
 
#define DC_FLINE    0x0e000000    /* Flush data cache line */
#define DC_SFWT        0x01000000    /* Set forced writethrough mode */
#define DC_CFWT        0x03000000    /* Clear forced writethrough mode */
#define DC_SLES        0x05000000    /* Set little endian swap mode */
#define DC_CLES        0x07000000    /* Clear little endian swap mode */
 
/* Status.
*/
#define IDC_ENABLED    0x80000000    /* Cache is enabled */
#define IDC_CERR1    0x00200000    /* Cache error 1 */
#define IDC_CERR2    0x00100000    /* Cache error 2 */
#define IDC_CERR3    0x00080000    /* Cache error 3 */
 
#define DC_DFWT        0x40000000    /* Data cache is forced write through */
#define DC_LES        0x20000000    /* Caches are little endian mode */
 
#endif /* _ASM_POWERPC_REG_8xx_H */