~ubuntu-branches/ubuntu/maverick/u-boot-omap3/maverick

« back to all changes in this revision

Viewing changes to include/asm-ppc/ppc4xx-ebc.h

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2010-03-22 15:06:23 UTC
  • Revision ID: james.westby@ubuntu.com-20100322150623-i21g8rgiyl5dohag
Tags: upstream-2010.3git20100315
ImportĀ upstreamĀ versionĀ 2010.3git20100315

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * (C) Copyright 2008
 
3
 * Stefan Roese, DENX Software Engineering, sr@denx.de.
 
4
 *
 
5
 * See file CREDITS for list of people who contributed to this
 
6
 * project.
 
7
 *
 
8
 * This program is free software; you can redistribute it and/or
 
9
 * modify it under the terms of the GNU General Public License as
 
10
 * published by the Free Software Foundation; either version 2 of
 
11
 * the License, or (at your option) any later version.
 
12
 *
 
13
 * This program is distributed in the hope that it will be useful,
 
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
 * GNU General Public License for more details.
 
17
 *
 
18
 * You should have received a copy of the GNU General Public License
 
19
 * along with this program; if not, write to the Free Software
 
20
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 
21
 * MA 02111-1307 USA
 
22
 */
 
23
 
 
24
#ifndef _PPC4xx_EBC_H_
 
25
#define _PPC4xx_EBC_H_
 
26
 
 
27
/*
 
28
 * Currently there are two register layout versions for the IBM EBC core
 
29
 * used on 4xx PPC's. The following grouping lists the first layout.
 
30
 * Within this group there is a slight variation concerning the bit field
 
31
 * position of the EMPL and EMPH fields:
 
32
 */
 
33
#if defined(CONFIG_405CR) || defined(CONFIG_405GP) || \
 
34
    defined(CONFIG_405EP) || \
 
35
    defined(CONFIG_440EP) || defined(CONFIG_440GR) || \
 
36
    defined(CONFIG_440EPX) || defined(CONFIG_440GRX)
 
37
#define CONFIG_EBC_PPC4xx_IBM_VER1
 
38
#if defined(CONFIG_405CR) || defined(CONFIG_405GP) || \
 
39
    defined(CONFIG_405EP)
 
40
#define EBC_CFG_EMPH_POS        8
 
41
#define EBC_CFG_EMPL_POS        6
 
42
#else
 
43
#define EBC_CFG_EMPH_POS        6
 
44
#define EBC_CFG_EMPL_POS        8
 
45
#endif
 
46
#endif
 
47
 
 
48
/*
 
49
 * Define the max number of EBC banks (chip selects)
 
50
 */
 
51
#if defined(CONFIG_405CR) || defined(CONFIG_405GP) || \
 
52
    defined(CONFIG_405EZ) || \
 
53
    defined(CONFIG_440GP) || defined(CONFIG_440GX)
 
54
#define EBC_NUM_BANKS   8
 
55
#endif
 
56
 
 
57
#if defined(CONFIG_405EP)
 
58
#define EBC_NUM_BANKS   5
 
59
#endif
 
60
 
 
61
#if defined(CONFIG_405EX) || \
 
62
    defined(CONFIG_460SX)
 
63
#define EBC_NUM_BANKS   4
 
64
#endif
 
65
 
 
66
#if defined(CONFIG_440EP) || defined(CONFIG_440GR) || \
 
67
    defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \
 
68
    defined(CONFIG_460EX) || defined(CONFIG_460GT)
 
69
#define EBC_NUM_BANKS   6
 
70
#endif
 
71
 
 
72
#if defined(CONFIG_440SP) || defined(CONFIG_440SPE)
 
73
#define EBC_NUM_BANKS   3
 
74
#endif
 
75
 
 
76
/* Bank Configuration Register */
 
77
#define EBC_BXCR(n)             (n)
 
78
#define EBC_BXCR_BANK_SIZE(n)   (0x100000 << (((n) & EBC_BXCR_BS_MASK) >> 17))
 
79
 
 
80
#define EBC_BXCR_BAS_MASK       PPC_REG_VAL(11, 0xFFF)
 
81
#define EBC_BXCR_BAS_ENCODE(n)  (((static_cast(u32, n)) & EBC_BXCR_BAS_MASK))
 
82
#define EBC_BXCR_BS_MASK        PPC_REG_VAL(14, 0x7)
 
83
#define EBC_BXCR_BS_1MB         PPC_REG_VAL(14, 0x0)
 
84
#define EBC_BXCR_BS_2MB         PPC_REG_VAL(14, 0x1)
 
85
#define EBC_BXCR_BS_4MB         PPC_REG_VAL(14, 0x2)
 
86
#define EBC_BXCR_BS_8MB         PPC_REG_VAL(14, 0x3)
 
87
#define EBC_BXCR_BS_16MB        PPC_REG_VAL(14, 0x4)
 
88
#define EBC_BXCR_BS_32MB        PPC_REG_VAL(14, 0x5)
 
89
#define EBC_BXCR_BS_64MB        PPC_REG_VAL(14, 0x6)
 
90
#define EBC_BXCR_BS_128MB       PPC_REG_VAL(14, 0x7)
 
91
#define EBC_BXCR_BU_MASK        PPC_REG_VAL(16, 0x3)
 
92
#define EBC_BXCR_BU_NONE        PPC_REG_VAL(16, 0x0)
 
93
#define EBC_BXCR_BU_R           PPC_REG_VAL(16, 0x1)
 
94
#define EBC_BXCR_BU_W           PPC_REG_VAL(16, 0x2)
 
95
#define EBC_BXCR_BU_RW          PPC_REG_VAL(16, 0x3)
 
96
#define EBC_BXCR_BW_MASK        PPC_REG_VAL(18, 0x3)
 
97
#define EBC_BXCR_BW_8BIT        PPC_REG_VAL(18, 0x0)
 
98
#define EBC_BXCR_BW_16BIT       PPC_REG_VAL(18, 0x1)
 
99
#if defined(CONFIG_EBC_PPC4xx_IBM_VER1)
 
100
#define EBC_BXCR_BW_32BIT       PPC_REG_VAL(18, 0x2)
 
101
#else
 
102
#define EBC_BXCR_BW_32BIT       PPC_REG_VAL(18, 0x3)
 
103
#endif
 
104
 
 
105
/* Bank Access Parameter Register */
 
106
#define EBC_BXAP_BME_ENABLED    PPC_REG_VAL(0, 0x1)
 
107
#define EBC_BXAP_BME_DISABLED   PPC_REG_VAL(0, 0x0)
 
108
#define EBC_BXAP_TWT_ENCODE(n)  PPC_REG_VAL(8, (static_cast(u32, n)) & 0xFF)
 
109
#define EBC_BXAP_FWT_ENCODE(n)  PPC_REG_VAL(5, (static_cast(u32, n)) & 0x1F)
 
110
#define EBC_BXAP_BWT_ENCODE(n)  PPC_REG_VAL(8, (static_cast(u32, n)) & 0x7)
 
111
#define EBC_BXAP_BCE_DISABLE    PPC_REG_VAL(9, 0x0)
 
112
#define EBC_BXAP_BCE_ENABLE     PPC_REG_VAL(9, 0x1)
 
113
#define EBC_BXAP_BCT_MASK       PPC_REG_VAL(11, 0x3)
 
114
#define EBC_BXAP_BCT_2TRANS     PPC_REG_VAL(11, 0x0)
 
115
#define EBC_BXAP_BCT_4TRANS     PPC_REG_VAL(11, 0x1)
 
116
#define EBC_BXAP_BCT_8TRANS     PPC_REG_VAL(11, 0x2)
 
117
#define EBC_BXAP_BCT_16TRANS    PPC_REG_VAL(11, 0x3)
 
118
#define EBC_BXAP_CSN_ENCODE(n)  PPC_REG_VAL(13, (static_cast(u32, n)) & 0x3)
 
119
#define EBC_BXAP_OEN_ENCODE(n)  PPC_REG_VAL(15, (static_cast(u32, n)) & 0x3)
 
120
#define EBC_BXAP_WBN_ENCODE(n)  PPC_REG_VAL(17, (static_cast(u32, n)) & 0x3)
 
121
#define EBC_BXAP_WBF_ENCODE(n)  PPC_REG_VAL(19, (static_cast(u32, n)) & 0x3)
 
122
#define EBC_BXAP_TH_ENCODE(n)   PPC_REG_VAL(22, (static_cast(u32, n)) & 0x7)
 
123
#define EBC_BXAP_RE_ENABLED     PPC_REG_VAL(23, 0x1)
 
124
#define EBC_BXAP_RE_DISABLED    PPC_REG_VAL(23, 0x0)
 
125
#define EBC_BXAP_SOR_DELAYED    PPC_REG_VAL(24, 0x0)
 
126
#define EBC_BXAP_SOR_NONDELAYED PPC_REG_VAL(24, 0x1)
 
127
#define EBC_BXAP_BEM_WRITEONLY  PPC_REG_VAL(25, 0x0)
 
128
#define EBC_BXAP_BEM_RW         PPC_REG_VAL(25, 0x1)
 
129
#define EBC_BXAP_PEN_DISABLED   PPC_REG_VAL(26, 0x0)
 
130
#define EBC_BXAP_PEN_ENABLED    PPC_REG_VAL(26, 0x1)
 
131
 
 
132
/* Common fields in EBC0_CFG register */
 
133
#define EBC_CFG_PTD_MASK        PPC_REG_VAL(1, 0x1)
 
134
#define EBC_CFG_PTD_ENABLE      PPC_REG_VAL(1, 0x0)
 
135
#define EBC_CFG_PTD_DISABLE     PPC_REG_VAL(1, 0x1)
 
136
#define EBC_CFG_RTC_MASK        PPC_REG_VAL(4, 0x7)
 
137
#define EBC_CFG_RTC_16PERCLK    PPC_REG_VAL(4, 0x0)
 
138
#define EBC_CFG_RTC_32PERCLK    PPC_REG_VAL(4, 0x1)
 
139
#define EBC_CFG_RTC_64PERCLK    PPC_REG_VAL(4, 0x2)
 
140
#define EBC_CFG_RTC_128PERCLK   PPC_REG_VAL(4, 0x3)
 
141
#define EBC_CFG_RTC_256PERCLK   PPC_REG_VAL(4, 0x4)
 
142
#define EBC_CFG_RTC_512PERCLK   PPC_REG_VAL(4, 0x5)
 
143
#define EBC_CFG_RTC_1024PERCLK  PPC_REG_VAL(4, 0x6)
 
144
#define EBC_CFG_RTC_2048PERCLK  PPC_REG_VAL(4, 0x7)
 
145
#define EBC_CFG_PME_MASK        PPC_REG_VAL(14, 0x1)
 
146
#define EBC_CFG_PME_DISABLE     PPC_REG_VAL(14, 0x0)
 
147
#define EBC_CFG_PME_ENABLE      PPC_REG_VAL(14, 0x1)
 
148
#define EBC_CFG_PMT_MASK        PPC_REG_VAL(19, 0x1F)
 
149
#define EBC_CFG_PMT_ENCODE(n)   PPC_REG_VAL(19, (static_cast(u32, n)) & 0x1F)
 
150
 
 
151
/* Now the two versions of the other bits */
 
152
#if defined(CONFIG_EBC_PPC4xx_IBM_VER1)
 
153
#define EBC_CFG_EBTC_MASK       PPC_REG_VAL(0, 0x1)
 
154
#define EBC_CFG_EBTC_HI         PPC_REG_VAL(0, 0x0)
 
155
#define EBC_CFG_EBTC_DRIVEN     PPC_REG_VAL(0, 0x1)
 
156
#define EBC_CFG_EMPH_MASK       PPC_REG_VAL(EBC_CFG_EMPH_POS, 0x3)
 
157
#define EBC_CFG_EMPH_ENCODE(n)  PPC_REG_VAL(EBC_CFG_EMPH_POS, \
 
158
                                                (static_cast(u32, n)) & 0x3)
 
159
#define EBC_CFG_EMPL_MASK       PPC_REG_VAL(EBC_CFG_EMPL_POS, 0x3)
 
160
#define EBC_CFG_EMPL_ENCODE(n)  PPC_REG_VAL(EBC_CFG_EMPH_POS, \
 
161
                                                (static_cast(u32, n)) & 0x3)
 
162
#define EBC_CFG_CSTC_MASK       PPC_REG_VAL(9, 0x1)
 
163
#define EBC_CFG_CSTC_HI         PPC_REG_VAL(9, 0x0)
 
164
#define EBC_CFG_CSTC_DRIVEN     PPC_REG_VAL(9, 0x1)
 
165
#define EBC_CFG_BPR_MASK        PPC_REG_VAL(11, 0x3)
 
166
#define EBC_CFG_BPR_1DW         PPC_REG_VAL(11, 0x0)
 
167
#define EBC_CFG_BPR_2DW         PPC_REG_VAL(11, 0x1)
 
168
#define EBC_CFG_BPR_4DW         PPC_REG_VAL(11, 0x2)
 
169
#define EBC_CFG_EMS_MASK        PPC_REG_VAL(13, 0x3)
 
170
#define EBC_CFG_EMS_8BIT        PPC_REG_VAL(13, 0x0)
 
171
#define EBC_CFG_EMS_16BIT       PPC_REG_VAL(13, 0x1)
 
172
#define EBC_CFG_EMS_32BIT       PPC_REG_VAL(13, 0x2)
 
173
#else
 
174
#define EBC_CFG_LE_MASK         PPC_REG_VAL(0, 0x1)
 
175
#define EBC_CFG_LE_UNLOCK       PPC_REG_VAL(0, 0x0)
 
176
#define EBC_CFG_LE_LOCK         PPC_REG_VAL(0, 0x1)
 
177
#define EBC_CFG_ATC_MASK        PPC_REG_VAL(5, 0x1)
 
178
#define EBC_CFG_ATC_HI          PPC_REG_VAL(5, 0x0)
 
179
#define EBC_CFG_ATC_PREVIOUS    PPC_REG_VAL(5, 0x1)
 
180
#define EBC_CFG_DTC_MASK        PPC_REG_VAL(6, 0x1)
 
181
#define EBC_CFG_DTC_HI          PPC_REG_VAL(6, 0x0)
 
182
#define EBC_CFG_DTC_PREVIOUS    PPC_REG_VAL(6, 0x1)
 
183
#define EBC_CFG_CTC_MASK        PPC_REG_VAL(7, 0x1)
 
184
#define EBC_CFG_CTC_HI          PPC_REG_VAL(7, 0x0)
 
185
#define EBC_CFG_CTC_PREVIOUS    PPC_REG_VAL(7, 0x1)
 
186
#define EBC_CFG_OEO_MASK        PPC_REG_VAL(8, 0x1)
 
187
#define EBC_CFG_OEO_HI          PPC_REG_VAL(8, 0x0)
 
188
#define EBC_CFG_OEO_PREVIOUS    PPC_REG_VAL(8, 0x1)
 
189
#define EBC_CFG_EMC_MASK        PPC_REG_VAL(9, 0x1)
 
190
#define EBC_CFG_EMC_NONDEFAULT  PPC_REG_VAL(9, 0x0)
 
191
#define EBC_CFG_EMC_DEFAULT     PPC_REG_VAL(9, 0x1)
 
192
#define EBC_CFG_PR_MASK         PPC_REG_VAL(21, 0x3)
 
193
#define EBC_CFG_PR_16           PPC_REG_VAL(21, 0x0)
 
194
#define EBC_CFG_PR_32           PPC_REG_VAL(21, 0x1)
 
195
#define EBC_CFG_PR_64           PPC_REG_VAL(21, 0x2)
 
196
#define EBC_CFG_PR_128          PPC_REG_VAL(21, 0x3)
 
197
#endif
 
198
 
 
199
#endif /* _PPC4xx_EBC_H_ */