1/*
2 * Board definitions for the Radstone PPC7D boards.
3 *
4 * Author: James Chapman <jchapman@katalix.com>
5 *
6 * Based on code done by Rabeeh Khoury - rabeeh@galileo.co.il
7 * Based on code done by - Mark A. Greer <mgreer@mvista.com>
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 */
14
15/*
16 * The MV64360 has 2 PCI buses each with 1 window from the CPU bus to
17 * PCI I/O space and 4 windows from the CPU bus to PCI MEM space.
18 * We'll only use one PCI MEM window on each PCI bus.
19 *
20 * This is the CPU physical memory map (windows must be at least 1MB
21 * and start on a boundary that is a multiple of the window size):
22 *
23 *    0xff800000-0xffffffff      - Boot window
24 *    0xff000000-0xff000fff	 - AFIX registers (DevCS2)
25 *    0xfef00000-0xfef0ffff      - Internal MV64x60 registers
26 *    0xfef40000-0xfef7ffff      - Internal SRAM
27 *    0xfef00000-0xfef0ffff      - MV64360 Registers
28 *    0x70000000-0x7fffffff      - soldered flash (DevCS3)
29 *    0xe8000000-0xe9ffffff      - PCI I/O
30 *    0x80000000-0xbfffffff      - PCI MEM
31 */
32
33#ifndef __PPC_PLATFORMS_PPC7D_H
34#define __PPC_PLATFORMS_PPC7D_H
35
36#include <asm/ppcboot.h>
37
38/*****************************************************************************
39 * CPU Physical Memory Map setup.
40 *****************************************************************************/
41
42#define PPC7D_BOOT_WINDOW_BASE			0xff800000
43#define PPC7D_AFIX_REG_BASE			0xff000000
44#define PPC7D_INTERNAL_SRAM_BASE		0xfef40000
45#define PPC7D_FLASH_BASE			0x70000000
46
47#define PPC7D_BOOT_WINDOW_SIZE_ACTUAL		0x00800000 /* 8MB */
48#define PPC7D_FLASH_SIZE_ACTUAL			0x10000000 /* 256MB */
49
50#define PPC7D_BOOT_WINDOW_SIZE		max(MV64360_WINDOW_SIZE_MIN,	\
51		PPC7D_BOOT_WINDOW_SIZE_ACTUAL)
52#define PPC7D_FLASH_SIZE		max(MV64360_WINDOW_SIZE_MIN,	\
53		PPC7D_FLASH_SIZE_ACTUAL)
54#define PPC7D_AFIX_REG_SIZE		max(MV64360_WINDOW_SIZE_MIN, 0xff)
55
56
57#define PPC7D_PCI0_MEM0_START_PROC_ADDR        0x80000000UL
58#define PPC7D_PCI0_MEM0_START_PCI_HI_ADDR      0x00000000UL
59#define PPC7D_PCI0_MEM0_START_PCI_LO_ADDR      0x80000000UL
60#define PPC7D_PCI0_MEM0_SIZE                   0x20000000UL
61#define PPC7D_PCI0_MEM1_START_PROC_ADDR        0xe8010000UL
62#define PPC7D_PCI0_MEM1_START_PCI_HI_ADDR      0x00000000UL
63#define PPC7D_PCI0_MEM1_START_PCI_LO_ADDR      0x00000000UL
64#define PPC7D_PCI0_MEM1_SIZE                   0x000f0000UL
65#define PPC7D_PCI0_IO_START_PROC_ADDR          0xe8000000UL
66#define PPC7D_PCI0_IO_START_PCI_ADDR           0x00000000UL
67#define PPC7D_PCI0_IO_SIZE                     0x00010000UL
68
69#define PPC7D_PCI1_MEM0_START_PROC_ADDR        0xa0000000UL
70#define PPC7D_PCI1_MEM0_START_PCI_HI_ADDR      0x00000000UL
71#define PPC7D_PCI1_MEM0_START_PCI_LO_ADDR      0xa0000000UL
72#define PPC7D_PCI1_MEM0_SIZE                   0x20000000UL
73#define PPC7D_PCI1_MEM1_START_PROC_ADDR        0xe9800000UL
74#define PPC7D_PCI1_MEM1_START_PCI_HI_ADDR      0x00000000UL
75#define PPC7D_PCI1_MEM1_START_PCI_LO_ADDR      0x00000000UL
76#define PPC7D_PCI1_MEM1_SIZE                   0x00800000UL
77#define PPC7D_PCI1_IO_START_PROC_ADDR          0xe9000000UL
78#define PPC7D_PCI1_IO_START_PCI_ADDR           0x00000000UL
79#define PPC7D_PCI1_IO_SIZE                     0x00010000UL
80
81#define	PPC7D_DEFAULT_BAUD			9600
82#define	PPC7D_MPSC_CLK_SRC			8	  /* TCLK */
83#define	PPC7D_MPSC_CLK_FREQ			133333333 /* 133.3333... MHz */
84
85#define	PPC7D_ETH0_PHY_ADDR			8
86#define	PPC7D_ETH1_PHY_ADDR			9
87#define	PPC7D_ETH2_PHY_ADDR			0
88
89#define PPC7D_ETH_TX_QUEUE_SIZE			400
90#define PPC7D_ETH_RX_QUEUE_SIZE			400
91
92#define	PPC7D_ETH_PORT_CONFIG_VALUE			\
93	MV64340_ETH_UNICAST_NORMAL_MODE			|	\
94	MV64340_ETH_DEFAULT_RX_QUEUE_0			|	\
95	MV64340_ETH_DEFAULT_RX_ARP_QUEUE_0		|	\
96	MV64340_ETH_RECEIVE_BC_IF_NOT_IP_OR_ARP		|	\
97	MV64340_ETH_RECEIVE_BC_IF_IP			|	\
98	MV64340_ETH_RECEIVE_BC_IF_ARP			|	\
99	MV64340_ETH_CAPTURE_TCP_FRAMES_DIS		|	\
100	MV64340_ETH_CAPTURE_UDP_FRAMES_DIS		|	\
101	MV64340_ETH_DEFAULT_RX_TCP_QUEUE_0		|	\
102	MV64340_ETH_DEFAULT_RX_UDP_QUEUE_0		|	\
103	MV64340_ETH_DEFAULT_RX_BPDU_QUEUE_0
104
105#define	PPC7D_ETH_PORT_CONFIG_EXTEND_VALUE		\
106	MV64340_ETH_SPAN_BPDU_PACKETS_AS_NORMAL		|	\
107	MV64340_ETH_PARTITION_DISABLE
108
109#define	GT_ETH_IPG_INT_RX(value)			\
110	((value & 0x3fff) << 8)
111
112#define	PPC7D_ETH_PORT_SDMA_CONFIG_VALUE		\
113	MV64340_ETH_RX_BURST_SIZE_4_64BIT		|	\
114	GT_ETH_IPG_INT_RX(0)			|	\
115	MV64340_ETH_TX_BURST_SIZE_4_64BIT
116
117#define	PPC7D_ETH_PORT_SERIAL_CONTROL_VALUE		\
118	MV64340_ETH_ENABLE_AUTO_NEG_FOR_DUPLX		|	\
119	MV64340_ETH_DISABLE_AUTO_NEG_FOR_FLOW_CTRL	|	\
120	MV64340_ETH_ADV_SYMMETRIC_FLOW_CTRL		|	\
121	MV64340_ETH_FORCE_FC_MODE_NO_PAUSE_DIS_TX	|	\
122	MV64340_ETH_FORCE_BP_MODE_NO_JAM		|	\
123	(1 << 9)					|	\
124	MV64340_ETH_DO_NOT_FORCE_LINK_FAIL		|	\
125	MV64340_ETH_RETRANSMIT_16_ATTEMPTS		|	\
126	MV64340_ETH_ENABLE_AUTO_NEG_SPEED_GMII		|	\
127	MV64340_ETH_DTE_ADV_0				|	\
128	MV64340_ETH_DISABLE_AUTO_NEG_BYPASS		|	\
129	MV64340_ETH_AUTO_NEG_NO_CHANGE			|	\
130	MV64340_ETH_MAX_RX_PACKET_9700BYTE		|	\
131	MV64340_ETH_CLR_EXT_LOOPBACK			|	\
132	MV64340_ETH_SET_FULL_DUPLEX_MODE		|	\
133	MV64340_ETH_ENABLE_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX
134
135/*****************************************************************************
136 * Serial defines.
137 *****************************************************************************/
138
139#define PPC7D_SERIAL_0		0xe80003f8
140#define PPC7D_SERIAL_1		0xe80002f8
141
142#define RS_TABLE_SIZE  2
143
144/* Rate for the 1.8432 Mhz clock for the onboard serial chip */
145#define UART_CLK			1843200
146#define BASE_BAUD			( UART_CLK / 16 )
147
148#ifdef CONFIG_SERIAL_DETECT_IRQ
149#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_AUTO_IRQ)
150#else
151#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF)
152#endif
153
154#define STD_SERIAL_PORT_DFNS \
155        { 0, BASE_BAUD, PPC7D_SERIAL_0, 4, STD_COM_FLAGS, /* ttyS0 */ \
156		iomem_base: (u8 *)PPC7D_SERIAL_0,			  \
157		io_type: SERIAL_IO_MEM, },				  \
158        { 0, BASE_BAUD, PPC7D_SERIAL_1, 3, STD_COM_FLAGS, /* ttyS1 */ \
159		iomem_base: (u8 *)PPC7D_SERIAL_1,			  \
160		io_type: SERIAL_IO_MEM },
161
162#define SERIAL_PORT_DFNS \
163        STD_SERIAL_PORT_DFNS
164
165/*****************************************************************************
166 * CPLD defines.
167 *
168 * Register map:-
169 *
170 * 0000 to 000F 	South Bridge DMA 1 Control
171 * 0020 and 0021 	South Bridge Interrupt 1 Control
172 * 0040 to 0043 	South Bridge Counter Control
173 * 0060 		Keyboard
174 * 0061 		South Bridge NMI Status and Control
175 * 0064 		Keyboard
176 * 0071 and 0072 	RTC R/W
177 * 0078 to 007B 	South Bridge BIOS Timer
178 * 0080 to 0090 	South Bridge DMA Pages
179 * 00A0 and 00A1 	South Bridge Interrupt 2 Control
180 * 00C0 to 00DE 	South Bridge DMA 2 Control
181 * 02E8 to 02EF 	COM6 R/W
182 * 02F8 to 02FF 	South Bridge COM2 R/W
183 * 03E8 to 03EF 	COM5 R/W
184 * 03F8 to 03FF 	South Bridge COM1 R/W
185 * 040A 		South Bridge DMA Scatter/Gather RO
186 * 040B 		DMA 1 Extended Mode WO
187 * 0410 to 043F 	South Bridge DMA Scatter/Gather
188 * 0481 to 048B 	South Bridge DMA High Pages
189 * 04D0 and 04D1 	South Bridge Edge/Level Control
190 * 04D6 		DMA 2 Extended Mode WO
191 * 0804 		Memory Configuration RO
192 * 0806 		Memory Configuration Extend RO
193 * 0808 		SCSI Activity LED R/W
194 * 080C 		Equipment Present 1 RO
195 * 080E 		Equipment Present 2 RO
196 * 0810 		Equipment Present 3 RO
197 * 0812 		Equipment Present 4 RO
198 * 0818 		Key Lock RO
199 * 0820 		LEDS R/W
200 * 0824 		COMs R/W
201 * 0826 		RTS R/W
202 * 0828 		Reset R/W
203 * 082C 		Watchdog Trig R/W
204 * 082E 		Interrupt R/W
205 * 0830 		Interrupt Status RO
206 * 0832 		PCI configuration RO
207 * 0854 		Board Revision RO
208 * 0858 		Extended ID RO
209 * 0864 		ID Link RO
210 * 0866 		Motherboard Type RO
211 * 0868 		FLASH Write control RO
212 * 086A 		Software FLASH write protect R/W
213 * 086E 		FLASH Control R/W
214 *****************************************************************************/
215
216#define PPC7D_CPLD_MEM_CONFIG			0x0804
217#define PPC7D_CPLD_MEM_CONFIG_EXTEND		0x0806
218#define PPC7D_CPLD_SCSI_ACTIVITY_LED		0x0808
219#define PPC7D_CPLD_EQUIPMENT_PRESENT_1		0x080C
220#define PPC7D_CPLD_EQUIPMENT_PRESENT_2		0x080E
221#define PPC7D_CPLD_EQUIPMENT_PRESENT_3		0x0810
222#define PPC7D_CPLD_EQUIPMENT_PRESENT_4		0x0812
223#define PPC7D_CPLD_KEY_LOCK			0x0818
224#define PPC7D_CPLD_LEDS				0x0820
225#define PPC7D_CPLD_COMS				0x0824
226#define PPC7D_CPLD_RTS				0x0826
227#define PPC7D_CPLD_RESET			0x0828
228#define PPC7D_CPLD_WATCHDOG_TRIG		0x082C
229#define PPC7D_CPLD_INTR				0x082E
230#define PPC7D_CPLD_INTR_STATUS			0x0830
231#define PPC7D_CPLD_PCI_CONFIG			0x0832
232#define PPC7D_CPLD_BOARD_REVISION		0x0854
233#define PPC7D_CPLD_EXTENDED_ID			0x0858
234#define PPC7D_CPLD_ID_LINK			0x0864
235#define PPC7D_CPLD_MOTHERBOARD_TYPE		0x0866
236#define PPC7D_CPLD_FLASH_WRITE_CNTL		0x0868
237#define PPC7D_CPLD_SW_FLASH_WRITE_PROTECT	0x086A
238#define PPC7D_CPLD_FLASH_CNTL			0x086E
239
240/* MEMORY_CONFIG_EXTEND */
241#define PPC7D_CPLD_SDRAM_BANK_NUM_MASK		0x02
242#define PPC7D_CPLD_SDRAM_BANK_SIZE_MASK		0xc0
243#define PPC7D_CPLD_SDRAM_BANK_SIZE_128M		0
244#define PPC7D_CPLD_SDRAM_BANK_SIZE_256M		0x40
245#define PPC7D_CPLD_SDRAM_BANK_SIZE_512M		0x80
246#define PPC7D_CPLD_SDRAM_BANK_SIZE_1G		0xc0
247#define PPC7D_CPLD_FLASH_DEV_SIZE_MASK		0x03
248#define PPC7D_CPLD_FLASH_BANK_NUM_MASK		0x0c
249#define PPC7D_CPLD_FLASH_DEV_SIZE_64M		0
250#define PPC7D_CPLD_FLASH_DEV_SIZE_32M		1
251#define PPC7D_CPLD_FLASH_DEV_SIZE_16M		3
252#define PPC7D_CPLD_FLASH_BANK_NUM_4		0x00
253#define PPC7D_CPLD_FLASH_BANK_NUM_3		0x04
254#define PPC7D_CPLD_FLASH_BANK_NUM_2		0x08
255#define PPC7D_CPLD_FLASH_BANK_NUM_1		0x0c
256
257/* SCSI_LED */
258#define PPC7D_CPLD_SCSI_ACTIVITY_LED_OFF	0
259#define PPC7D_CPLD_SCSI_ACTIVITY_LED_ON		1
260
261/* EQUIPMENT_PRESENT_1 */
262#define PPC7D_CPLD_EQPT_PRES_1_FITTED		0
263#define PPC7D_CPLD_EQPT_PRES_1_PMC2_MASK	(0x80 >> 2)
264#define PPC7D_CPLD_EQPT_PRES_1_PMC1_MASK	(0x80 >> 3)
265#define PPC7D_CPLD_EQPT_PRES_1_AFIX_MASK	(0x80 >> 4)
266
267/* EQUIPMENT_PRESENT_2 */
268#define PPC7D_CPLD_EQPT_PRES_2_FITTED		!0
269#define PPC7D_CPLD_EQPT_PRES_2_UNIVERSE_MASK	(0x80 >> 0)
270#define PPC7D_CPLD_EQPT_PRES_2_COM36_MASK	(0x80 >> 2)
271#define PPC7D_CPLD_EQPT_PRES_2_GIGE_MASK	(0x80 >> 3)
272#define PPC7D_CPLD_EQPT_PRES_2_DUALGIGE_MASK	(0x80 >> 4)
273
274/* EQUIPMENT_PRESENT_3 */
275#define PPC7D_CPLD_EQPT_PRES_3_PMC2_V_MASK	(0x80 >> 3)
276#define PPC7D_CPLD_EQPT_PRES_3_PMC2_5V		(0 >> 3)
277#define PPC7D_CPLD_EQPT_PRES_3_PMC2_3V		(0x80 >> 3)
278#define PPC7D_CPLD_EQPT_PRES_3_PMC1_V_MASK	(0x80 >> 4)
279#define PPC7D_CPLD_EQPT_PRES_3_PMC1_5V		(0 >> 4)
280#define PPC7D_CPLD_EQPT_PRES_3_PMC1_3V		(0x80 >> 4)
281#define PPC7D_CPLD_EQPT_PRES_3_PMC_POWER_MASK	(0x80 >> 5)
282#define PPC7D_CPLD_EQPT_PRES_3_PMC_POWER_INTER	(0 >> 5)
283#define PPC7D_CPLD_EQPT_PRES_3_PMC_POWER_VME	(0x80 >> 5)
284
285/* EQUIPMENT_PRESENT_4 */
286#define PPC7D_CPLD_EQPT_PRES_4_LPT_MASK		(0x80 >> 2)
287#define PPC7D_CPLD_EQPT_PRES_4_LPT_FITTED	(0x80 >> 2)
288#define PPC7D_CPLD_EQPT_PRES_4_PS2_USB2_MASK	(0xc0 >> 6)
289#define PPC7D_CPLD_EQPT_PRES_4_PS2_FITTED	(0x40 >> 6)
290#define PPC7D_CPLD_EQPT_PRES_4_USB2_FITTED	(0x80 >> 6)
291
292/* CPLD_LEDS */
293#define PPC7D_CPLD_LEDS_ON			(!0)
294#define PPC7D_CPLD_LEDS_OFF			(0)
295#define PPC7D_CPLD_LEDS_NVRAM_PAGE_MASK		(0xc0 >> 2)
296#define PPC7D_CPLD_LEDS_DS201_MASK		(0x80 >> 4)
297#define PPC7D_CPLD_LEDS_DS219_MASK		(0x80 >> 5)
298#define PPC7D_CPLD_LEDS_DS220_MASK		(0x80 >> 6)
299#define PPC7D_CPLD_LEDS_DS221_MASK		(0x80 >> 7)
300
301/* CPLD_COMS */
302#define PPC7D_CPLD_COMS_COM3_TCLKEN		(0x80 >> 0)
303#define PPC7D_CPLD_COMS_COM3_RTCLKEN		(0x80 >> 1)
304#define PPC7D_CPLD_COMS_COM3_MODE_MASK		(0x80 >> 2)
305#define PPC7D_CPLD_COMS_COM3_MODE_RS232		(0)
306#define PPC7D_CPLD_COMS_COM3_MODE_RS422		(0x80 >> 2)
307#define PPC7D_CPLD_COMS_COM3_TXEN		(0x80 >> 3)
308#define PPC7D_CPLD_COMS_COM4_TCLKEN		(0x80 >> 4)
309#define PPC7D_CPLD_COMS_COM4_RTCLKEN		(0x80 >> 5)
310#define PPC7D_CPLD_COMS_COM4_MODE_MASK		(0x80 >> 6)
311#define PPC7D_CPLD_COMS_COM4_MODE_RS232		(0)
312#define PPC7D_CPLD_COMS_COM4_MODE_RS422		(0x80 >> 6)
313#define PPC7D_CPLD_COMS_COM4_TXEN		(0x80 >> 7)
314
315/* CPLD_RTS */
316#define PPC7D_CPLD_RTS_COM36_LOOPBACK		(0x80 >> 0)
317#define PPC7D_CPLD_RTS_COM4_SCLK		(0x80 >> 1)
318#define PPC7D_CPLD_RTS_COM3_TXFUNC_MASK		(0xc0 >> 2)
319#define PPC7D_CPLD_RTS_COM3_TXFUNC_DISABLED	(0 >> 2)
320#define PPC7D_CPLD_RTS_COM3_TXFUNC_ENABLED	(0x80 >> 2)
321#define PPC7D_CPLD_RTS_COM3_TXFUNC_ENABLED_RTG3	(0xc0 >> 2)
322#define PPC7D_CPLD_RTS_COM3_TXFUNC_ENABLED_RTG3S (0xc0 >> 2)
323#define PPC7D_CPLD_RTS_COM56_MODE_MASK		(0x80 >> 4)
324#define PPC7D_CPLD_RTS_COM56_MODE_RS232		(0)
325#define PPC7D_CPLD_RTS_COM56_MODE_RS422		(0x80 >> 4)
326#define PPC7D_CPLD_RTS_COM56_ENABLE_MASK	(0x80 >> 5)
327#define PPC7D_CPLD_RTS_COM56_DISABLED		(0)
328#define PPC7D_CPLD_RTS_COM56_ENABLED		(0x80 >> 5)
329#define PPC7D_CPLD_RTS_COM4_TXFUNC_MASK		(0xc0 >> 6)
330#define PPC7D_CPLD_RTS_COM4_TXFUNC_DISABLED	(0 >> 6)
331#define PPC7D_CPLD_RTS_COM4_TXFUNC_ENABLED	(0x80 >> 6)
332#define PPC7D_CPLD_RTS_COM4_TXFUNC_ENABLED_RTG3	(0x40 >> 6)
333#define PPC7D_CPLD_RTS_COM4_TXFUNC_ENABLED_RTG3S (0x40 >> 6)
334
335/* WATCHDOG_TRIG */
336#define PPC7D_CPLD_WDOG_CAUSE_MASK		(0x80 >> 0)
337#define PPC7D_CPLD_WDOG_CAUSE_NORMAL_RESET	(0 >> 0)
338#define PPC7D_CPLD_WDOG_CAUSE_WATCHDOG		(0x80 >> 0)
339#define PPC7D_CPLD_WDOG_ENABLE_MASK		(0x80 >> 6)
340#define PPC7D_CPLD_WDOG_ENABLE_OFF		(0 >> 6)
341#define PPC7D_CPLD_WDOG_ENABLE_ON		(0x80 >> 6)
342#define PPC7D_CPLD_WDOG_RESETSW_MASK		(0x80 >> 7)
343#define PPC7D_CPLD_WDOG_RESETSW_OFF		(0 >> 7)
344#define PPC7D_CPLD_WDOG_RESETSW_ON		(0x80 >> 7)
345
346/* Interrupt mask and status bits */
347#define PPC7D_CPLD_INTR_TEMP_MASK		(0x80 >> 0)
348#define PPC7D_CPLD_INTR_HB8_MASK		(0x80 >> 1)
349#define PPC7D_CPLD_INTR_PHY1_MASK		(0x80 >> 2)
350#define PPC7D_CPLD_INTR_PHY0_MASK		(0x80 >> 3)
351#define PPC7D_CPLD_INTR_ISANMI_MASK		(0x80 >> 5)
352#define PPC7D_CPLD_INTR_CRITTEMP_MASK		(0x80 >> 6)
353
354/* CPLD_INTR */
355#define PPC7D_CPLD_INTR_ENABLE_OFF		(0)
356#define PPC7D_CPLD_INTR_ENABLE_ON		(!0)
357
358/* CPLD_INTR_STATUS */
359#define PPC7D_CPLD_INTR_STATUS_OFF		(0)
360#define PPC7D_CPLD_INTR_STATUS_ON		(!0)
361
362/* CPLD_PCI_CONFIG */
363#define PPC7D_CPLD_PCI_CONFIG_PCI0_MASK		0x70
364#define PPC7D_CPLD_PCI_CONFIG_PCI0_PCI33	0x00
365#define PPC7D_CPLD_PCI_CONFIG_PCI0_PCI66	0x10
366#define PPC7D_CPLD_PCI_CONFIG_PCI0_PCIX33	0x40
367#define PPC7D_CPLD_PCI_CONFIG_PCI0_PCIX66	0x50
368#define PPC7D_CPLD_PCI_CONFIG_PCI0_PCIX100      0x60
369#define PPC7D_CPLD_PCI_CONFIG_PCI0_PCIX133	0x70
370#define PPC7D_CPLD_PCI_CONFIG_PCI1_MASK		0x07
371#define PPC7D_CPLD_PCI_CONFIG_PCI1_PCI33	0x00
372#define PPC7D_CPLD_PCI_CONFIG_PCI1_PCI66	0x01
373#define PPC7D_CPLD_PCI_CONFIG_PCI1_PCIX33	0x04
374#define PPC7D_CPLD_PCI_CONFIG_PCI1_PCIX66	0x05
375#define PPC7D_CPLD_PCI_CONFIG_PCI1_PCIX100	0x06
376#define PPC7D_CPLD_PCI_CONFIG_PCI1_PCIX133	0x07
377
378/* CPLD_BOARD_REVISION */
379#define PPC7D_CPLD_BOARD_REVISION_NUMBER_MASK	0xe0
380#define PPC7D_CPLD_BOARD_REVISION_LETTER_MASK	0x1f
381
382/* CPLD_EXTENDED_ID */
383#define PPC7D_CPLD_EXTENDED_ID_PPC7D		0x18
384
385/* CPLD_ID_LINK */
386#define PPC7D_CPLD_ID_LINK_VME64_GAP_MASK	(0x80 >> 2)
387#define PPC7D_CPLD_ID_LINK_VME64_GA4_MASK	(0x80 >> 3)
388#define PPC7D_CPLD_ID_LINK_E13_MASK		(0x80 >> 4)
389#define PPC7D_CPLD_ID_LINK_E12_MASK		(0x80 >> 5)
390#define PPC7D_CPLD_ID_LINK_E7_MASK		(0x80 >> 6)
391#define PPC7D_CPLD_ID_LINK_E6_MASK		(0x80 >> 7)
392
393/* CPLD_MOTHERBOARD_TYPE */
394#define PPC7D_CPLD_MB_TYPE_ECC_ENABLE_MASK	(0x80 >> 0)
395#define PPC7D_CPLD_MB_TYPE_ECC_ENABLED		(0x80 >> 0)
396#define PPC7D_CPLD_MB_TYPE_ECC_DISABLED		(0 >> 0)
397#define PPC7D_CPLD_MB_TYPE_ECC_FITTED_MASK	(0x80 >> 3)
398#define PPC7D_CPLD_MB_TYPE_PLL_MASK		0x0c
399#define PPC7D_CPLD_MB_TYPE_PLL_133		0x00
400#define PPC7D_CPLD_MB_TYPE_PLL_100		0x08
401#define PPC7D_CPLD_MB_TYPE_PLL_64		0x04
402#define PPC7D_CPLD_MB_TYPE_HW_ID_MASK		0x03
403
404/* CPLD_FLASH_WRITE_CNTL */
405#define PPD7D_CPLD_FLASH_CNTL_WR_LINK_MASK	(0x80 >> 0)
406#define PPD7D_CPLD_FLASH_CNTL_WR_LINK_FITTED	(0x80 >> 0)
407#define PPD7D_CPLD_FLASH_CNTL_BOOT_LINK_MASK	(0x80 >> 2)
408#define PPD7D_CPLD_FLASH_CNTL_BOOT_LINK_FITTED	(0x80 >> 2)
409#define PPD7D_CPLD_FLASH_CNTL_USER_LINK_MASK	(0x80 >> 3)
410#define PPD7D_CPLD_FLASH_CNTL_USER_LINK_FITTED	(0x80 >> 3)
411#define PPD7D_CPLD_FLASH_CNTL_RECO_WR_MASK	(0x80 >> 5)
412#define PPD7D_CPLD_FLASH_CNTL_RECO_WR_ENABLED	(0x80 >> 5)
413#define PPD7D_CPLD_FLASH_CNTL_BOOT_WR_MASK	(0x80 >> 6)
414#define PPD7D_CPLD_FLASH_CNTL_BOOT_WR_ENABLED	(0x80 >> 6)
415#define PPD7D_CPLD_FLASH_CNTL_USER_WR_MASK	(0x80 >> 7)
416#define PPD7D_CPLD_FLASH_CNTL_USER_WR_ENABLED	(0x80 >> 7)
417
418/* CPLD_SW_FLASH_WRITE_PROTECT */
419#define PPC7D_CPLD_SW_FLASH_WRPROT_ENABLED	(!0)
420#define PPC7D_CPLD_SW_FLASH_WRPROT_DISABLED	(0)
421#define PPC7D_CPLD_SW_FLASH_WRPROT_SYSBOOT_MASK	(0x80 >> 6)
422#define PPC7D_CPLD_SW_FLASH_WRPROT_USER_MASK	(0x80 >> 7)
423
424/* CPLD_FLASH_WRITE_CNTL */
425#define PPC7D_CPLD_FLASH_CNTL_NVRAM_PROT_MASK	(0x80 >> 0)
426#define PPC7D_CPLD_FLASH_CNTL_NVRAM_DISABLED	(0 >> 0)
427#define PPC7D_CPLD_FLASH_CNTL_NVRAM_ENABLED	(0x80 >> 0)
428#define PPC7D_CPLD_FLASH_CNTL_ALTBOOT_LINK_MASK	(0x80 >> 1)
429#define PPC7D_CPLD_FLASH_CNTL_VMEBOOT_LINK_MASK	(0x80 >> 2)
430#define PPC7D_CPLD_FLASH_CNTL_RECBOOT_LINK_MASK	(0x80 >> 3)
431
432
433#endif /* __PPC_PLATFORMS_PPC7D_H */
434