📄 frv400.h
字号:
#define _FRV400_PCI_ECS1_CONFIG 0x10000010
#define _FRV400_PCI_ECS2_CONFIG 0x10000018
#define _FRV400_PCI_ECS0_RANGE 0x10000020
#define _FRV400_PCI_ECS0_ADDR 0x10000028
#define _FRV400_PCI_ECS1_RANGE 0x10000030
#define _FRV400_PCI_ECS1_ADDR 0x10000038
#define _FRV400_PCI_ECS2_RANGE 0x10000040
#define _FRV400_PCI_ECS2_ADDR 0x10000048
#define _FRV400_PCI_PCIIO_RANGE 0x10000050
#define _FRV400_PCI_PCIIO_ADDR 0x10000058
#define _FRV400_PCI_PCIMEM_RANGE 0x10000060
#define _FRV400_PCI_PCIMEM_ADDR 0x10000068
#define _FRV400_PCI_PCIIO_PCI_ADDR 0x10000070
#define _FRV400_PCI_PCIMEM_PCI_ADDR 0x10000078
#define _FRV400_PCI_CONFIG_ADDR 0x10000080
#define _FRV400_PCI_CONFIG_DATA 0x10000088
#define _FRV400_PCI_SL_TO_PCI_MBX0 0x10000500
#define _FRV400_PCI_SL_TO_PCI_MBX1 0x10000508
#define _FRV400_PCI_SL_TO_PCI_MBX2 0x10000510
#define _FRV400_PCI_SL_TO_PCI_MBX3 0x10000518
#define _FRV400_PCI_SL_TO_PCI_MBX4 0x10000520
#define _FRV400_PCI_SL_TO_PCI_MBX5 0x10000528
#define _FRV400_PCI_SL_TO_PCI_MBX6 0x10000530
#define _FRV400_PCI_SL_TO_PCI_MBX7 0x10000538
#define _FRV400_PCI_PCI_TO_SL_MBX0 0x10000540
#define _FRV400_PCI_PCI_TO_SL_MBX1 0x10000548
#define _FRV400_PCI_PCI_TO_SL_MBX2 0x10000550
#define _FRV400_PCI_PCI_TO_SL_MBX3 0x10000558
#define _FRV400_PCI_PCI_TO_SL_MBX4 0x10000560
#define _FRV400_PCI_PCI_TO_SL_MBX5 0x10000568
#define _FRV400_PCI_PCI_TO_SL_MBX6 0x10000570
#define _FRV400_PCI_PCI_TO_SL_MBX7 0x10000578
#define _FRV400_PCI_MBX_STATUS 0x10000580
#define _FRV400_PCI_MBX_CONTROL 0x10000588
#define _FRV400_PCI_SL_TO_PCI_DOORBELL 0x10000590
#define _FRV400_PCI_PCI_TO_SL_DOORBELL 0x10000598
#define _FRV400_PCI_SL_INT_STATUS 0x100005A0
#define _FRV400_PCI_SL_INT_STATUS_MASTER_ABORT (1<<26)
#define _FRV400_PCI_PCI_INT_STATUS 0x100005A8
#define _FRV400_PCI_SL_INT_ENABLE 0x100005B0
#define _FRV400_PCI_PCI_INT_ENABLE 0x100005B8
#define _FRV400_PCI_CONFIG 0x10000800
#define _FRV400_PCI_DEVICE_VENDOR 0x10000800
#define _FRV400_PCI_STAT_CMD 0x10000808
#define _FRV400_PCI_STAT_ERROR_MASK 0xF000
#define _FRV400_PCI_CLASS_REV 0x10000810
#define _FRV400_PCI_BIST 0x10000818
#define _FRV400_PCI_PCI_IO_MAPPED 0x10000820
#define _FRV400_PCI_PCI_MEM_MAP_LO 0x10000828
#define _FRV400_PCI_PCI_ECS0_LO 0x10000838
#define _FRV400_PCI_PCI_ECS1_LO 0x10000840
#define _FRV400_PCI_PCI_ECS2_LO 0x10000848
#define _FRV400_PCI_MAX_LAT 0x10000878
#define _FRV400_PCI_TMO_RETRY 0x10000880
#define _FRV400_PCI_SERR_ENABLE 0x10000888
#define _FRV400_PCI_RESET 0x10000890
#define _FRV400_PCI_RESET_SRST 0x00000001 // Assert soft reset
#define _FRV400_PCI_PCI_MEM_MAP_HI 0x10000898
#define _FRV400_PCI_PCI_ECS0_HI 0x100008A8
#define _FRV400_PCI_PCI_ECS1_HI 0x100008B0
#define _FRV400_PCI_PCI_ECS2_HI 0x100008B8
// Motherboard resources
#define _FRV400_MB_SWGP 0x21200000 // General purpose switches
#define _FRV400_MB_LEDS 0x21200004 // LED array - 16 bits 0->on
#define _FRV400_MB_LCD 0x21200008 // LCD panel
#define _FRV400_MB_BOOT_MODE 0x21300004 // Boot mode register
#define _FRV400_MB_H_RESET 0x21300008 // Hardware reset
#define _FRV400_MB_CLKSW 0x2130000C // Clock settings
#define _FRV400_MB_PCI_ARBITER 0x21300014 // Enable PCI arbiter mode
// Serial ports - 16550 compatible
#define _FRV400_UART0 0xFEFF9C00
#define _FRV400_UART1 0xFEFF9C40
// Programmable timers
#define _FRV400_TCSR0 0xFEFF9400 // Timer 0 control/status
#define _FRV400_TCSR1 0xFEFF9408 // Timer 1 control/status
#define _FRV400_TCSR2 0xFEFF9410 // Timer 2 control/status
#define _FRV400_TCxSR_TOUT 0x80 // Status - TOUT signal
#define _FRV400_TCTR 0xFEFF9418 // Timer control
#define _FRV400_TCTR_SEL0 (0<<6) // Select timer 0
#define _FRV400_TCTR_SEL1 (1<<6) // Select timer 1
#define _FRV400_TCTR_SEL2 (2<<6) // Select timer 2
#define _FRV400_TCTR_RB (3<<6) // Timer read back
#define _FRV400_TCTR_RB_NCOUNT (1<<5) // Count data suppress
#define _FRV400_TCTR_RB_NSTATUS (1<<4) // Status data suppress
#define _FRV400_TCTR_RB_CTR2 (1<<3) // Read data for counter #2
#define _FRV400_TCTR_RB_CTR1 (1<<2) // Read data for counter #1
#define _FRV400_TCTR_RB_CTR0 (1<<1) // Read data for counter #0
#define _FRV400_TCTR_LATCH (0<<4) // Counter latch command
#define _FRV400_TCTR_R8LO (1<<4) // Read low 8 bits
#define _FRV400_TCTR_R8HI (2<<4) // Read high 8 bits
#define _FRV400_TCTR_RLOHI (3<<4) // Read/write 8 lo then 8 hi
#define _FRV400_TCTR_MODE0 (0<<1) // Mode 0 - terminal interrupt count
#define _FRV400_TCTR_MODE2 (2<<1) // Mode 2 - rate generator
#define _FRV400_TCTR_MODE4 (4<<1) // Mode 4 - software trigger strobe
#define _FRV400_TCTR_MODE5 (5<<1) // Mode 5 - hardware trigger strobe
#define _FRV400_TPRV 0xFEFF9420 // Timer prescale
#define _FRV400_TPRCKSL 0xFEFF9428 // Prescale clock
#define _FRV400_TCKSL0 0xFEFF9430 // Timer 0 clock select
#define _FRV400_TCKSL1 0xFEFF9438 // Timer 1 clock select
#define _FRV400_TCKSL2 0xFEFF9440 // Timer 2 clock select
// Interrupt & clock control
#define _FRV400_CLK_CTRL 0xFEFF9A00 // Clock control
#define _FRV400_IRC_TM0 0xFEFF9800 // Trigger mode 0 register (unused)
#define _FRV400_IRC_TM1 0xFEFF9808 // Trigger mode 1 register
#define _FRV400_IRC_RS 0xFEFF9810 // Request sense
#define _FRV400_IRC_RC 0xFEFF9818 // Request clear
#define _FRV400_IRC_MASK 0xFEFF9820 // Mask
#define _FRV400_IRC_IRL 0xFEFF9828 // Interrupt level read (encoded)
#define _FRV400_IRC_IRR0 0xFEFF9840 // Interrupt routing #0 (unused)
#define _FRV400_IRC_IRR1 0xFEFF9848 // Interrupt routing #1 (unused)
#define _FRV400_IRC_IRR2 0xFEFF9850 // Interrupt routing #2 (unused)
#define _FRV400_IRC_IRR3 0xFEFF9858 // Interrupt routing #3
#define _FRV400_IRC_IRR4 0xFEFF9860 // Interrupt routing #4
#define _FRV400_IRC_IRR5 0xFEFF9868 // Interrupt routing #5
#define _FRV400_IRC_IRR6 0xFEFF9870 // Interrupt routing #6
#define _FRV400_IRC_IRR7 0xFEFF9878 // Interrupt routing #7
#define _FRV400_IRC_ITM0 0xFEFF9880 // Internal trigger mode #0
#define _FRV400_IRC_ITM1 0xFEFF9888 // Internal trigger mode #1
// Some GPIO magic
#define _FRV400_GPIO_SIR 0xFEFF0410 // Special input signals
#define _FRV400_GPIO_SOR 0xFEFF0418 // Special output signals
// Reset register
#define _FRV400_HW_RESET 0xFEFF0500 // Hardware reset
#define _FRV400_HW_RESET_STAT_P (1<<10) // Last reset was power-on
#define _FRV400_HW_RESET_STAT_H (1<<9) // Last reset was hard reset
#define _FRV400_HW_RESET_STAT_S (1<<8) // Last reset was soft reset
#define _FRV400_HW_RESET_HR (1<<1) // Force hard reset
#define _FRV400_HW_RESET_SR (1<<0) // Force soft reset
// On-board FPGA
#define _FRV400_FPGA_CONTROL 0xFFC00000 // Access control for FPGA resources
#define _FRV400_FPGA_CONTROL_IRQ (1<<2) // Set to enable IRQ registers
#define _FRV400_FPGA_CONTROL_CS4 (1<<1) // Set to enable CS4 control regs
#define _FRV400_FPGA_CONTROL_CS5 (1<<0) // Set to enable CS5 control regs
#define _FRV400_FPGA_IRQ_MASK 0xFFC00004 // Set bits to 0 to allow interrupt
#define _FRV400_FPGA_IRQ_LEVELS 0xFFC00008 // 0=>active low, 1=>active high
#define _FRV400_FPGA_IRQ_REQUEST 0xFFC0000C // read: 1=>asserted, write: 0=>clears
#define _FRV400_FPGA_IRQ_LAN (1<<12) // Onboard LAN controller
#define _FRV400_FPGA_IRQ_INTA (1<<6) // PCI bus INTA
#define _FRV400_FPGA_IRQ_INTB (1<<5) // PCI bus INTA
#define _FRV400_FPGA_IRQ_INTC (1<<4) // PCI bus INTA
#define _FRV400_FPGA_IRQ_INTD (1<<3) // PCI bus INTA
#endif /* __HAL_FRV400_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -