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 + -
显示快捷键?