📄 malta.h
字号:
#define MALTA_STATUS_S54_MSK (MSK(1) << MALTA_STATUS_S54_SHF)#define MALTA_STATUS_S54_SET MALTA_STATUS_S54_MSK/* bit 2 : S53 */#define MALTA_STATUS_S53_SHF 2#define MALTA_STATUS_S53_MSK (MSK(1) << MALTA_STATUS_S53_SHF)#define MALTA_STATUS_S53_SET MALTA_STATUS_S53_MSK/* bit 1: BIGEND */#define MALTA_STATUS_BIGEND_SHF 1#define MALTA_STATUS_BIGEND_MSK (MSK(1) << MALTA_STATUS_BIGEND_SHF)#define MALTA_STATUS_BIGEND_BIT MALTA_STATUS_BIGEND_MSK/******** reg: JMPRS ********//* bit 4:2: PCICLK */#define MALTA_JMPRS_PCICLK_SHF 2#define MALTA_JMPRS_PCICLK_MSK (MSK(3) << MALTA_JMPRS_PCICLK_SHF)#define MALTA_JMPRS_PCICLK_10MHZ 7#define MALTA_JMPRS_PCICLK_12_5MHZ 4#define MALTA_JMPRS_PCICLK_16_67MHZ 5#define MALTA_JMPRS_PCICLK_20MHZ 1#define MALTA_JMPRS_PCICLK_25MHZ 2#define MALTA_JMPRS_PCICLK_30MHZ 3#define MALTA_JMPRS_PCICLK_33_33MHZ 0#define MALTA_JMPRS_PCICLK_37_5MHZ 6/* bit 1: EELOCK */#define MALTA_JMPRS_EELOCK_SHF 1#define MALTA_JMPRS_EELOCK_MSK (MSK(1) << MALTA_JMPRS_EELOCK_SHF)#define MALTA_JMPRS_EELOCK_BIT MALTA_JMPRS_EELOCK_MSK/******** reg: SOFTRES ********//* bits 7:0: RESET */#define MALTA_SOFTRES_RESET_SHF 0#define MALTA_SOFTRES_RESET_MSK (MSK(8) << MALTA_SOFTRES_RESET_SHF)#define MALTA_SOFTRES_RESET_GORESET 0x42 /* magic value to reset */ /******** reg: BRKRES ********//* bits 7:0: WIDTH */#define MALTA_BRKRES_WIDTH_SHF 0#define MALTA_BRKRES_WIDTH_MSK (MSK(8) << MALTA_BRKRES_WIDTH_SHF)/******** reg: GPOUT ********//* bits 7:0: OUTVAL */#define MALTA_GPOUT_OUTVAL_SHF 0#define MALTA_GPOUT_OUTVAL_MSK (MSK(8) << MALTA_GPOUT_OUTVAL_SHF)/******** reg: GPINP ********//* bits 7:0: INPVAL */#define MALTA_GPINP_INPVAL_SHF 0#define MALTA_GPINP_INPVAL_MSK (MSK(8) << MALTA_GPINP_INPVAL_SHF)/******** reg: I2CINP ********/#define MALTA_I2CINP_I2CSCL_SHF 1#define MALTA_I2CINP_I2CSCL_MSK (MSK(1) << MALTA_I2CINP_I2CSCL_SHF)#define MALTA_I2CINP_I2CSCL_BIT MALTA_I2CINP_I2CSCL_MSK#define MALTA_I2CINP_I2CSDA_SHF 0#define MALTA_I2CINP_I2CSDA_MSK (MSK(1) << MALTA_I2CINP_I2CSDA_SHF)#define MALTA_I2CINP_I2CSDA_BIT MALTA_I2CINP_I2CSDA_MSK/******** reg: I2COE ********/#define MALTA_I2COE_I2CSCL_SHF 1#define MALTA_I2COE_I2CSCL_MSK (MSK(1) << MALTA_I2COE_I2CSCL_SHF)#define MALTA_I2COE_I2CSCL_BIT MALTA_I2COE_I2CSCL_MSK#define MALTA_I2COE_I2CSDA_SHF 0#define MALTA_I2COE_I2CSDA_MSK (MSK(1) << MALTA_I2COE_I2CSDA_SHF)#define MALTA_I2COE_I2CSDA_BIT MALTA_I2COE_I2CSDA_MSK/******** reg: I2COUT ********/#define MALTA_I2COUT_I2CSCL_SHF 1#define MALTA_I2COUT_I2CSCL_MSK (MSK(1) << MALTA_I2COUT_I2CSCL_SHF)#define MALTA_I2COUT_I2CSCL_BIT MALTA_I2COUT_I2CSCL_MSK#define MALTA_I2COUT_I2CSDA_SHF 0#define MALTA_I2COUT_I2CSDA_MSK (MSK(1) << MALTA_I2COUT_I2CSDA_SHF)#define MALTA_I2COUT_I2CSDA_BIT MALTA_I2COUT_I2CSDA_MSK/******** reg: I2CSEL ********/#define MALTA_I2CSEL_FPGA_SHF 0#define MALTA_I2CSEL_FPGA_MSK (MSK(1) << MALTA_I2CSEL_FPGA_SHF)#define MALTA_I2CSEL_FPGA_BIT MALTA_I2CSEL_FPGA_MSK/************************************************************************ * PCI definitions ************************************************************************//* IO addresses (Physical addresses) for UINT8 access. * Macro MALTA_PCI_IO_ADDR8 swaps the 2 lsb bits of the addr in case * CPU is running Big Endian. * This is since PIIX4 is a PCI device, and PCI is always Little Endian. */#ifndef _ASSEMBLER_extern UINT32 malta_pci_io_base;#endif#define MALTA_PCI0_IO_BASE malta_pci_io_base#define MALTA_PCI0_ADDR( addr ) (MALTA_PCI0_IO_BASE + (addr))#define MALTA_PCI_IO_ADDR8( addr ) SWAP_BYTEADDR_EL(MALTA_PCI0_ADDR(addr))/* PIIX4 South Bridge IO access (KSEG1) *//* piix4_pci_io_base is declared locally to get better code generation: *//* volatile UINT8 *piix4_pci_io_base = *//* (volatile UINT8 *)KSEG1(MALTA_PCI0_IO_BASE + PIIX4_IO_BRIDGE_START) */#define MALTA_PIIX4_IO8( addr ) piix4_pci_io_base[ SWAP_BYTEADDR_EL(addr) ]/* SMSC SuperIO access (KSEG1). Same base as PIIX4 */#define MALTA_SUPER_IO8( addr ) MALTA_PIIX4_IO8( addr )/* PIIX4 RTC (Physical addresses). * Corrected for endianness ! */#define MALTA_RTCADR MALTA_PCI_IO_ADDR8(0x70)#define MALTA_RTCDAT MALTA_PCI_IO_ADDR8(0x71)/* SuperIO UARTs (Physical addresses). * Not corrected for endianness (address swapping) since this is done by * driver. */#define MALTA_SMSC_COM1_ADR 0x3f8#define MALTA_SMSC_COM2_ADR 0x2f8#define MALTA_UART0ADR MALTA_PCI0_ADDR(MALTA_SMSC_COM1_ADR)#define MALTA_UART1ADR MALTA_PCI0_ADDR(MALTA_SMSC_COM2_ADR)/* SuperIO Parallel port (Physical addresses). * Not corrected for endianness (address swapping) since this is done by * driver. */#define MALTA_SMSC_1284_ADR 0x378#define MALTA_1284ADR MALTA_PCI0_ADDR(MALTA_SMSC_1284_ADR)/* SuperIO Floppy disk (Physical addresses). * Not corrected for endianness (address swapping) since this is done by * driver. */#define MALTA_SMSC_FDD_ADR 0x3f0#define MALTA_FDDADR MALTA_PCI0_ADDR(MALTA_SMSC_FDD_ADR)/* SuperIO Keyboard, Mouse (Physical addresses). * Not corrected for endianness (address swapping) since this is done by * driver. */#define MALTA_SMSC_KYBD_ADR 0x60 /* Fixed 0x60, 0x64 */#define MALTA_KYBDADR MALTA_PCI0_ADDR(MALTA_SMSC_KYBD_ADR)#define MALTA_SMSC_MOUSE_ADR MALTA_SMSC_KYBD_ADR#define MALTA_MOUSEADR MALTA_KYBDADR/* ADP bit used as IDSEL during configuration cycles */#define MALTA_IDSEL_SLOT1 28#define MALTA_IDSEL_SLOT2 29#define MALTA_IDSEL_SLOT3 30#define MALTA_IDSEL_SLOT4 31#define MALTA_IDSEL_PIIX4 20#define MALTA_IDSEL_AM79C973 21#define MALTA_IDSEL_CRYSTAL 22/* PCI device numbers */#define MALTA_DEVNUM_PIIX4 PCI_IDSEL2DEVNUM(MALTA_IDSEL_PIIX4)#define MALTA_DEVNUM_AM79C973 PCI_IDSEL2DEVNUM(MALTA_IDSEL_AM79C973)#define MALTA_DEVNUM_CRYSTAL PCI_IDSEL2DEVNUM(MALTA_IDSEL_CRYSTAL)#define MALTA_DEVNUM_PCI_SLOT1 PCI_IDSEL2DEVNUM(MALTA_IDSEL_SLOT1)#define MALTA_DEVNUM_PCI_SLOT2 PCI_IDSEL2DEVNUM(MALTA_IDSEL_SLOT2)#define MALTA_DEVNUM_PCI_SLOT3 PCI_IDSEL2DEVNUM(MALTA_IDSEL_SLOT3)#define MALTA_DEVNUM_PCI_SLOT4 PCI_IDSEL2DEVNUM(MALTA_IDSEL_SLOT4)/**** IRQ lines for Malta devices ****//* PCI INTA..D */#define MALTA_INTLINE_PCIA 10#define MALTA_INTLINE_PCIB 10#define MALTA_INTLINE_PCIC 11#define MALTA_INTLINE_PCID 11/* PCI slot 1 */#define MALTA_INTLINE_SLOT1_A MALTA_INTLINE_PCIA#define MALTA_INTLINE_SLOT1_B MALTA_INTLINE_PCIB#define MALTA_INTLINE_SLOT1_C MALTA_INTLINE_PCIC#define MALTA_INTLINE_SLOT1_D MALTA_INTLINE_PCID/* PCI slot 2 */#define MALTA_INTLINE_SLOT2_A MALTA_INTLINE_PCIB#define MALTA_INTLINE_SLOT2_B MALTA_INTLINE_PCIC#define MALTA_INTLINE_SLOT2_C MALTA_INTLINE_PCID#define MALTA_INTLINE_SLOT2_D MALTA_INTLINE_PCIA/* PCI slot 3 */#define MALTA_INTLINE_SLOT3_A MALTA_INTLINE_PCIC#define MALTA_INTLINE_SLOT3_B MALTA_INTLINE_PCID#define MALTA_INTLINE_SLOT3_C MALTA_INTLINE_PCIA#define MALTA_INTLINE_SLOT3_D MALTA_INTLINE_PCIB/* PCI slot 4 */#define MALTA_INTLINE_SLOT4_A MALTA_INTLINE_PCID#define MALTA_INTLINE_SLOT4_B MALTA_INTLINE_PCIA#define MALTA_INTLINE_SLOT4_C MALTA_INTLINE_PCIB#define MALTA_INTLINE_SLOT4_D MALTA_INTLINE_PCIC/* PIIX4/SuperIO devices */#define MALTA_INTLINE_KYBD 1#define MALTA_INTLINE_TTY1 3#define MALTA_INTLINE_TTY0 4#define MALTA_INTLINE_FDD 6#define MALTA_INTLINE_1284 7#define MALTA_INTLINE_MOUSE 12/* Local PCI devices */#define MALTA_INTLINE_79C973 MALTA_INTLINE_PCIB#define MALTA_INTLINE_4281 MALTA_INTLINE_PCIC#define MALTA_INTLINE_PIIX4_USB MALTA_INTLINE_PCID#define MALTA_INTLINE_PIIX4_SMB 9/**** CPU interrupt lines used by devices ****/#define MALTA_CPUINT_PIIX4 (S_StatusIM2 - S_StatusIM)#define MALTA_CPUINT_COREHI (S_StatusIM5 - S_StatusIM)/**** CPU interrupt line used for SMI ****/#define MALTA_CPUINT_SMI (S_StatusIM3 - S_StatusIM)/************************************************************************ * MISC definitions ************************************************************************//* Lowest possible frequency for cpu (used during init for conservative * setup of timing (e.g. SDRAM refresh) */#define MALTA_CPUFREQ_LOWEST_MHZ 2#endif /* #ifndef MALTA_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -