⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bridge.h

📁 linux-2.4.29操作系统的源码
💻 H
📖 第 1 页 / 共 5 页
字号:
					 BRIDGE_DEV_SWAP_PMU)#define BRIDGE_DEV_D32_BITS		(BRIDGE_DEV_DIR_WRGA_EN		| \					 BRIDGE_DEV_SWAP_DIR		| \					 BRIDGE_DEV_PREF		| \					 BRIDGE_DEV_PRECISE		| \					 BRIDGE_DEV_COH			| \					 BRIDGE_DEV_BARRIER)#define XBRIDGE_DEV_D64_BITS		(BRIDGE_DEV_DIR_WRGA_EN		| \					 BRIDGE_DEV_COH			| \					 BRIDGE_DEV_BARRIER)#define BRIDGE_DEV_D64_BITS		(BRIDGE_DEV_DIR_WRGA_EN		| \					 BRIDGE_DEV_SWAP_DIR		| \					 BRIDGE_DEV_COH			| \					 BRIDGE_DEV_BARRIER)/* Bridge Error Upper register bit field definition */#define BRIDGE_ERRUPPR_DEVMASTER	(0x1 << 20)	/* Device was master */#define BRIDGE_ERRUPPR_PCIVDEV		(0x1 << 19)	/* Virtual Req value */#define BRIDGE_ERRUPPR_DEVNUM_SHFT	(16)#define BRIDGE_ERRUPPR_DEVNUM_MASK	(0x7 << BRIDGE_ERRUPPR_DEVNUM_SHFT)#define BRIDGE_ERRUPPR_DEVICE(err)	(((err) >> BRIDGE_ERRUPPR_DEVNUM_SHFT) & 0x7)#define BRIDGE_ERRUPPR_ADDRMASK		(0xFFFF)/* Bridge interrupt mode register bits definition */#define BRIDGE_INTMODE_CLR_PKT_EN(x)	(0x1 << (x))/* this should be written to the xbow's link_control(x) register */#define BRIDGE_CREDIT	3/* RRB assignment register */#define	BRIDGE_RRB_EN	0x8	/* after shifting down */#define	BRIDGE_RRB_DEV	0x7	/* after shifting down */#define	BRIDGE_RRB_VDEV	0x4	/* after shifting down, 2 virtual channels */#define	BRIDGE_RRB_PDEV	0x3	/* after shifting down, 8 devices */#define	PIC_RRB_EN	0x8	/* after shifting down */#define	PIC_RRB_DEV	0x7	/* after shifting down */#define	PIC_RRB_VDEV	0x6	/* after shifting down, 4 virtual channels */#define	PIC_RRB_PDEV	0x1	/* after shifting down, 4 devices *//* RRB status register */#define	BRIDGE_RRB_VALID(r)	(0x00010000<<(r))#define	BRIDGE_RRB_INUSE(r)	(0x00000001<<(r))/* RRB clear register */#define	BRIDGE_RRB_CLEAR(r)	(0x00000001<<(r))/* Defines for the virtual channels so we don't hardcode 0-3 within code */#define VCHAN0	0	/* virtual channel 0 (ie. the "normal" channel) */#define VCHAN1	1	/* virtual channel 1 */#define VCHAN2	2	/* virtual channel 2 - PIC only */#define VCHAN3	3	/* virtual channel 3 - PIC only *//* PIC: PCI-X Read Buffer Attribute Register (RBAR) */#define NUM_RBAR 16	/* number of RBAR registers *//* xbox system controller declarations */#define XBOX_BRIDGE_WID         8#define FLASH_PROM1_BASE        0xE00000 /* To read the xbox sysctlr status */#define XBOX_RPS_EXISTS		1 << 6	 /* RPS bit in status register */#define XBOX_RPS_FAIL		1 << 4	 /* RPS status bit in register *//* ======================================================================== *//* * Macros for Xtalk to Bridge bus (PCI/GIO) PIO * refer to section 4.2.1 of Bridge Spec for xtalk to PCI/GIO PIO mappings *//* XTALK addresses that map into Bridge Bus addr space */#define BRIDGE_PIO32_XTALK_ALIAS_BASE	0x000040000000L#define BRIDGE_PIO32_XTALK_ALIAS_LIMIT	0x00007FFFFFFFL#define BRIDGE_PIO64_XTALK_ALIAS_BASE	0x000080000000L#define BRIDGE_PIO64_XTALK_ALIAS_LIMIT	0x0000BFFFFFFFL#define BRIDGE_PCIIO_XTALK_ALIAS_BASE	0x000100000000L#define BRIDGE_PCIIO_XTALK_ALIAS_LIMIT	0x0001FFFFFFFFL/* Ranges of PCI bus space that can be accessed via PIO from xtalk */#define BRIDGE_MIN_PIO_ADDR_MEM		0x00000000	/* 1G PCI memory space */#define BRIDGE_MAX_PIO_ADDR_MEM		0x3fffffff#define BRIDGE_MIN_PIO_ADDR_IO		0x00000000	/* 4G PCI IO space */#define BRIDGE_MAX_PIO_ADDR_IO		0xffffffff/* XTALK addresses that map into PCI addresses */#define BRIDGE_PCI_MEM32_BASE		BRIDGE_PIO32_XTALK_ALIAS_BASE#define BRIDGE_PCI_MEM32_LIMIT		BRIDGE_PIO32_XTALK_ALIAS_LIMIT#define BRIDGE_PCI_MEM64_BASE		BRIDGE_PIO64_XTALK_ALIAS_BASE#define BRIDGE_PCI_MEM64_LIMIT		BRIDGE_PIO64_XTALK_ALIAS_LIMIT#define BRIDGE_PCI_IO_BASE		BRIDGE_PCIIO_XTALK_ALIAS_BASE#define BRIDGE_PCI_IO_LIMIT		BRIDGE_PCIIO_XTALK_ALIAS_LIMIT/* * Macros for Xtalk to Bridge bus (PCI) PIO * refer to section 5.2.1 Figure 4 of the "PCI Interface Chip (PIC) Volume II * Programmer's Reference" (Revision 0.8 as of this writing). * * These are PIC bridge specific.  A separate set of macros was defined * because PIC deviates from Bridge/Xbridge by not supporting a big-window * alias for PCI I/O space, and also redefines XTALK addresses * 0x0000C0000000L and 0x000100000000L to be PCI MEM aliases for the second * bus. *//* XTALK addresses that map into PIC Bridge Bus addr space */#define PICBRIDGE0_PIO32_XTALK_ALIAS_BASE	0x000040000000L#define PICBRIDGE0_PIO32_XTALK_ALIAS_LIMIT	0x00007FFFFFFFL#define PICBRIDGE0_PIO64_XTALK_ALIAS_BASE	0x000080000000L#define PICBRIDGE0_PIO64_XTALK_ALIAS_LIMIT	0x0000BFFFFFFFL#define PICBRIDGE1_PIO32_XTALK_ALIAS_BASE	0x0000C0000000L#define PICBRIDGE1_PIO32_XTALK_ALIAS_LIMIT	0x0000FFFFFFFFL#define PICBRIDGE1_PIO64_XTALK_ALIAS_BASE	0x000100000000L#define PICBRIDGE1_PIO64_XTALK_ALIAS_LIMIT	0x00013FFFFFFFL/* XTALK addresses that map into PCI addresses */#define PICBRIDGE0_PCI_MEM32_BASE	PICBRIDGE0_PIO32_XTALK_ALIAS_BASE#define PICBRIDGE0_PCI_MEM32_LIMIT	PICBRIDGE0_PIO32_XTALK_ALIAS_LIMIT#define PICBRIDGE0_PCI_MEM64_BASE	PICBRIDGE0_PIO64_XTALK_ALIAS_BASE#define PICBRIDGE0_PCI_MEM64_LIMIT	PICBRIDGE0_PIO64_XTALK_ALIAS_LIMIT#define PICBRIDGE1_PCI_MEM32_BASE	PICBRIDGE1_PIO32_XTALK_ALIAS_BASE#define PICBRIDGE1_PCI_MEM32_LIMIT	PICBRIDGE1_PIO32_XTALK_ALIAS_LIMIT#define PICBRIDGE1_PCI_MEM64_BASE	PICBRIDGE1_PIO64_XTALK_ALIAS_BASE#define PICBRIDGE1_PCI_MEM64_LIMIT	PICBRIDGE1_PIO64_XTALK_ALIAS_LIMIT/* * Macros for Bridge bus (PCI/GIO) to Xtalk DMA *//* Bridge Bus DMA addresses */#define BRIDGE_LOCAL_BASE		0#define BRIDGE_DMA_MAPPED_BASE		0x40000000#define BRIDGE_DMA_MAPPED_SIZE		0x40000000	/* 1G Bytes */#define BRIDGE_DMA_DIRECT_BASE		0x80000000#define BRIDGE_DMA_DIRECT_SIZE		0x80000000	/* 2G Bytes */#define PCI32_LOCAL_BASE		BRIDGE_LOCAL_BASE/* PCI addresses of regions decoded by Bridge for DMA */#define PCI32_MAPPED_BASE		BRIDGE_DMA_MAPPED_BASE#define PCI32_DIRECT_BASE		BRIDGE_DMA_DIRECT_BASE#ifndef __ASSEMBLY__#define IS_PCI32_LOCAL(x)	((uint64_t)(x) < PCI32_MAPPED_BASE)#define IS_PCI32_MAPPED(x)	((uint64_t)(x) < PCI32_DIRECT_BASE && \					(uint64_t)(x) >= PCI32_MAPPED_BASE)#define IS_PCI32_DIRECT(x)	((uint64_t)(x) >= PCI32_MAPPED_BASE)#define IS_PCI64(x)		((uint64_t)(x) >= PCI64_BASE)#endif				/* __ASSEMBLY__ *//* * The GIO address space. *//* Xtalk to GIO PIO */#define BRIDGE_GIO_MEM32_BASE		BRIDGE_PIO32_XTALK_ALIAS_BASE#define BRIDGE_GIO_MEM32_LIMIT		BRIDGE_PIO32_XTALK_ALIAS_LIMIT#define GIO_LOCAL_BASE			BRIDGE_LOCAL_BASE/* GIO addresses of regions decoded by Bridge for DMA */#define GIO_MAPPED_BASE			BRIDGE_DMA_MAPPED_BASE#define GIO_DIRECT_BASE			BRIDGE_DMA_DIRECT_BASE#ifndef __ASSEMBLY__#define IS_GIO_LOCAL(x)		((uint64_t)(x) < GIO_MAPPED_BASE)#define IS_GIO_MAPPED(x)	((uint64_t)(x) < GIO_DIRECT_BASE && \					(uint64_t)(x) >= GIO_MAPPED_BASE)#define IS_GIO_DIRECT(x)	((uint64_t)(x) >= GIO_MAPPED_BASE)#endif				/* __ASSEMBLY__ *//* PCI to xtalk mapping *//* given a DIR_OFF value and a pci/gio 32 bits direct address, determine * which xtalk address is accessed */#define BRIDGE_DIRECT_32_SEG_SIZE	BRIDGE_DMA_DIRECT_SIZE#define BRIDGE_DIRECT_32_TO_XTALK(dir_off,adr)		\	((dir_off) * BRIDGE_DIRECT_32_SEG_SIZE +	\		((adr) & (BRIDGE_DIRECT_32_SEG_SIZE - 1)) + PHYS_RAMBASE)/* 64-bit address attribute masks */#define PCI64_ATTR_TARG_MASK	0xf000000000000000#define PCI64_ATTR_TARG_SHFT	60#define PCI64_ATTR_PREF		(1ull << 59)#define PCI64_ATTR_PREC		(1ull << 58)#define PCI64_ATTR_VIRTUAL	(1ull << 57)#define PCI64_ATTR_BAR		(1ull << 56)#define PCI64_ATTR_SWAP		(1ull << 55)#define PCI64_ATTR_RMF_MASK	0x00ff000000000000#define PCI64_ATTR_RMF_SHFT	48#ifndef __ASSEMBLY__/* Address translation entry for mapped pci32 accesses */typedef union ate_u {    uint64_t		    ent;    struct xb_ate_s {					/* xbridge */	uint64_t		:16;	uint64_t		addr:36;	uint64_t		targ:4;	uint64_t		reserved:2;        uint64_t		swap:1;	uint64_t		barrier:1;	uint64_t		prefetch:1;	uint64_t		precise:1;	uint64_t		coherent:1;	uint64_t		valid:1;    } xb_field;    struct ate_s {					/* bridge */	uint64_t		rmf:16;	uint64_t		addr:36;	uint64_t		targ:4;	uint64_t		reserved:3;	uint64_t		barrier:1;	uint64_t		prefetch:1;	uint64_t		precise:1;	uint64_t		coherent:1;	uint64_t		valid:1;    } field;} ate_t;#endif				/* __ASSEMBLY__ */#define ATE_V		(1 << 0)#define ATE_CO		(1 << 1)#define ATE_PREC	(1 << 2)#define ATE_PREF	(1 << 3)#define ATE_BAR		(1 << 4)#define ATE_SWAP        (1 << 5)#define ATE_PFNSHIFT		12#define ATE_TIDSHIFT		8#define ATE_RMFSHIFT		48#define mkate(xaddr, xid, attr) ((xaddr) & 0x0000fffffffff000ULL) | \				((xid)<<ATE_TIDSHIFT) | \				(attr)/* * for xbridge, bit 29 of the pci address is the swap bit */#define ATE_SWAPSHIFT		29#define ATE_SWAP_ON(x)		((x) |= (1 << ATE_SWAPSHIFT))#define ATE_SWAP_OFF(x)		((x) &= ~(1 << ATE_SWAPSHIFT))/* extern declarations */#ifndef __ASSEMBLY__/* ======================================================================== */#ifdef	MACROFIELD_LINE/* * This table forms a relation between the byte offset macros normally * used for ASM coding and the calculated byte offsets of the fields * in the C structure. * * See bridge_check.c and bridge_html.c for further details. */#ifndef MACROFIELD_LINE_BITFIELD#define MACROFIELD_LINE_BITFIELD(m)	/* ignored */#endifstruct macrofield_s	bridge_macrofield[] ={    MACROFIELD_LINE(BRIDGE_WID_ID, b_wid_id)    MACROFIELD_LINE_BITFIELD(WIDGET_REV_NUM)    MACROFIELD_LINE_BITFIELD(WIDGET_PART_NUM)    MACROFIELD_LINE_BITFIELD(WIDGET_MFG_NUM)    MACROFIELD_LINE(BRIDGE_WID_STAT, b_wid_stat)    MACROFIELD_LINE_BITFIELD(BRIDGE_STAT_LLP_REC_CNT)    MACROFIELD_LINE_BITFIELD(BRIDGE_STAT_LLP_TX_CNT)    MACROFIELD_LINE_BITFIELD(BRIDGE_STAT_FLASH_SELECT)    MACROFIELD_LINE_BITFIELD(BRIDGE_STAT_PCI_GIO_N)    MACROFIELD_LINE_BITFIELD(BRIDGE_STAT_PENDING)    MACROFIELD_LINE(BRIDGE_WID_ERR_UPPER, b_wid_err_upper)    MACROFIELD_LINE(BRIDGE_WID_ERR_LOWER, b_wid_err_lower)    MACROFIELD_LINE(BRIDGE_WID_CONTROL, b_wid_control)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_FLASH_WR_EN)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_EN_CLK50)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_EN_CLK40)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_EN_CLK33)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_RST_MASK)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_IO_SWAP)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_MEM_SWAP)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_PAGE_SIZE)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_SS_PAR_BAD)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_SS_PAR_EN)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_SSRAM_SIZE_MASK)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_F_BAD_PKT)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_LLP_XBAR_CRD_MASK)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_CLR_RLLP_CNT)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_CLR_TLLP_CNT)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_SYS_END)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_MAX_TRANS_MASK)    MACROFIELD_LINE_BITFIELD(BRIDGE_CTRL_WIDGET_ID_MASK)    MACROFIELD_LINE(BRIDGE_WID_REQ_TIMEOUT, b_wid_req_timeout)    MACROFIELD_LINE(BRIDGE_WID_INT_UPPER, b_wid_int_upper)    MACROFIELD_LINE_BITFIELD(WIDGET_INT_VECTOR)    MACROFIELD_LINE_BITFIELD(WIDGET_TARGET_ID)    MACROFIELD_LINE_BITFIELD(WIDGET_UPP_ADDR)    MACROFIELD_LINE(BRIDGE_WID_INT_LOWER, b_wid_int_lower)    MACROFIELD_LINE(BRIDGE_WID_ERR_CMDWORD, b_wid_err_cmdword)    MACROFIELD_LINE_BITFIELD(WIDGET_DIDN)    MACROFIELD_LINE_BITFIELD(WIDGET_SIDN)    MACROFIELD_LINE_BITFIELD(WIDGET_PACTYP)    MACROFIELD_LINE_BITFIELD(WIDGET_TNUM)    MACROFIELD_LINE_BITFIELD(WIDGET_COHERENT)    MACROFIELD_LINE_BITFIELD(WIDGET_DS)    MACROFIELD_LINE_BITFIELD(WIDGET_GBR)    MACROFIELD_LINE_BITFIELD(WIDGET_VBPM)    MACROFIELD_LINE_BITFIELD(WIDGET_ERROR)    MACROFIELD_LINE_BITFIELD(WIDGET_BARRIER)    MACROFIELD_LINE(BRIDGE_WID_LLP, b_wid_llp)    MACROFIELD_LINE_BITFIELD(WIDGET_LLP_MAXRETRY)    MACROFIELD_LINE_BITFIELD(WIDGET_LLP_NULLTIMEOUT)    MACROFIELD_LINE_BITFIELD(WIDGET_LLP_MAXBURST)    MACROFIELD_LINE(BRIDGE_WID_TFLUSH, b_wid_tflush)    MACROFIELD_LINE(BRIDGE_WID_AUX_ERR, b_wid_aux_err)    MACROFIELD_LINE(BRIDGE_WID_RESP_UPPER, b_wid_resp_upper)    MACROFIELD_LINE(BRIDGE_WID_RESP_LOWER, b_wid_resp_lower)    MACROFIELD_LINE(BRIDGE_WID_TST_PIN_CTRL, b_wid_tst_pin_ctrl)    MACROFIELD_LINE(BRIDGE_DIR_MAP, b_dir_map)    MACROFIELD_LINE_BITFIELD(BRIDGE_DIRMAP_W_ID)    MACROFIELD_LINE_BITFIELD(BRIDGE_DIRMAP_RMF_64)    MACROFIELD_LINE_BITFIELD(BRIDGE_DIRMAP_ADD512)    MACROFIELD_LINE_BITFIELD(BRIDGE_DIRMAP_OFF)    MACROFIELD_LINE(BRIDGE_RAM_PERR, b_ram_perr)    MACROFIELD_LINE(BRIDGE_ARB, b_arb)    MACROFIELD_LINE_BITFIELD(BRIDGE_ARB_REQ_WAIT_TICK_MASK)    MACROFIELD_LINE_BITFIELD(BRIDGE_ARB_REQ_WAIT_EN_MASK)    MACROFIELD_LINE_BITFIELD(BRIDGE_ARB_FREEZE_GNT)    MACROFIELD_LINE_BITFIELD(BRIDGE_ARB_HPRI_RING_B2)    MACROFIELD_LINE_

⌨️ 快捷键说明

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