📄 piix4.h
字号:
#define PIIX4_ICW3S_SID_SHF 0
#define PIIX4_ICW3S_SID_MSK (MSK(3) << PIIX4_ICW3S_SID_SHF)
#define PIIX4_ICW3S_SID_DEF 0x2
#define PIIX4_ICW4_SFNM_SHF 4
#define PIIX4_ICW4_SFNM_MSK (MSK(1) << PIIX4_ICW4_SFNM_SHF)
#define PIIX4_ICW4_SFNM_BIT PIIX4_ICW4_SFNM_MSK
#define PIIX4_ICW4_AEOI_SHF 1
#define PIIX4_ICW4_AEOI_MSK (MSK(1) << PIIX4_ICW4_AEOI_SHF)
#define PIIX4_ICW4_UPMODE_SHF 0
#define PIIX4_ICW4_UPMODE_MSK (MSK(1) << PIIX4_ICW4_UPMODE_SHF)
#define PIIX4_ICW4_UPMODE_BIT PIIX4_ICW4_UPMODE_MSK
#define PIIX4_OCW2_CODE_SHF 5
#define PIIX4_OCW2_CODE_MSK (MSK(3) << PIIX4_OCW2_CODE_SHF)
#define PIIX4_OCW2_CODE_NSEOI 0x1
#define PIIX4_OCW2_CODE_SEOI 0x3
#define PIIX4_OCW2_CODE_RNSEOI 0x5
#define PIIX4_OCW2_CODE_RAEOIS 0x4
#define PIIX4_OCW2_CODE_RAEOIC 0x0
#define PIIX4_OCW2_CODE_RSEOI 0x7
#define PIIX4_OCW2_CODE_SP 0x6
#define PIIX4_OCW2_OCWSEL_SHF 3
#define PIIX4_OCW2_OCWSEL_MSK (MSK(2) << PIIX4_OCW2_OCWSEL_SHF)
#define PIIX4_OCW2_OCWSEL_2 0
#define PIIX4_OCW2_ILS_SHF 0
#define PIIX4_OCW2_ILS_MSK (MSK(3) << PIIX4_OCW2_ILS_SHF)
#define PIIX4_OCW2_ILS_0_8 0
#define PIIX4_OCW2_ILS_1_9 1
#define PIIX4_OCW2_ILS_2_10 2
#define PIIX4_OCW2_ILS_3_11 3
#define PIIX4_OCW2_ILS_4_12 4
#define PIIX4_OCW2_ISL_5_13 5
#define PIIX4_OCW2_ISL_6_14 6
#define PIIX4_OCW2_ISL_7_15 7
#define PIIX4_OCW3_SMM_SHF 6
#define PIIX4_OCW3_SMM_MSK (MSK(1) << PIIX4_OCW3_SMM_SHF)
#define PIIX4_OCW3_SMM_BIT PIIX4_OCW3_SMM_MSK
#define PIIX4_OCW3_ESMM_SHF 5
#define PIIX4_OCW3_ESMM_MSK (MSK(1) << PIIX4_OCW3_ESMM_SHF)
#define PIIX4_OCW3_ESMM_BIT PIIX4_OCW3_ESMM_MSK
#define PIIX4_OCW3_OCWSEL_SHF 3
#define PIIX4_OCW3_OCWSEL_MSK (MSK(2) << PIIX4_OCW3_OCWSEL_SHF)
#define PIIX4_OCW3_OCWSEL_3 0x1
#define PIIX4_OCW3_PMC_SHF 2
#define PIIX4_OCW3_PMC_MSK (MSK(1) << PIIX4_OCW3_PMC_SHF)
#define PIIX4_OCW3_PMC_BIT PIIX4_OCW3_PMC_MSK
#define PIIX4_OCW3_RRC_SHF 0
#define PIIX4_OCW3_RRC (MSK(2) << PIIX4_OCW3_RRC_SHF)
#define PIIX4_OCW3_RRC_IRR 0x2
#define PIIX4_OCW3_RRC_ISR 0x3
#define PIIX4_ELCR1_IRQ7LEVEL_SHF 7
#define PIIX4_ELCR1_IRQ7LEVEL_MSK (MSK(1) << PIIX4_ELCR1_IRQ7LEVEL_SHF)
#define PIIX4_ELCR1_IRQ7LEVEL_BIT PIIX4_ELCR1_IRQ7LEVEL_MSK
#define PIIX4_ELCR1_IRQ6LEVEL_SHF 6
#define PIIX4_ELCR1_IRQ6LEVEL_MSK (MSK(1) << PIIX4_ELCR1_IRQ6LEVEL_SHF)
#define PIIX4_ELCR1_IRQ6LEVEL_BIT PIIX4_ELCR1_IRQ6LEVEL_MSK
#define PIIX4_ELCR1_IRQ5LEVEL_SHF 5
#define PIIX4_ELCR1_IRQ5LEVEL_MSK (MSK(1) << PIIX4_ELCR1_IRQ5LEVEL_SHF)
#define PIIX4_ELCR1_IRQ5LEVEL_BIT PIIX4_ELCR1_IRQ5LEVEL_MSK
#define PIIX4_ELCR1_IRQ4LEVEL_SHF 4
#define PIIX4_ELCR1_IRQ4LEVEL_MSK (MSK(1) << PIIX4_ELCR1_IRQ4LEVEL_SHF)
#define PIIX4_ELCR1_IRQ4LEVEL_BIT PIIX4_ELCR1_IRQ4LEVEL_MSK
#define PIIX4_ELCR1_IRQ3LEVEL_SHF 3
#define PIIX4_ELCR1_IRQ3LEVEL_MSK (MSK(1) << PIIX4_ELCR1_IRQ3LEVEL_SHF)
#define PIIX4_ELCR1_IRQ3LEVEL_BIT PIIX4_ELCR1_IRQ3LEVEL_MSK
#define PIIX4_ELCR2_IRQ15LEVEL_SHF 7
#define PIIX4_ELCR2_IRQ15LEVEL_MSK (MSK(1) << PIIX4_ELCR2_IRQ15LEVEL_SHF)
#define PIIX4_ELCR2_IRQ15LEVEL_BIT PIIX4_ELCR2_IRQ15LEVEL_MSK
#define PIIX4_ELCR2_IRQ14LEVEL_SHF 6
#define PIIX4_ELCR2_IRQ14LEVEL_MSK (MSK(1) << PIIX4_ELCR2_IRQ14LEVEL_SHF)
#define PIIX4_ELCR2_IRQ14LEVEL_BIT PIIX4_ELCR2_IRQ14LEVEL_MSK
#define PIIX4_ELCR2_IRQ12LEVEL_SHF 4
#define PIIX4_ELCR2_IRQ12LEVEL_MSK (MSK(1) << PIIX4_ELCR2_IRQ12LEVEL_SHF)
#define PIIX4_ELCR2_IRQ12LEVEL_BIT PIIX4_ELCR2_IRQ12LEVEL_MSK
#define PIIX4_ELCR2_IRQ11LEVEL_SHF 3
#define PIIX4_ELCR2_IRQ11LEVEL_MSK (MSK(1) << PIIX4_ELCR2_IRQ11LEVEL_SHF)
#define PIIX4_ELCR2_IRQ11LEVEL_BIT PIIX4_ELCR2_IRQ11LEVEL_MSK
#define PIIX4_ELCR2_IRQ10LEVEL_SHF 2
#define PIIX4_ELCR2_IRQ10LEVEL_MSK (MSK(1) << PIIX4_ELCR2_IRQ10LEVEL_SHF)
#define PIIX4_ELCR2_IRQ10LEVEL_BIT PIIX4_ELCR2_IRQ10LEVEL_MSK
#define PIIX4_ELCR2_IRQ9LEVEL_SHF 1
#define PIIX4_ELCR2_IRQ9LEVEL_MSK (MSK(1) << PIIX4_ELCR2_IRQ9LEVEL_SHF)
#define PIIX4_ELCR2_IRQ9LEVEL_BIT PIIX4_ELCR2_IRQ9LEVEL_MSK
/* Timer countrol word */
#define PIIX4_TCW_CS_SHF 6
#define PIIX4_TCW_CS_MSK (MSK(2) << PIIX4_TCW_CS_SHF)
#define PIIX4_TCW_CS_0 0
#define PIIX4_TCW_CS_1 1
#define PIIX4_TCW_CS_2 2
#define PIIX4_TCW_CS_RB 3
#define PIIX4_TCW_RW_SHF 4
#define PIIX4_TCW_RW_MSK (MSK(2) << PIIX4_TCW_RW_SHF)
#define PIIX4_TCW_RW_CL 0
#define PIIX4_TCW_RW_LSB 1
#define PIIX4_TCW_RW_MSB 2
#define PIIX4_TCW_RW_16 3
#define PIIX4_TCW_MODE_SHF 1
#define PIIX4_TCW_MODE_MSK (MSK(3) << PIIX4_TCW_MODE_SHF)
#define PIIX4_TCW_MODE_0 0
#define PIIX4_TCW_MODE_1 1
#define PIIX4_TCW_MODE_2 2
#define PIIX4_TCW_MODE_3 3
#define PIIX4_TCW_MODE_4 4
#define PIIX4_TCW_MODE_5 5
#define PIIX4_TCW_BCD_SHF 0
#define PIIX4_TCW_BCD_MSK (MSK(1) << PIIX4_TCW_BCD_SHF)
#define PIIX4_TCW_BCD_BIT PIIX4_TCW_BCD_MSK
/* Power Management Control Register */
#define PIIX4_PMCNTRL_SE_SHF 13
#define PIIX4_PMCNTRL_SE_MSK (MSK(1) << PIIX4_PMCNTRL_SE_SHF)
#define PIIX4_PMCNTRL_SE_BIT PIIX4_PMCNTRL_SE_MSK
#define PIIX4_PMCNTRL_TYPE_SHF 10
#define PIIX4_PMCNTRL_TYPE_MSK (MSK(3) << PIIX4_PMCNTRL_TYPE_SHF)
#define PIIX4_PMCNTRL_TYPE_STD 0
#define PIIX4_PMCNTRL_TYPE_STR 1
#define PIIX4_PMCNTRL_TYPE_POSCL 2
#define PIIX4_PMCNTRL_TYPE_POSCCL 3
#define PIIX4_PMCNTRL_TYPE_POS 4
#define PIIX4_PMCNTRL_TYPE_WORK 5
/* Global Control Register */
#define PIIX4_GLBCTL_LID_POL_SHF 25
#define PIIX4_GLBCTL_LID_POL_MSK (MSK(1) << PIIX4_GLBCTL_LID_POL_SHF)
#define PIIX4_GLBCTL_LID_POL_BIT PIIX4_GLBCTL_LID_POL_MSK
#define PIIX4_GLBCTL_EOS_SHF 16
#define PIIX4_GLBCTL_EOS_MSK (MSK(1) << PIIX4_GLBCTL_EOS_SHF)
#define PIIX4_GLBCTL_EOS_BIT PIIX4_GLBCTL_EOS_MSK
#define PIIX4_GLBCTL_GSTBY_CNT_SHF 9
#define PIIX4_GLBCTL_GSTBY_CNT_MSK (MSK(7) << PIIX4_GLBCTL_GSTBY_CNT_SHF)
#define PIIX4_GLBCTL_THRM_POL_SHF 2
#define PIIX4_GLBCTL_THRM_POL_MSK (MSK(1) << PIIX4_GLBCTL_THRM_POL_SHF)
#define PIIX4_GLBCTL_THRM_POL_BIT PIIX4_GLBCTL_THRM_POL_MSK
#define PIIX4_GLBCTL_SMI_EN_SHF 0
#define PIIX4_GLBCTL_SMI_EN_MSK (MSK(1) << PIIX4_GLBCTL_SMI_EN_SHF)
#define PIIX4_GLBCTL_SMI_EN_BIT PIIX4_GLBCTL_SMI_EN_MSK
/* SMB Host Control register */
#define PIIX4_SMBHSTCNT_START_SHF 6
#define PIIX4_SMBHSTCNT_START_MSK (MSK(1) << PIIX4_SMBHSTCNT_START_SHF)
#define PIIX4_SMBHSTCNT_START_BIT PIIX4_SMBHSTCNT_START_MSK
#define PIIX4_SMBHSTCNT_CP_SHF 2
#define PIIX4_SMBHSTCNT_CP_MSK (MSK(3) << PIIX4_SMBHSTCNT_CP_SHF)
#define PIIX4_SMBHSTCNT_CP_QRW 0
#define PIIX4_SMBHSTCNT_CP_BRW 1
#define PIIX4_SMBHSTCNT_CP_BDRW 2
#define PIIX4_SMBHSTCNT_CP_WDRW 3
#define PIIX4_SMBHSTCNT_CP_BLRW 5
#define PIIX4_SMBHSTCNT_KILL_SHF 1
#define PIIX4_SMBHSTCNT_KILL_MSK (MSK(1) << PIIX4_SMBHSTCNT_KILL_SHF)
#define PIIX4_SMBHSTCNT_KILL_BIT PIIX4_SMBHSTCNT_KILL_MSK
#define PIIX4_SMBHSTCNT_IE_SHF 0
#define PIIX4_SMBHSTCNT_IE_MSK (MSK(1) << PIIX4_SMBHSTCNT_IE_SHF)
#define PIIX4_SMBHSTCNT_IE_BIT PIIX4_SMBHSTCNT_IE_MSK
/* SMB Host Status register */
#define PIIX4_SMBHSTSTS_FAILED_SHF 4
#define PIIX4_SMBHSTSTS_FAILED_MSK (MSK(1) << PIIX4_SMBHSTSTS_FAILED_SHF)
#define PIIX4_SMBHSTSTS_FAILED_BIT PIIX4_SMBHSTSTS_FAILED_MSK
#define PIIX4_SMBHSTSTS_COL_SHF 3
#define PIIX4_SMBHSTSTS_COL_MSK (MSK(1) << PIIX4_SMBHSTSTS_COL_SHF)
#define PIIX4_SMBHSTSTS_COL_BIT PIIX4_SMBHSTSTS_COL_MSK
#define PIIX4_SMBHSTSTS_DE_SHF 2
#define PIIX4_SMBHSTSTS_DE_MSK (MSK(1) << PIIX4_SMBHSTSTS_DE_SHF)
#define PIIX4_SMBHSTSTS_DE_BIT PIIX4_SMBHSTSTS_DE_MSK
#define PIIX4_SMBHSTSTS_INT_SHF 1
#define PIIX4_SMBHSTSTS_INT_MSK (MSK(1) << PIIX4_SMBHSTSTS_INT_SHF)
#define PIIX4_SMBHSTSTS_INT_BIT PIIX4_SMBHSTSTS_INT_MSK
#define PIIX4_SMBHSTSTS_BUSY_SHF 0
#define PIIX4_SMBHSTSTS_BUSY_MSK (MSK(1) << PIIX4_SMBHSTSTS_BUSY_SHF)
#define PIIX4_SMBHSTSTS_BUSY_BIT PIIX4_SMBHSTSTS_BUSY_MSK
/* Host Address register */
#define PIIX4_SMBHSTADD_ADDR_SHF 1
#define PIIX4_SMBHSTADD_ADDR_MSK (MSK(7) << PIIX4_SMBHSTADD_ADDR_SHF)
#define PIIX4_SMBHSTADD_READ_SHF 0
#define PIIX4_SMBHSTADD_READ_MSK (MSK(1) << PIIX4_SMBHSTADD_READ_SHF)
#define PIIX4_SMBHSTADD_READ_BIT PIIX4_SMBHSTADD_READ_MSK
/* General Purpose Enable Register (TBD : Add remaining fields) */
#define PIIX4_GPEN_GPIEN_SHF 9
#define PIIX4_GPEN_GPIEN_MSK (MSK(1) << PIIX4_GPEN_GPIEN_SHF)
#define PIIX4_GPEN_GPIEN_BIT PIIX4_GPEN_GPIEN_MSK
/************************************************************************
* Misc
************************************************************************/
/* PIIX4 is a 4-function PCI device */
#define PIIX4_PCI_FUNCTION_BRIDGE 0
#define PIIX4_PCI_FUNCTION_IDE 1
#define PIIX4_PCI_FUNCTION_USB 2
#define PIIX4_PCI_FUNCTION_POWER 3
/* BAR positions for fixed BARs */
#define PIIX4_PCI_BAR_BRIDGE_POS PCI_BAR(0)
#define PIIX4_PCI_BAR_POWER_POS 0x40
#define PIIX4_PCI_BAR_SMB_POS 0x90
/* Fixed I/O range mapping */
#define PIIX4_IO_BRIDGE_START 0
#define PIIX4_IO_BRIDGE_SIZE 0x1000
#define PIIX4_IO_POWER_START 0x1000
#define PIIX4_IO_POWER_SIZE 0x100
#define PIIX4_IO_SMB_START 0x1100
#define PIIX4_IO_SMB_SIZE 0x100
/* Number of IRQs supported */
#define PIIX4_IRQ_COUNT 16
/* Timer period (ns) */
#define PIIX4_TIMER_PERIOD_NS 838
#endif /* #ifndef PIIX4_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -