Mercurial > flash_v2
annotate packages/hal/powerpc/arch/current/include/ppc_regs.h @ 136:a9ac27ec7abc ecos-sw-2000-11-17
Merge from eCos master repository on 2000-11-17-18:24:25-GMT
| author | jlarmour |
|---|---|
| date | Fri, 17 Nov 2000 23:16:43 +0000 |
| parents | 435cced73e2f |
| children | e0c0827131d1 |
| rev | line source |
|---|---|
| 0 | 1 #ifndef CYGONCE_HAL_PPC_REGS_H |
| 2 #define CYGONCE_HAL_PPC_REGS_H | |
| 3 | |
| 2 | 4 //========================================================================== |
| 5 // | |
| 6 // ppc_regs.h | |
| 7 // | |
| 8 // PowerPC CPU definitions | |
| 9 // | |
| 10 //========================================================================== | |
| 11 //####COPYRIGHTBEGIN#### | |
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
12 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
13 // ------------------------------------------- |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
14 // The contents of this file are subject to the Red Hat eCos Public License |
|
66
bf00f99aec69
Merge from eCos master repository on 2000-02-02-19:16:44-GMT
jlarmour
parents:
64
diff
changeset
|
15 // Version 1.1 (the "License"); you may not use this file except in |
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
16 // compliance with the License. You may obtain a copy of the License at |
|
66
bf00f99aec69
Merge from eCos master repository on 2000-02-02-19:16:44-GMT
jlarmour
parents:
64
diff
changeset
|
17 // http://www.redhat.com/ |
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
18 // |
|
66
bf00f99aec69
Merge from eCos master repository on 2000-02-02-19:16:44-GMT
jlarmour
parents:
64
diff
changeset
|
19 // Software distributed under the License is distributed on an "AS IS" |
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
20 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
21 // License for the specific language governing rights and limitations under |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
22 // the License. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
23 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
24 // The Original Code is eCos - Embedded Configurable Operating System, |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
25 // released September 30, 1998. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
26 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
27 // The Initial Developer of the Original Code is Red Hat. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
28 // Portions created by Red Hat are |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
29 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
30 // All Rights Reserved. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
31 // ------------------------------------------- |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
20
diff
changeset
|
32 // |
| 2 | 33 //####COPYRIGHTEND#### |
| 34 //========================================================================== | |
| 35 //#####DESCRIPTIONBEGIN#### | |
| 36 // | |
| 37 // Author(s): jskov | |
| 38 // Contributors: jskov | |
| 39 // Date: 1999-02-19 | |
| 40 // Purpose: Provide PPC register definitions | |
| 41 // Description: Provide PPC register definitions | |
| 42 // The short difinitions (sans CYGARC_REG_) are exported only | |
| 43 // if CYGARC_HAL_COMMON_EXPORT_CPU_MACROS is defined. | |
| 44 // Usage: | |
| 45 // #include <cyg/hal/ppc_regs.h> | |
| 46 // ... | |
| 47 // | |
| 48 // | |
| 49 //####DESCRIPTIONEND#### | |
| 50 // | |
| 51 //========================================================================== | |
| 0 | 52 |
| 2 | 53 #include <pkgconf/hal.h> |
| 0 | 54 |
|
70
c5536bad4c24
Merge from eCos master repository on 2000-02-11-15:46:40-GMT
jlarmour
parents:
68
diff
changeset
|
55 #include <cyg/hal/var_regs.h> |
|
c5536bad4c24
Merge from eCos master repository on 2000-02-11-15:46:40-GMT
jlarmour
parents:
68
diff
changeset
|
56 |
| 2 | 57 //-------------------------------------------------------------------------- |
| 58 // SPR access macros. | |
| 59 #define CYGARC_MTSPR(_spr_, _v_) \ | |
| 60 asm volatile ("mtspr %0, %1;" :: "I" (_spr_), "r" (_v_)); | |
| 61 #define CYGARC_MFSPR(_spr_, _v_) \ | |
| 62 asm volatile ("mfspr %0, %1;" : "=r" (_v_) : "I" (_spr_)); | |
| 63 | |
| 64 //-------------------------------------------------------------------------- | |
| 65 // TB access macros. | |
| 66 #define CYGARC_MTTB(_tbr_, _v_) \ | |
| 67 asm volatile ("mttb %0, %1;" :: "I" (_tbr_), "r" (_v_)); | |
| 68 #define CYGARC_MFTB(_tbr_, _v_) \ | |
| 69 asm volatile ("mftb %0, %1;" : "=r" (_v_) : "I" (_tbr_)); | |
| 70 | |
| 71 //-------------------------------------------------------------------------- | |
|
70
c5536bad4c24
Merge from eCos master repository on 2000-02-11-15:46:40-GMT
jlarmour
parents:
68
diff
changeset
|
72 // Generic PowerPC Family Definitions |
| 2 | 73 //-------------------------------------------------------------------------- |
| 0 | 74 |
| 2 | 75 //-------------------------------------------------------------------------- |
| 76 // Some SPRs | |
| 77 #define CYGARC_REG_DSISR 18 | |
| 78 #define CYGARC_REG_DAR 19 | |
| 79 #define CYGARC_REG_DEC 22 | |
| 80 #define CYGARC_REG_SRR0 26 | |
| 81 #define CYGARC_REG_SRR1 27 | |
| 82 #define CYGARC_REG_SPRG0 272 | |
| 83 #define CYGARC_REG_SPRG1 273 | |
| 84 #define CYGARC_REG_SPRG2 274 | |
| 85 #define CYGARC_REG_SPRG3 275 | |
| 86 #define CYGARC_REG_PVR 287 | |
| 0 | 87 |
| 2 | 88 #ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS |
| 89 #define DSISR CYGARC_REG_DSISR | |
| 90 #define DAR CYGARC_REG_DAR | |
| 91 #define DEC CYGARC_REG_DEC | |
| 92 #define SRR0 CYGARC_REG_SRR0 | |
| 93 #define SRR1 CYGARC_REG_SRR1 | |
| 94 #define SPRG0 CYGARC_REG_SPRG0 | |
| 95 #define SPRG1 CYGARC_REG_SPRG1 | |
| 96 #define SPRG2 CYGARC_REG_SPRG2 | |
| 97 #define SPRG3 CYGARC_REG_SPRG3 | |
| 98 #define PVR CYGARC_REG_PVR | |
| 0 | 99 #endif |
| 100 | |
| 2 | 101 //-------------------------------------------------------------------------- |
| 0 | 102 // MSR bits |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
103 #define CYGARC_REG_MSR_LE 0x00000001 // little-endian mode enable |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
104 #define CYGARC_REG_MSR_RI 0x00000002 // recoverable exception |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
105 #define CYGARC_REG_MSR_DR 0x00000010 // data address translation |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
106 #define CYGARC_REG_MSR_IR 0x00000020 // instruction address translation |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
107 #define CYGARC_REG_MSR_IP 0x00000040 // exception prefix |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
108 #define CYGARC_REG_MSR_FE1 0x00000100 // floating-point exception mode 1 |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
109 #define CYGARC_REG_MSR_BE 0x00000200 // branch trace enable |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
110 #define CYGARC_REG_MSR_SE 0x00000400 // single-step trace enable |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
111 #define CYGARC_REG_MSR_FE0 0x00000800 // floating-point exception mode 0 |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
112 #define CYGARC_REG_MSR_ME 0x00001000 // machine check enable |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
113 #define CYGARC_REG_MSR_FP 0x00002000 // floating-point available |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
114 #define CYGARC_REG_MSR_PR 0x00004000 // privilege level |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
115 #define CYGARC_REG_MSR_EE 0x00008000 // external interrupt enable |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
116 #define CYGARC_REG_MSR_ILE 0x00010000 // exception little-endian mode |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
117 #define CYGARC_REG_MSR_POW 0x00040000 // power management enable |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
118 |
| 2 | 119 #ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
120 #define MSR_LE CYGARC_REG_MSR_LE |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
121 #define MSR_RI CYGARC_REG_MSR_RI |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
122 #define MSR_DR CYGARC_REG_MSR_DR |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
123 #define MSR_IR CYGARC_REG_MSR_IR |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
124 #define MSR_IP CYGARC_REG_MSR_IP |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
125 #define MSR_FE1 CYGARC_REG_MSR_FE1 |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
126 #define MSR_BE CYGARC_REG_MSR_BE |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
127 #define MSR_SE CYGARC_REG_MSR_SE |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
128 #define MSR_FE0 CYGARC_REG_MSR_FE0 |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
129 #define MSR_ME CYGARC_REG_MSR_ME |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
130 #define MSR_FP CYGARC_REG_MSR_FP |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
131 #define MSR_PR CYGARC_REG_MSR_PR |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
132 #define MSR_EE CYGARC_REG_MSR_EE |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
133 #define MSR_ILE CYGARC_REG_MSR_ILE |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
70
diff
changeset
|
134 #define MSR_POW CYGARC_REG_MSR_POW |
| 2 | 135 #endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS |
| 0 | 136 |
| 2 | 137 //-------------------------------------------------------------------------- |
| 138 // Time Base Registers | |
|
20
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
139 // READ and WRITE are different addresses! |
|
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
140 #define CYGARC_REG_TBL_W 284 |
|
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
141 #define CYGARC_REG_TBU_W 285 |
|
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
142 #define CYGARC_REG_TBL_R 268 |
|
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
143 #define CYGARC_REG_TBU_R 269 |
|
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
144 |
| 2 | 145 #ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS |
|
20
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
146 #define TBL_W CYGARC_REG_TBL_W |
|
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
147 #define TBU_W CYGARC_REG_TBU_W |
|
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
148 #define TBL_R CYGARC_REG_TBL_R |
|
5f5102441818
Merge from eCos master repository on 1999-07-02-23:17:07-BST
jlarmour
parents:
2
diff
changeset
|
149 #define TBU_R CYGARC_REG_TBU_R |
| 2 | 150 #endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS |
| 151 | |
| 152 //----------------------------------------------------------------------------- | |
| 0 | 153 #endif // ifdef CYGONCE_HAL_PPC_REGS_H |
|
70
c5536bad4c24
Merge from eCos master repository on 2000-02-11-15:46:40-GMT
jlarmour
parents:
68
diff
changeset
|
154 // End of ppc_regs.h |
