it8172.h

来自「国产CPU-龙芯(loongson)BIOS源代码」· C头文件 代码 · 共 522 行 · 第 1/2 页

H
522
字号
#define IT_SCR0_BASE                            0x12000#define IT_SCR1_BASE                            0x12800#define IT_PP_BASE                              0x13000#define IT_I2C_BASE                             0x14000#define IT_CIR1_BASE                            0x15000/* * IT8172 Smart Card Reader offsets from IT_SCR*_BASE */#define IT_SCR_SFR                              0x08#define IT_SCR_SCDR                             0x09/* * IT8172 IT_SCR_SFR bit definition & mask */#define IT_SCR_SFR_GATE_UART                    0x40#define IT_SCR_SFR_GATE_UART_BIT                6#define IT_SCR_SFR_GATE_UART_OFF                0#define IT_SCR_SFR_GATE_UART_ON                 1#define IT_SCR_SFR_FET_CHARGE                   0x30#define IT_SCR_SFR_FET_CHARGE_BIT               4#define IT_SCR_SFR_FET_CHARGE_3_3_US            3#define IT_SCR_SFR_FET_CHARGE_13_US             2#define IT_SCR_SFR_FET_CHARGE_53_US             1#define IT_SCR_SFR_FET_CHARGE_213_US            0#define IT_SCR_SFR_CARD_FREQ                    0x0C#define IT_SCR_SFR_CARD_FREQ_BIT                2#define IT_SCR_SFR_CARD_FREQ_STOP               3#define IT_SCR_SFR_CARD_FREQ_3_5_MHZ            0#define IT_SCR_SFR_CARD_FREQ_7_1_MHZ            2#define IT_SCR_SFR_CARD_FREQ_96_DIV_MHZ         1#define IT_SCR_SFR_FET_ACTIVE                   0x02#define IT_SCR_SFR_FET_ACTIVE_BIT               1#define IT_SCR_SFR_FET_ACTIVE_INVERT            0#define IT_SCR_SFR_FET_ACTIVE_NONINVERT         1#define IT_SCR_SFR_ENABLE                       0x01#define IT_SCR_SFR_ENABLE_BIT                   0#define IT_SCR_SFR_ENABLE_OFF                   0#define IT_SCR_SFR_ENABLE_ON                    1/* * IT8172 IT_SCR_SCDR bit definition & mask */#define IT_SCR_SCDR_RESET_MODE                  0x80#define IT_SCR_SCDR_RESET_MODE_BIT              7#define IT_SCR_SCDR_RESET_MODE_ASYNC            0#define IT_SCR_SCDR_RESET_MODE_SYNC             1#define IT_SCR_SCDR_DIVISOR                     0x7F#define IT_SCR_SCDR_DIVISOR_BIT                 0#define IT_SCR_SCDR_DIVISOR_STOP_VAL_1          0x00#define IT_SCR_SCDR_DIVISOR_STOP_VAL_2          0x01#define IT_SCR_SCDR_DIVISOR_STOP_VAL_3          0x7F/* * IT8172 DMA */#define IT_DMAC_BASE                            0x16000#define IT_DMAC_BCAR0                           0x00#define IT_DMAC_BCAR1                           0x04#define IT_DMAC_BCAR2                           0x08#define IT_DMAC_BCAR3                           0x0C#define IT_DMAC_BCCR0                           0x02#define IT_DMAC_BCCR1                           0x06#define IT_DMAC_BCCR2                           0x0a#define IT_DMAC_BCCR3                           0x0e#define IT_DMAC_CR                              0x10#define IT_DMAC_SR                              0x12#define IT_DMAC_ESR                             0x13#define IT_DMAC_RQR                             0x14#define IT_DMAC_MR                              0x16#define IT_DMAC_EMR                             0x17#define IT_DMAC_MKR                             0x18#define IT_DMAC_PAR0                            0x20#define IT_DMAC_PAR1                            0x22#define IT_DMAC_PAR2                            0x24#define IT_DMAC_PAR3                            0x26/* *  IT8172 IDE */#define IT_IDE_BASE                             0x17800#define IT_IDE_STATUS                           0x1F7/* *  IT8172 Audio Controller */#define IT_AC_BASE                              0x17000#define IT_AC_PCMOV                             0x00#define IT_AC_FMOV                              0x02#define IT_AC_I2SV                              0x04#define IT_AC_DRSS                              0x06#define IT_AC_PCC                               0x08#define IT_AC_PCDL                              0x0A#define IT_AC_PCB1STA                           0x0C#define IT_AC_PCB2STA                           0x10#define IT_AC_CAPCC                             0x14#define IT_AC_CAPCDL                            0x16#define IT_AC_CAPB1STA                          0x18#define IT_AC_CAPB2STA                          0x1C#define IT_AC_CODECC                            0x22#define IT_AC_I2SMC                             0x24#define IT_AC_VS                                0x26#define IT_AC_SRCS                              0x28#define IT_AC_CIRCP                             0x2A#define IT_AC_CIRDP                             0x2C#define IT_AC_TM                                0x4A#define IT_AC_PFDP                              0x4C#define IT_AC_GC                                0x54#define IT_AC_IMC                               0x56#define IT_AC_ISC                               0x5B#define IT_AC_OPL3SR                            0x68#define IT_AC_OPL3DWDR                          0x69#define IT_AC_OPL3AB1W                          0x6A#define IT_AC_OPL3DW                            0x6B#define IT_AC_BPDC                              0x70/* *  IT8172 Timer */#define IT_TIMER_BASE                           0x10800#define TIMER_TCVR0                             0x00#define TIMER_TRVR0                             0x02#define TIMER_TCR0                              0x04#define TIMER_TIRR                              0x06#define TIMER_TCVR1                             0x08#define TIMER_TRVR1                             0x0A#define TIMER_TCR1                              0x0C#define TIMER_TIDR                              0x0E#define IT_WRITE(ofs, data) \do { \        *(volatile u32 *) KSEG1ADDR((IT8172_BASE+ofs)) = data ; \} while (0)#define IT_READ(ofs, data) \do { \    data = *(volatile u32 *)KSEG1ADDR((IT8172_BASE+ofs)); \} while (0);#define IT_IO_WRITE(ofs, data) \do {\        *(volatile u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data;\} while (0);#define IT_IO_READ(ofs, data) \do {\        data = *(volatile u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs));\} while (0);#define IT_IO_WRITE16(ofs, data)\do {\        *(volatile u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data; \} while (0);#define IT_IO_READ16(ofs, data) \do {\data = *(volatile u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs));\} while (0);#if     1#define __DEBUG_LEVEL0__        (1)#endif#if     (__DEBUG_LEVEL0__ && 1)#define __DEBUG_LEVEL1__        (1)#endif#if     (__DEBUG_LEVEL1__ && 1)#define __DEBUG_LEVEL2__        (1)#endif/* *      Part 1: Frequency & Rate Definitions; */#ifndef MHZ#define MHZ             225#endif#ifndef SYSCLK_MHZ#define SYSCLK_MHZ      75#endif#define RAMCYCLE        15                      /* ~60ns dram cycle */#define ROMCYCLE        150                     /* ~1500ns rom cycle */#define CACHECYCLE      (1000/MHZ)              /* pipeline clock */#define CYCLETIME       CACHECYCLE#define CACHEMISS       (CYCLETIME * 6)#define RTC_HZ          16#define RTC_RATE        RTC_RATE_16Hz/* * rough scaling factors for 2 instruction DELAY loop to get 1ms and 1us delays */#define ASMDELAY(ns,icycle)     (((ns) + (icycle)) / ((icycle) * 2))#define CACHENS(ns)     ASMDELAY((ns), CACHECYCLE)#define RAMNS(ns)       ASMDELAY((ns), CACHEMISS+RAMCYCLE)#define ROMNS(ns)       ASMDELAY((ns), CACHEMISS+ROMCYCLE)#define CACHEUS(us)     ASMDELAY((us)*1000, CACHECYCLE)#define RAMUS(us)       ASMDELAY((us)*1000, CACHEMISS+RAMCYCLE)#define ROMUS(us)       ASMDELAY((us)*1000, CACHEMISS+ROMCYCLE)#define CACHEMS(ms)     ((ms) * ASMDELAY(1000000, CACHECYCLE))#define RAMMS(ms)       ((ms) * ASMDELAY(1000000, CACHEMISS+RAMCYCLE))#define ROMMS(ms)       ((ms) * ASMDELAY(1000000, CACHEMISS+ROMCYCLE))/* * Part 2: Address Mapping Definitions; * Physical Address Space From CPU's View */#define PCIP_MEM_SPACE_BASE     IT8172_PCI_MEM_BASE     /* 0x0c000000 */#define PCI_MEM_SPACE_BASE      PCIP_MEM_SPACE_BASE + 0xa0000000#define PCI_MEM_SPACE_SIZE      0x08000000              /* 128MB, 0x0c000000<=PCI Memory<=0x14000000 */#define PCIP_IO_SPACE_BASE      IT8172_PCI_IO_BASE      /* 0x14000000 */#define PCI_IO_SPACE_BASE       (PCIP_IO_SPACE_BASE  + 0xa0000000)#define PCI_IO_SPACE_SIZE       0x04000000              /* 64MB */#define PCI_CPU_MEM_BASE        0#define BOOTPROM_BASE           0x1FC00000#define FLASH_BASE              0x08000000#define FLASH_SIZE              0x04000000              /* 64MB */#define BOOT_BASE               BOOTPROM_BASE#define BOOT_SIZE               0x00400000              /* 4M BootROM */#define RTC_BASE                (PCI_IO_SPACE_BASE | IT_RTC_BASE)#define RTC_ADDR_PORT           (RTC_BASE + IT_RTC_RIR0)#define RTC_DATA_PORT           (RTC_BASE + IT_RTC_RTR0)#define UART0_PORT              IT_UART_BASE#define UART0_STATPORT          (IT_UART_BASE + 6)#define UART1_PORT              IT_UART_BASE#define UART1_STATPORT          (IT_UART_BASE + 6)/* *  NVRAM mapping */#ifdef NVRAM_IN_FLASH#define NVRAM_SIZE              494#define NVRAM_SECSIZE           500#define NVRAM_OFFS              0x00000000#define ETHER_OFFS              494     /* Ethernet address base */#ifdef not_very_likely#define NVRAM_VXWORKS           (NVRAM_OFFS + NVRAM_SIZE)#define NVRAM_VXWORKS_DEFAULT \ "dc(0,0)host:/usr/vw/config/ev64240/vxWorks h=90.0.0.3 e=90.0.0.50 u=target" #endif #else   /* Use clock ram, 256 bytes only */ #define NVRAM_SIZE              108 #define NVRAM_SECSIZE           NVRAM_SIZE      /* Helper */ #define NVRAM_OFFS              0 #define ETHER_OFFS              108     /* Ethernet address base */ #endif#endif /* __BLX_EV8172_H__ */

⌨️ 快捷键说明

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