📄 skgehw.h
字号:
#define SHIFT11(x) ((x) << 11)
#define SHIFT10(x) ((x) << 10)
#define SHIFT9(x) ((x) << 9)
#define SHIFT8(x) ((x) << 8)
#define SHIFT7(x) ((x) << 7)
#define SHIFT6(x) ((x) << 6)
#define SHIFT5(x) ((x) << 5)
#define SHIFT4(x) ((x) << 4)
#define SHIFT3(x) ((x) << 3)
#define SHIFT2(x) ((x) << 2)
#define SHIFT1(x) ((x) << 1)
#define SHIFT0(x) ((x) << 0)
/*
* Configuration Space header
* Since this module is used for different OS', those may be
* duplicate on some of them (e.g. Linux). But to keep the
* common source, we have to live with this...
*/
#define PCI_VENDOR_ID 0x00 /* 16 bit Vendor ID */
#define PCI_DEVICE_ID 0x02 /* 16 bit Device ID */
#define PCI_COMMAND 0x04 /* 16 bit Command */
#define PCI_STATUS 0x06 /* 16 bit Status */
#define PCI_REV_ID 0x08 /* 8 bit Revision ID */
#if 0
#define PCI_CLASS_CODE 0x09 /* 24 bit Class Code */
#endif
#define PCI_CACHE_LSZ 0x0c /* 8 bit Cache Line Size */
#define PCI_LAT_TIM 0x0d /* 8 bit Latency Timer */
#define PCI_HEADER_T 0x0e /* 8 bit Header Type */
#define PCI_BIST 0x0f /* 8 bit Built-in selftest */
#define PCI_BASE_1ST 0x10 /* 32 bit 1st Base address */
#define PCI_BASE_2ND 0x14 /* 32 bit 2nd Base address */
/* Byte 0x18..0x2b: reserved */
#define PCI_SUB_VID 0x2c /* 16 bit Subsystem Vendor ID */
#define PCI_SUB_ID 0x2e /* 16 bit Subsystem ID */
#define PCI_BASE_ROM 0x30 /* 32 bit Expansion ROM Base Address */
#define PCI_CAP_PTR 0x34 /* 8 bit Capabilities Ptr */
/* Byte 35..3b: reserved */
#define PCI_IRQ_LINE 0x3c /* 8 bit Interrupt Line */
#define PCI_IRQ_PIN 0x3d /* 8 bit Interrupt Pin */
#define PCI_MIN_GNT 0x3e /* 8 bit Min_Gnt */
#define PCI_MAX_LAT 0x3f /* 8 bit Max_Lat */
/* Device Dependent Region */
#define PCI_OUR_REG_1 0x40 /* 32 bit Our Register 1 */
#define PCI_OUR_REG_2 0x44 /* 32 bit Our Register 2 */
/* Power Management Region */
#define PCI_PM_CAP_ID 0x48 /* 8 bit Power Management Cap. ID */
#define PCI_PM_NITEM 0x49 /* 8 bit Next Item Ptr */
#define PCI_PM_CAP_REG 0x4a /* 16 bit Power Management Capabilities */
#define PCI_PM_CTL_STS 0x4c /* 16 bit Power Manag. Control/Status */
/* Byte 0x4e: reserved */
#define PCI_PM_DAT_REG 0x4f /* 8 bit Power Manag. Data Register */
/* VPD Region */
#define PCI_VPD_CAP_ID 0x50 /* 8 bit VPD Cap. ID */
#define PCI_VPD_NITEM 0x51 /* 8 bit Next Item Ptr */
#define PCI_VPD_ADR_REG 0x52 /* 16 bit VPD Address Register */
#define PCI_VPD_DAT_REG 0x54 /* 32 bit VPD Data Register */
/* Byte 0x58..0xff: reserved */
/*
* I2C Address (PCI Config)
*
* Note: The temperature and voltage sensors are relocated on a different
* I2C bus.
*/
#define I2C_ADDR_VPD 0xA0 /* I2C address for the VPD EEPROM */
/*
* Define Bits and Values of the registers
*/
/* PCI_COMMAND 16 bit Command */
/* Bit 15..11: reserved */
#define PCI_INT_DIS BIT_10S /* Interrupt INTx# disable (PCI 2.3) */
#define PCI_FBTEN BIT_9S /* Fast Back-To-Back enable */
#define PCI_SERREN BIT_8S /* SERR enable */
#define PCI_ADSTEP BIT_7S /* Address Stepping */
#define PCI_PERREN BIT_6S /* Parity Report Response enable */
#define PCI_VGA_SNOOP BIT_5S /* VGA palette snoop */
#define PCI_MWIEN BIT_4S /* Memory write an inv cycl ena */
#define PCI_SCYCEN BIT_3S /* Special Cycle enable */
#define PCI_BMEN BIT_2S /* Bus Master enable */
#define PCI_MEMEN BIT_1S /* Memory Space Access enable */
#define PCI_IOEN BIT_0S /* I/O Space Access enable */
#define PCI_COMMAND_VAL (PCI_FBTEN | PCI_SERREN | PCI_PERREN | PCI_MWIEN |\
PCI_BMEN | PCI_MEMEN | PCI_IOEN)
/* PCI_STATUS 16 bit Status */
#define PCI_PERR BIT_15S /* Parity Error */
#define PCI_SERR BIT_14S /* Signaled SERR */
#define PCI_RMABORT BIT_13S /* Received Master Abort */
#define PCI_RTABORT BIT_12S /* Received Target Abort */
/* Bit 11: reserved */
#define PCI_DEVSEL (3<<9) /* Bit 10.. 9: DEVSEL Timing */
#define PCI_DEV_FAST (0<<9) /* fast */
#define PCI_DEV_MEDIUM (1<<9) /* medium */
#define PCI_DEV_SLOW (2<<9) /* slow */
#define PCI_DATAPERR BIT_8S /* DATA Parity error detected */
#define PCI_FB2BCAP BIT_7S /* Fast Back-to-Back Capability */
#define PCI_UDF BIT_6S /* User Defined Features */
#define PCI_66MHZCAP BIT_5S /* 66 MHz PCI bus clock capable */
#define PCI_NEWCAP BIT_4S /* New cap. list implemented */
#define PCI_INT_STAT BIT_3S /* Interrupt INTx# Status (PCI 2.3) */
/* Bit 2.. 0: reserved */
#define PCI_ERRBITS (PCI_PERR | PCI_SERR | PCI_RMABORT | PCI_RTABORT |\
PCI_DATAPERR)
/* PCI_CLASS_CODE 24 bit Class Code */
/* Byte 2: Base Class (02) */
/* Byte 1: SubClass (00) */
/* Byte 0: Programming Interface (00) */
/* PCI_CACHE_LSZ 8 bit Cache Line Size */
/* Possible values: 0,2,4,8,16,32,64,128 */
/* PCI_HEADER_T 8 bit Header Type */
#define PCI_HD_MF_DEV BIT_7S /* 0= single, 1= multi-func dev */
#define PCI_HD_TYPE 0x7f /* Bit 6..0: Header Layout 0= normal */
/* PCI_BIST 8 bit Built-in selftest */
/* Built-in Self test not supported (optional) */
/* PCI_BASE_1ST 32 bit 1st Base address */
#define PCI_MEMSIZE 0x4000L /* use 16 kB Memory Base */
#define PCI_MEMBASE_MSK 0xffffc000L /* Bit 31..14: Memory Base Address */
#define PCI_MEMSIZE_MSK 0x00003ff0L /* Bit 13.. 4: Memory Size Req. */
#define PCI_PREFEN BIT_3 /* Prefetchable */
#define PCI_MEM_TYP (3L<<2) /* Bit 2.. 1: Memory Type */
#define PCI_MEM32BIT (0L<<1) /* Base addr anywhere in 32 Bit range */
#define PCI_MEM1M (1L<<1) /* Base addr below 1 MegaByte */
#define PCI_MEM64BIT (2L<<1) /* Base addr anywhere in 64 Bit range */
#define PCI_MEMSPACE BIT_0 /* Memory Space Indic. */
/* PCI_BASE_2ND 32 bit 2nd Base address */
#define PCI_IOBASE 0xffffff00L /* Bit 31.. 8: I/O Base address */
#define PCI_IOSIZE 0x000000fcL /* Bit 7.. 2: I/O Size Requirements */
/* Bit 1: reserved */
#define PCI_IOSPACE BIT_0 /* I/O Space Indicator */
/* PCI_BASE_ROM 32 bit Expansion ROM Base Address */
#define PCI_ROMBASE 0xfffe0000L /* Bit 31..17: ROM BASE address (1st)*/
#define PCI_ROMBASZ (0x1cL<<14) /* Bit 16..14: Treat as BASE or SIZE */
#define PCI_ROMSIZE (0x38L<<11) /* Bit 13..11: ROM Size Requirements */
/* Bit 10.. 1: reserved */
#define PCI_ROMEN BIT_0 /* Address Decode enable */
/* Device Dependent Region */
/* PCI_OUR_REG_1 32 bit Our Register 1 */
/* Bit 31..29: reserved */
#define PCI_PHY_COMA BIT_28 /* Set PHY to Coma Mode */
#define PCI_EN_CAL BIT_27 /* Enable PCI buffer strength calibr. */
#define PCI_DIS_CAL BIT_26 /* Disable PCI buffer strength calibr. */
#define PCI_VIO BIT_25 /* PCI I/O Voltage, 0 = 3.3V, 1 = 5V */
#define PCI_DIS_BOOT BIT_24 /* Disable BOOT via ROM */
#define PCI_EN_IO BIT_23 /* Mapping to I/O space */
#define PCI_EN_FPROM BIT_22 /* Enable FLASH mapping to memory */
/* 1 = Map Flash to memory */
/* 0 = Disable addr. dec */
#define PCI_PAGESIZE (3L<<20) /* Bit 21..20: FLASH Page Size */
#define PCI_PAGE_16 (0L<<20) /* 16 k pages */
#define PCI_PAGE_32K (1L<<20) /* 32 k pages */
#define PCI_PAGE_64K (2L<<20) /* 64 k pages */
#define PCI_PAGE_128K (3L<<20) /* 128 k pages */
/* Bit 19: reserved */
#define PCI_PAGEREG (7L<<16) /* Bit 18..16: Page Register */
#define PCI_NOTAR BIT_15 /* No turnaround cycle */
#define PCI_FORCE_BE BIT_14 /* Assert all BEs on MR */
#define PCI_DIS_MRL BIT_13 /* Disable Mem Read Line */
#define PCI_DIS_MRM BIT_12 /* Disable Mem Read Multiple */
#define PCI_DIS_MWI BIT_11 /* Disable Mem Write & Invalidate */
#define PCI_DISC_CLS BIT_10 /* Disc: cacheLsz bound */
#define PCI_BURST_DIS BIT_9 /* Burst Disable */
#define PCI_DIS_PCI_CLK BIT_8 /* Disable PCI clock driving */
#define PCI_SKEW_DAS (0xfL<<4) /* Bit 7.. 4: Skew Ctrl, DAS Ext */
#define PCI_SKEW_BASE 0xfL /* Bit 3.. 0: Skew Ctrl, Base */
/* PCI_OUR_REG_2 32 bit Our Register 2 */
#define PCI_VPD_WR_THR (0xffL<<24) /* Bit 31..24: VPD Write Threshold */
#define PCI_DEV_SEL (0x7fL<<17) /* Bit 23..17: EEPROM Device Select */
#define PCI_VPD_ROM_SZ (7L<<14) /* Bit 16..14: VPD ROM Size */
/* Bit 13..12: reserved */
#define PCI_PATCH_DIR (0xfL<<8) /* Bit 11.. 8: Ext Patches dir 3..0 */
#define PCI_PATCH_DIR_3 BIT_11
#define PCI_PATCH_DIR_2 BIT_10
#define PCI_PATCH_DIR_1 BIT_9
#define PCI_PATCH_DIR_0 BIT_8
#define PCI_EXT_PATCHS (0xfL<<4) /* Bit 7.. 4: Extended Patches 3..0 */
#define PCI_EXT_PATCH_3 BIT_7
#define PCI_EXT_PATCH_2 BIT_6
#define PCI_EXT_PATCH_1 BIT_5
#define PCI_EXT_PATCH_0 BIT_4
#define PCI_EN_DUMMY_RD BIT_3 /* Enable Dummy Read */
#define PCI_REV_DESC BIT_2 /* Reverse Desc. Bytes */
/* Bit 1: reserved */
#define PCI_USEDATA64 BIT_0 /* Use 64Bit Data bus ext */
/* Power Management Region */
/* PCI_PM_CAP_REG 16 bit Power Management Capabilities */
#define PCI_PME_SUP_MSK (0x1f<<11) /* Bit 15..11: PM Event Support Mask */
#define PCI_PME_D3C_SUP BIT_15S /* PME from D3cold Support (if Vaux) */
#define PCI_PME_D3H_SUP BIT_14S /* PME from D3hot Support */
#define PCI_PME_D2_SUP BIT_13S /* PME from D2 Support */
#define PCI_PME_D1_SUP BIT_12S /* PME from D1 Support */
#define PCI_PME_D0_SUP BIT_11S /* PME from D0 Support */
#define PCI_PM_D2_SUP BIT_10S /* D2 Support in 33 MHz mode */
#define PCI_PM_D1_SUP BIT_9S /* D1 Support */
/* Bit 8.. 6: reserved */
#define PCI_PM_DSI BIT_5S /* Device Specific Initialization */
#define PCI_PM_APS BIT_4S /* Auxialiary Power Source */
#define PCI_PME_CLOCK BIT_3S /* PM Event Clock */
#define PCI_PM_VER_MSK 7 /* Bit 2.. 0: PM PCI Spec. version */
/* PCI_PM_CTL_STS 16 bit Power Management Control/Status */
#define PCI_PME_STATUS BIT_15S /* PME Status (YUKON only) */
#define PCI_PM_DAT_SCL (3<<13) /* Bit 14..13: Data Reg. scaling factor */
#define PCI_PM_DAT_SEL (0xf<<9) /* Bit 12.. 9: PM data selector field */
#define PCI_PME_EN BIT_8S /* Enable PME# generation (YUKON only) */
/* Bit 7.. 2: reserved */
#define PCI_PM_STATE_MSK 3 /* Bit 1.. 0: Power Management State */
#define PCI_PM_STATE_D0 0 /* D0: Operational (default) */
#define PCI_PM_STATE_D1 1 /* D1: (YUKON only) */
#define PCI_PM_STATE_D2 2 /* D2: (YUKON only) */
#define PCI_PM_STATE_D3 3 /* D3: HOT, Power Down and Reset */
/* VPD Region */
/* PCI_VPD_ADR_REG 16 bit VPD Address Register */
#define PCI_VPD_FLAG BIT_15S /* starts VPD rd/wr cycle */
#define PCI_VPD_ADR_MSK 0x7fffL /* Bit 14.. 0: VPD address mask */
/* Control Register File (Address Map) */
/*
* Bank 0
*/
#define B0_RAP 0x0000 /* 8 bit Register Address Port */
/* 0x0001 - 0x0003: reserved */
#define B0_CTST 0x0004 /* 16 bit Control/Status register */
#define B0_LED 0x0006 /* 8 Bit LED register */
#define B0_POWER_CTRL 0x0007 /* 8 Bit Power Control reg (YUKON only) */
#define B0_ISRC 0x0008 /* 32 bit Interrupt Source Register */
#define B0_IMSK 0x000c /* 32 bit Interrupt Mask Register */
#define B0_HWE_ISRC 0x0010 /* 32 bit HW Error Interrupt Src Reg */
#define B0_HWE_IMSK 0x0014 /* 32 bit HW Error Interrupt Mask Reg */
#define B0_SP_ISRC 0x0018 /* 32 bit Special Interrupt Source Reg */
/* 0x001c: reserved */
/* B0 XMAC 1 registers (GENESIS only) */
#define B0_XM1_IMSK 0x0020 /* 16 bit r/w XMAC 1 Interrupt Mask Register*/
/* 0x0022 - 0x0027: reserved */
#define B0_XM1_ISRC 0x0028 /* 16 bit ro XMAC 1 Interrupt Status Reg */
/* 0x002a - 0x002f: reserved */
#define B0_XM1_PHY_ADDR 0x0030 /* 16 bit r/w XMAC 1 PHY Address Register */
/* 0x0032 - 0x0033: reserved */
#define B0_XM1_PHY_DATA 0x0034 /* 16 bit r/w XMAC 1 PHY Data Register */
/* 0x0036 - 0x003f: reserved */
/* B0 XMAC 2 registers (GENESIS only) */
#define B0_XM2_IMSK 0x0040 /* 16 bit r/w XMAC 2 Interrupt Mask Register*/
/* 0x0042 - 0x0047: reserved */
#define B0_XM2_ISRC 0x0048 /* 16 bit ro XMAC 2 Interrupt Status Reg */
/* 0x004a - 0x004f: reserved */
#define B0_XM2_PHY_ADDR 0x0050 /* 16 bit r/w XMAC 2 PHY Address Register */
/* 0x0052 - 0x0053: reserved */
#define B0_XM2_PHY_DATA 0x0054 /* 16 bit r/w XMAC 2 PHY Data Register */
/* 0x0056 - 0x005f: reserved */
/* BMU Control Status Registers */
#define B0_R1_CSR 0x0060 /* 32 bit BMU Ctrl/Stat Rx Queue 1 */
#define B0_R2_CSR 0x0064 /* 32 bit BMU Ctrl/Stat Rx Queue 2 */
#define B0_XS1_CSR 0x0068 /* 32 bit BMU Ctrl/Stat Sync Tx Queue 1 */
#define B0_XA1_CSR 0x006c /* 32 bit BMU Ctrl/Stat Async Tx Queue 1*/
#define B0_XS2_CSR 0x0070 /* 32 bit BMU Ctrl/Stat Sync Tx Queue 2 */
#define B0_XA2_CSR 0x0074 /* 32 bit BMU Ctrl/Stat Async Tx Queue 2*/
/* 0x0078 - 0x007f: reserved */
/*
* Bank 1
* - completely empty (this is the RAP Block window)
* Note: if RAP = 1 this page is reserved
*/
/*
* Bank 2
*/
/* NA reg = 48 bit Network Address Register, 3x16 or 8x8 bit readable */
#define B2_MAC_1 0x0100 /* NA reg MAC Address 1 */
/* 0x0106 - 0x0107: reserved */
#define B2_MAC_2 0x0108 /* NA reg MAC Address 2 */
/* 0x010e - 0x010f: reserved */
#define B2_MAC_3 0x0110 /* NA reg MAC Address 3 */
/* 0x0116 - 0x0117: reserved */
#define B2_CONN_TYP 0x0118 /* 8 bit Connector type */
#define B2_PMD_TYP 0x0119 /* 8 bit PMD type */
#define B2_MAC_CFG 0x011a /* 8 bit MAC Configuration / Chip Revision */
#define B2_CHIP_ID 0x011b /* 8 bit Chip Identification Number */
/* Eprom registers are currently of no use */
#define B2_E_0 0x011c /* 8 bit EPROM Byte 0 (ext. SRAM size */
#define B2_E_1 0x011d /* 8 bit EPROM Byte 1 (PHY type) */
#define B2_E_2 0x011e /* 8 bit EPROM Byte 2 */
#define B2_E_3 0x011f /* 8 bit EPROM Byte 3 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -