mv64x60_defs.h

来自「linux 内核源代码」· C头文件 代码 · 共 977 行 · 第 1/3 页

H
977
字号
/* * include/asm-ppc/mv64x60_defs.h * * Register definitions for the Marvell/Galileo GT64260, MV64360, etc. * host bridges. * * Author: Mark A. Greer <mgreer@mvista.com> * * 2001-2002 (c) MontaVista, Software, Inc.  This file is licensed under * the terms of the GNU General Public License version 2.  This program * is licensed "as is" without any warranty of any kind, whether express * or implied. */#ifndef __ASMPPC_MV64x60_DEFS_H#define __ASMPPC_MV64x60_DEFS_H/* * Define the Marvell bridges that are supported */#define	MV64x60_TYPE_INVALID			0#define	MV64x60_TYPE_GT64260A			1#define	MV64x60_TYPE_GT64260B			2#define	MV64x60_TYPE_MV64360			3#define	MV64x60_TYPE_MV64361			4#define	MV64x60_TYPE_MV64362			5#define	MV64x60_TYPE_MV64460			6/* Revisions of each supported chip */#define	GT64260_REV_A				0x10#define	GT64260_REV_B				0x20#define	MV64360					0x01#define	MV64460					0x01/* Minimum window size supported by 64260 is 1MB */#define GT64260_WINDOW_SIZE_MIN			0x00100000#define MV64360_WINDOW_SIZE_MIN			0x00010000#define	MV64x60_TCLK_FREQ_MAX			133333333U/* IRQ's for embedded controllers */#define	MV64x60_IRQ_DEV				1#define	MV64x60_IRQ_CPU_ERR			3#define	MV64x60_IRQ_TIMER_0_1			8#define	MV64x60_IRQ_TIMER_2_3			9#define	MV64x60_IRQ_TIMER_4_5			10#define	MV64x60_IRQ_TIMER_6_7			11#define	MV64x60_IRQ_P1_GPP_0_7			24#define	MV64x60_IRQ_P1_GPP_8_15			25#define	MV64x60_IRQ_P1_GPP_16_23		26#define	MV64x60_IRQ_P1_GPP_24_31		27#define	MV64x60_IRQ_DOORBELL			28#define	MV64x60_IRQ_ETH_0			32#define	MV64x60_IRQ_ETH_1			33#define	MV64x60_IRQ_ETH_2			34#define	MV64x60_IRQ_SDMA_0			36#define	MV64x60_IRQ_I2C				37#define	MV64x60_IRQ_BRG				39#define	MV64x60_IRQ_MPSC_0			40#define	MV64x60_IRQ_MPSC_1			42#define	MV64x60_IRQ_COMM			43#define	MV64x60_IRQ_P0_GPP_0_7			56#define	MV64x60_IRQ_P0_GPP_8_15			57#define	MV64x60_IRQ_P0_GPP_16_23		58#define	MV64x60_IRQ_P0_GPP_24_31		59#define	MV64360_IRQ_PCI0			12#define	MV64360_IRQ_SRAM_PAR_ERR		13#define	MV64360_IRQ_PCI1			16#define	MV64360_IRQ_SDMA_1			38#define	MV64x60_IRQ_GPP0			64#define	MV64x60_IRQ_GPP1			65#define	MV64x60_IRQ_GPP2			66#define	MV64x60_IRQ_GPP3			67#define	MV64x60_IRQ_GPP4			68#define	MV64x60_IRQ_GPP5			69#define	MV64x60_IRQ_GPP6			70#define	MV64x60_IRQ_GPP7			71#define	MV64x60_IRQ_GPP8			72#define	MV64x60_IRQ_GPP9			73#define	MV64x60_IRQ_GPP10			74#define	MV64x60_IRQ_GPP11			75#define	MV64x60_IRQ_GPP12			76#define	MV64x60_IRQ_GPP13			77#define	MV64x60_IRQ_GPP14			78#define	MV64x60_IRQ_GPP15			79#define	MV64x60_IRQ_GPP16			80#define	MV64x60_IRQ_GPP17			81#define	MV64x60_IRQ_GPP18			82#define	MV64x60_IRQ_GPP19			83#define	MV64x60_IRQ_GPP20			84#define	MV64x60_IRQ_GPP21			85#define	MV64x60_IRQ_GPP22			86#define	MV64x60_IRQ_GPP23			87#define	MV64x60_IRQ_GPP24			88#define	MV64x60_IRQ_GPP25			89#define	MV64x60_IRQ_GPP26			90#define	MV64x60_IRQ_GPP27			91#define	MV64x60_IRQ_GPP28			92#define	MV64x60_IRQ_GPP29			93#define	MV64x60_IRQ_GPP30			94#define	MV64x60_IRQ_GPP31			95/* Offsets for register blocks */#define	GT64260_ENET_PHY_ADDR			0x2000#define	GT64260_ENET_ESMIR			0x2010#define GT64260_ENET_0_OFFSET			0x2400#define GT64260_ENET_1_OFFSET			0x2800#define GT64260_ENET_2_OFFSET			0x2c00#define	MV64x60_SDMA_0_OFFSET			0x4000#define	MV64x60_SDMA_1_OFFSET			0x6000#define	MV64x60_MPSC_0_OFFSET			0x8000#define	MV64x60_MPSC_1_OFFSET			0x9000#define	MV64x60_MPSC_ROUTING_OFFSET		0xb400#define	MV64x60_SDMA_INTR_OFFSET		0xb800#define	MV64x60_BRG_0_OFFSET			0xb200#define	MV64x60_BRG_1_OFFSET			0xb208/* ***************************************************************************** * *	CPU Interface Registers * ***************************************************************************** *//* CPU physical address of bridge's registers */#define MV64x60_INTERNAL_SPACE_DECODE		0x0068#define MV64x60_INTERNAL_SPACE_SIZE		0x10000#define MV64x60_INTERNAL_SPACE_DEFAULT_ADDR	0x14000000#define	MV64360_CPU_BAR_ENABLE			0x0278/* CPU Memory Controller Window Registers (4 windows) */#define	MV64x60_CPU2MEM_WINDOWS			4#define	MV64x60_CPU2MEM_0_BASE			0x0008#define	MV64x60_CPU2MEM_0_SIZE			0x0010#define	MV64x60_CPU2MEM_1_BASE			0x0208#define	MV64x60_CPU2MEM_1_SIZE			0x0210#define	MV64x60_CPU2MEM_2_BASE			0x0018#define	MV64x60_CPU2MEM_2_SIZE			0x0020#define	MV64x60_CPU2MEM_3_BASE			0x0218#define	MV64x60_CPU2MEM_3_SIZE			0x0220/* CPU Device Controller Window Registers (4 windows) */#define	MV64x60_CPU2DEV_WINDOWS			4#define	MV64x60_CPU2DEV_0_BASE			0x0028#define	MV64x60_CPU2DEV_0_SIZE			0x0030#define	MV64x60_CPU2DEV_1_BASE			0x0228#define	MV64x60_CPU2DEV_1_SIZE			0x0230#define	MV64x60_CPU2DEV_2_BASE			0x0248#define	MV64x60_CPU2DEV_2_SIZE			0x0250#define	MV64x60_CPU2DEV_3_BASE			0x0038#define	MV64x60_CPU2DEV_3_SIZE			0x0040#define	MV64x60_CPU2BOOT_0_BASE			0x0238#define	MV64x60_CPU2BOOT_0_SIZE			0x0240#define	MV64360_CPU2SRAM_BASE			0x0268/* CPU Windows to PCI space (2 PCI buses each w/ 1 I/O & 4 MEM windows) */#define	MV64x60_PCI_BUSES			2#define	MV64x60_PCI_IO_WINDOWS_PER_BUS		1#define	MV64x60_PCI_MEM_WINDOWS_PER_BUS		4#define	MV64x60_CPU2PCI_SWAP_BYTE		0x00000000#define	MV64x60_CPU2PCI_SWAP_NONE		0x01000000#define	MV64x60_CPU2PCI_SWAP_BYTE_WORD		0x02000000#define	MV64x60_CPU2PCI_SWAP_WORD		0x03000000#define	MV64x60_CPU2PCI_MEM_REQ64		(1<<27)#define	MV64x60_CPU2PCI0_IO_BASE		0x0048#define	MV64x60_CPU2PCI0_IO_SIZE		0x0050#define	MV64x60_CPU2PCI0_MEM_0_BASE		0x0058#define	MV64x60_CPU2PCI0_MEM_0_SIZE		0x0060#define	MV64x60_CPU2PCI0_MEM_1_BASE		0x0080#define	MV64x60_CPU2PCI0_MEM_1_SIZE		0x0088#define	MV64x60_CPU2PCI0_MEM_2_BASE		0x0258#define	MV64x60_CPU2PCI0_MEM_2_SIZE		0x0260#define	MV64x60_CPU2PCI0_MEM_3_BASE		0x0280#define	MV64x60_CPU2PCI0_MEM_3_SIZE		0x0288#define	MV64x60_CPU2PCI0_IO_REMAP		0x00f0#define	MV64x60_CPU2PCI0_MEM_0_REMAP_LO		0x00f8#define	MV64x60_CPU2PCI0_MEM_0_REMAP_HI		0x0320#define	MV64x60_CPU2PCI0_MEM_1_REMAP_LO		0x0100#define	MV64x60_CPU2PCI0_MEM_1_REMAP_HI		0x0328#define	MV64x60_CPU2PCI0_MEM_2_REMAP_LO		0x02f8#define	MV64x60_CPU2PCI0_MEM_2_REMAP_HI		0x0330#define	MV64x60_CPU2PCI0_MEM_3_REMAP_LO		0x0300#define	MV64x60_CPU2PCI0_MEM_3_REMAP_HI		0x0338#define	MV64x60_CPU2PCI1_IO_BASE		0x0090#define	MV64x60_CPU2PCI1_IO_SIZE		0x0098#define	MV64x60_CPU2PCI1_MEM_0_BASE		0x00a0#define	MV64x60_CPU2PCI1_MEM_0_SIZE		0x00a8#define	MV64x60_CPU2PCI1_MEM_1_BASE		0x00b0#define	MV64x60_CPU2PCI1_MEM_1_SIZE		0x00b8#define	MV64x60_CPU2PCI1_MEM_2_BASE		0x02a0#define	MV64x60_CPU2PCI1_MEM_2_SIZE		0x02a8#define	MV64x60_CPU2PCI1_MEM_3_BASE		0x02b0#define	MV64x60_CPU2PCI1_MEM_3_SIZE		0x02b8#define	MV64x60_CPU2PCI1_IO_REMAP		0x0108#define	MV64x60_CPU2PCI1_MEM_0_REMAP_LO		0x0110#define	MV64x60_CPU2PCI1_MEM_0_REMAP_HI		0x0340#define	MV64x60_CPU2PCI1_MEM_1_REMAP_LO		0x0118#define	MV64x60_CPU2PCI1_MEM_1_REMAP_HI		0x0348#define	MV64x60_CPU2PCI1_MEM_2_REMAP_LO		0x0310#define	MV64x60_CPU2PCI1_MEM_2_REMAP_HI		0x0350#define	MV64x60_CPU2PCI1_MEM_3_REMAP_LO		0x0318#define	MV64x60_CPU2PCI1_MEM_3_REMAP_HI		0x0358/* CPU Control Registers */#define MV64x60_CPU_CONFIG			0x0000#define MV64x60_CPU_MODE			0x0120#define MV64x60_CPU_MASTER_CNTL			0x0160#define MV64x60_CPU_XBAR_CNTL_LO		0x0150#define MV64x60_CPU_XBAR_CNTL_HI		0x0158#define MV64x60_CPU_XBAR_TO			0x0168#define GT64260_CPU_RR_XBAR_CNTL_LO		0x0170#define GT64260_CPU_RR_XBAR_CNTL_HI		0x0178#define MV64360_CPU_PADS_CALIBRATION		0x03b4#define MV64360_CPU_RESET_SAMPLE_LO		0x03c4#define MV64360_CPU_RESET_SAMPLE_HI		0x03d4/* SMP Register Map */#define MV64360_WHO_AM_I			0x0200#define MV64360_CPU0_DOORBELL			0x0214#define MV64360_CPU0_DOORBELL_CLR		0x021c#define MV64360_CPU0_DOORBELL_MASK		0x0234#define MV64360_CPU1_DOORBELL			0x0224#define MV64360_CPU1_DOORBELL_CLR		0x022c#define MV64360_CPU1_DOORBELL_MASK		0x023c#define MV64360_CPUx_DOORBELL(x)		(0x0214 + ((x)*0x10))#define MV64360_CPUx_DOORBELL_CLR(x)		(0x021c + ((x)*0x10))#define MV64360_CPUx_DOORBELL_MASK(x)		(0x0234 + ((x)*0x08))#define MV64360_SEMAPHORE_0			0x0244#define MV64360_SEMAPHORE_1			0x024c#define MV64360_SEMAPHORE_2			0x0254#define MV64360_SEMAPHORE_3			0x025c#define MV64360_SEMAPHORE_4			0x0264#define MV64360_SEMAPHORE_5			0x026c#define MV64360_SEMAPHORE_6			0x0274#define MV64360_SEMAPHORE_7			0x027c/* CPU Sync Barrier Registers */#define GT64260_CPU_SYNC_BARRIER_PCI0		0x00c0#define GT64260_CPU_SYNC_BARRIER_PCI1		0x00c8#define MV64360_CPU0_SYNC_BARRIER_TRIG		0x00c0#define MV64360_CPU0_SYNC_BARRIER_VIRT		0x00c8#define MV64360_CPU1_SYNC_BARRIER_TRIG		0x00d0#define MV64360_CPU1_SYNC_BARRIER_VIRT		0x00d8/* CPU Deadlock and Ordering registers (Rev B part only) */#define GT64260_CPU_DEADLOCK_ORDERING			0x02d0#define GT64260_CPU_WB_PRIORITY_BUFFER_DEPTH		0x02d8#define GT64260_CPU_COUNTERS_SYNC_BARRIER_ATTRIBUTE	0x02e0/* CPU Access Protection Registers (gt64260 realy has 8 but don't need) */#define	MV64x260_CPU_PROT_WINDOWS		4#define	GT64260_CPU_PROT_ACCPROTECT		(1<<16)#define	GT64260_CPU_PROT_WRPROTECT		(1<<17)#define	GT64260_CPU_PROT_CACHEPROTECT		(1<<18)#define	MV64360_CPU_PROT_ACCPROTECT		(1<<20)#define	MV64360_CPU_PROT_WRPROTECT		(1<<21)#define	MV64360_CPU_PROT_CACHEPROTECT		(1<<22)#define	MV64360_CPU_PROT_WIN_ENABLE		(1<<31)#define MV64x60_CPU_PROT_BASE_0			0x0180#define MV64x60_CPU_PROT_SIZE_0			0x0188#define MV64x60_CPU_PROT_BASE_1			0x0190#define MV64x60_CPU_PROT_SIZE_1			0x0198#define MV64x60_CPU_PROT_BASE_2			0x01a0#define MV64x60_CPU_PROT_SIZE_2			0x01a8#define MV64x60_CPU_PROT_BASE_3			0x01b0#define MV64x60_CPU_PROT_SIZE_3			0x01b8#define GT64260_CPU_PROT_BASE_4			0x01c0#define GT64260_CPU_PROT_SIZE_4			0x01c8#define GT64260_CPU_PROT_BASE_5			0x01d0#define GT64260_CPU_PROT_SIZE_5			0x01d8#define GT64260_CPU_PROT_BASE_6			0x01e0#define GT64260_CPU_PROT_SIZE_6			0x01e8#define GT64260_CPU_PROT_BASE_7			0x01f0#define GT64260_CPU_PROT_SIZE_7			0x01f8/* CPU Snoop Control Registers (64260 only) */#define	GT64260_CPU_SNOOP_WINDOWS		4#define	GT64260_CPU_SNOOP_NONE			0x00000000#define	GT64260_CPU_SNOOP_WT			0x00010000#define	GT64260_CPU_SNOOP_WB			0x00020000#define	GT64260_CPU_SNOOP_MASK			0x00030000#define	GT64260_CPU_SNOOP_ALL_BITS		GT64260_CPU_SNOOP_MASK#define GT64260_CPU_SNOOP_BASE_0		0x0380#define GT64260_CPU_SNOOP_SIZE_0		0x0388#define GT64260_CPU_SNOOP_BASE_1		0x0390#define GT64260_CPU_SNOOP_SIZE_1		0x0398#define GT64260_CPU_SNOOP_BASE_2		0x03a0#define GT64260_CPU_SNOOP_SIZE_2		0x03a8#define GT64260_CPU_SNOOP_BASE_3		0x03b0#define GT64260_CPU_SNOOP_SIZE_3		0x03b8/* CPU Snoop Control Registers (64360 only) */#define	MV64360_CPU_SNOOP_WINDOWS		4#define	MV64360_CPU_SNOOP_NONE			0x00000000#define	MV64360_CPU_SNOOP_WT			0x00010000#define	MV64360_CPU_SNOOP_WB			0x00020000#define	MV64360_CPU_SNOOP_MASK			0x00030000#define	MV64360_CPU_SNOOP_ALL_BITS		MV64360_CPU_SNOOP_MASK/* CPU Error Report Registers */#define MV64x60_CPU_ERR_ADDR_LO			0x0070#define MV64x60_CPU_ERR_ADDR_HI			0x0078

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?