⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idt79rc233x.h

📁 开放源码实时操作系统源码.
💻 H
📖 第 1 页 / 共 2 页
字号:
#define FP_EXC_I        0x1000          /* inexact operation */
#define FP_EXC_U        0x2000          /* underflow */
#define FP_EXC_O        0x4000          /* overflow */
#define FP_EXC_Z        0x8000          /* divide by zero */
#define FP_EXC_V        0x10000         /* invalid operation */
#define FP_EXC_E        0x20000         /* unimplemented operation */

							  
#define C0_INX        $0              /* Index into TLB Array - 4Kc core */
#define C0_RANDOM       $1              /* Randomly generated index into TLB Array - 4Kc core */
#define C0_TLBLO0     $2              /* Low-order portion of the TLB entry for even-numbered virtual pages - 4Kc core */
#define C0_TLBLO1     $3              /* Low-order portion of the TLB entry for odd-numbered virtual pages - 4Kc core */
#define C0_PAGEMASK     $5              /* Pointer to page table entry in memory - 4Kc core */
#define C0_WIRED        $6              /* Number of fixed TLB entries - 4Kc core */
#define C0_TLBHI      $10             /* High-order portion of the TLB entry - 4Kc core */
#define C0_PRId         $15             /* Processor Identification and Revision */
#define C0_CONFIG       $16             /* Configuration Register */
#define C0_LLADDR       $17             /* Load linked address */
#define C0_LLADDR       $17             /* Load linked address */
#define C0_DEBUG        $23             /* Debug control and exception status */
#define C0_DEPC         $24             /* Program counter at last debug exception */
#define C0_TAGLO        $28             /* Low-order portion of cache tag interface */
#define C0_TAGHI        $29             /* High-order portion of cache tag interface (not implemented in 4K cores */
#define C0_DESAVE       $31             /* Debug handler scratch pad register */




#define TARGET_S334
#define BUS		                 0

#define PORT_WIDTH_CNTL_REG     0xffffe200
#define BUS_TURN_AROUND_REG     0xffffe204
#define BUS_TURN_AROUND_CNTRL_REG     0xb8000000
#define BUS_TURN_AROUND_VAL     0x00000000 

#define ADDRESS_LATCH_TIMING_REG	0xB8000004
#define ADDRESS_LATCH_TIMING_VAL	0x00000007

#define PORT_WIDTH_CNTL_VAL     0xaa822aaa
#define SDRAM_TEST_PATTERN      0xaa55aa55

/* RC32134 Register Settings               */
#define MEM_BASE_BASE           0xb8000080
#define MBA_REG0                0x1fc00000
#define MBM_REG0                0xffC00000


#define MEM_CTL_BASE            0xb8000200
#define MCR_CS0_BS              0x23ef23ef
#define MCR_CS1_BS              0x28632863
#define MCR_CS2_BS              0x60e760e7
#define MCR_CS3_BS              0x60e760e7  /* NVRAM    */
#define MCR_CS4_BS              0x60e760e7  /* S334 LED */
#define MCR_CS5_BS              0x60e760e7


#define RHEA_IREG_BASE          0xb8000000
#define SODIMM                     1

#define DRAM_BNK0_BASE          0x00000000
#define DRAM_BNK1_BASE          0x01000000
#define DRAM_BNK2_BASE          0x02000000
#define DRAM_BNK3_BASE          0x03000000
#define DRAM_BNK0_MASK          0xff000000
#define DRAM_BNK1_MASK          0xff000000
#define DRAM_BNK2_MASK          0xff000000
#define DRAM_BNK3_MASK          0xff000000
#define MBA_REG1                0x04000000
#define MBM_REG1                0xffff0000
#define SDRAM_CR_BS             0x8955c0ff
#define SDRAM_PC_VAL            0x8955c0a0
#define SDRAM_RFRSH_CMD         0x8955c090
#define SDRAM_MODE_REG          0x8955c080
#define SDRAM_CSEL_PARK         0x8955c0ff
#define TIMER_BASE              0xb8000700
#define DRAM_RF_CMPR_BS         0x00000040
#define DRAM_RF_CMPR_SE_BS      0x00000200
#define CPU_BERR_BS             0xff
#define IP_BERR_BS              0xff
#define DISABLE_TIMER           0x0
#define ENABLE_TIMER            0x1

#define CPU_CLOCK_RATE	        75000000


/* define macro so drivers will call sysWbFlush() */

#define SYS_WB_FLUSH

/* task default status register */

#define INT_LVL_PCI        INT_LVL_IORQ1 
#define INT_LVL_SR_IMASK  (INT_LVL_PCI | INT_LVL_IORQ3 |\
                           INT_LVL_SW0 | INT_LVL_SW1 )

#define RC32364_SR        (SR_CU0| INT_LVL_SR_IMASK |\
                           INT_LVL_TIMER | SR_IE)

/* interrupt priority */

#define INT_PRIO_MSB       TRUE            /* interrupt priority msb highest */




/* Miscellaneous */

#define PIO_DATA_REG0         0xb8000600
#define PIO_FUNC_SELECT_REG0  0xb8000608
#define PIO_DATA_REG1         0xb8000610
#define PIO_DIRCNTL_REG1      0xb8000614
#define PIO_FUNC_SELECT_REG1  0xb8000618
#define CYG_MGMT_LED_MASK     0x00000008
#define CYG_STATUS_LED_MASK   0x00000003
#define CYG_TEST_LED1_MASK    0x00000002
#define CYG_TEST_LED2_MASK    0x00000004
#define CYG_STATUS_LED_GREEN  0x00000001
#define CYG_STATUS_LED_ORANGE 0x00000002




/* PIO definition for Internal Uart   */

#define PIO_DIRCNTL_REG         0xb8000604
#define PIO_FUNCSEL_MASK        0xf0
#define PIO_DIRCNTL_MASK        0xffffff0f
#define PIO_DIRCNTL_VAL         0x50


/* Serial grouping */

#define SERIAL_PORT0_GROUP		5
#define SERIAL_PORT1_GROUP		6

/* Rc32134 Interrupt controller settings for Uart */
#define INTR_STATUS_PTR         0xb8000500
#define INTR_MASK_REG           0xb8000504
#define INTR_CLEAR_REG          0xb8000508

#define INTR_COM0_REG           0xb8000554
#define INTR_COM1_REG           0xb8000564

#define INTR_CLEAR_COM0         0xb8000558
#define INTR_PEND_COM0          0xb8000550
#define INTR_CLEAR_COM1         0xb8000568
#define INTR_PEND_COM1          0xb8000560

#define INTR_CLEAR_MASTER       0xb8000508
#define INTR_PEND_MASTER        0xb8000500

#define INTR_MASTERMASK_COM1    0x0020
#define INTR_MASTERMASK_COM2    0x0040
#define INTR_MASTERMASK_UART    ( INTR_MASTERMASK_COM1 | INTR_MASTERMASK_COM2 )

/* Rc32134 Timer0(used as Auxiliary clock)interrupts */
#define AUX_TIMER_INTR_PEND     0xb8000540
#define AUX_TIMER_INTR_MASK     0xb8000544
#define AUX_TIMER_INTR_CLEAR    0xb8000548
#define INTR_MASTERMASK_TIMER0  0x0010
#define AUX_TIMER_CNTL_REG      0xb8000700
#define AUX_TIMER_CNT_REG       0xb8000704
#define AUX_TIMER_CMP_REG       0xb8000708

#define AUX_CLOCK_FREQ          (2 * NS16550_XTAL_FREQ)   

/* Rc32364 Tlb attributes for PCI transactions */
#define PCI_MMU_PAGEMASK         0x00000fff
#define MMU_PAGE_UNCACHED        0x00000010
#define MMU_PAGE_DIRTY           0x00000004
#define MMU_PAGE_VALID           0x00000002
#define MMU_PAGE_GLOBAL          0x00000001
#define PCI_MMU_PAGEATTRIB       (MMU_PAGE_UNCACHED|MMU_PAGE_DIRTY|\
                                  MMU_PAGE_VALID|MMU_PAGE_GLOBAL)
#define PCI_MEMORY_SPACE1        0x40000000
#define PCI_MEMORY_SPACE2        0x60000000
#define PCI_IO_SPACE             0x18000000
#define PCI_PAGE_SIZE            0x01000000
#define TLB_HI_MASK              0xffffe000
#define TLB_LO_MASK              0x3fffffff
#define PAGEMASK_SHIFT                   13
#define TLB_LO_SHIFT                      6


/* RC32134 PCI definitions */
#define PCI_CONFIG_ADDR_REG      0xb8002cf8
#define PCI_CONFIG_DATA_REG      0xb8002cfc

/* Rhea's Configuration Address*/

#define RHEA_CONFIG0_ADDR        0x80000000
#define RHEA_CONFIG1_ADDR        0x80000004
#define RHEA_CONFIG2_ADDR        0x80000008
#define RHEA_CONFIG3_ADDR        0x8000000c
#define RHEA_CONFIG4_ADDR        0x80000010
#define RHEA_CONFIG5_ADDR        0x80000014
#define RHEA_CONFIG6_ADDR        0x80000018
#define RHEA_CONFIG7_ADDR        0x8000001c
#define RHEA_CONFIG8_ADDR        0x80000020
#define RHEA_CONFIG9_ADDR        0x80000024
#define RHEA_CONFIG10_ADDR       0x80000028
#define RHEA_CONFIG11_ADDR       0x8000002c
#define RHEA_CONFIG12_ADDR       0x80000030
#define RHEA_CONFIG13_ADDR       0x80000034
#define RHEA_CONFIG14_ADDR       0x80000038
#define RHEA_CONFIG15_ADDR       0x8000003c
#define RHEA_CONFIG16_ADDR       0x80000040

/* Rhea's configuration Header */

#define RHEA_PCI_CONFIG0       0x032410b5   /* Device ID & Vendor ID                        */
#define RHEA_PCI_CONFIG1       0x02a00157   /* Status & Command                             */
#define RHEA_PCI_CONFIG2       0x06800001   /* Class Code & Revision ID                     */
#define RHEA_PCI_CONFIG3       0x0000ff04   /* BIST, Header Type, Latency, & Cacheline Size */
#define RHEA_PCI_CONFIG4       0xa0000000   /* PCI Memory Address that Rhea responds to.    */
#define RHEA_PCI_CONFIG5       0x60000000   /* PCI Dual Cycle Address that Rhea responds to.*/
#define RHEA_PCI_CONFIG6       0x00800001   /* PCI I/O Address that Rhea responds to.       */
#define RHEA_PCI_CONFIG7       0x00000000
#define RHEA_PCI_CONFIG8       0x00000000
#define RHEA_PCI_CONFIG9       0x00000000
#define RHEA_PCI_CONFIG10      0x00000000
#define RHEA_PCI_CONFIG11      0x013410b5
#define RHEA_PCI_CONFIG12      0x00000000
#define RHEA_PCI_CONFIG13      0x00000000
#define RHEA_PCI_CONFIG14      0x00000000
#define RHEA_PCI_CONFIG15      0x38080101

/* Because of an errata in Rc32134 Pci Bridge, Scanning does not work properly.
   The device number is selected based on which pci slot on S134 board is being
   used */

#define PCI_BUS                         0
#define PCI_DEVICE_U28                  2      /* PCI Slot U28 */
#define PCI_DEVICE_U29                  3      /* PCI Slot U29 */
#define PCI_DEVICE_U20                  4      /* PCI Slot U20 */
#define PCI_FUNC                        0

/* Latency for the Pci/Ethernet Card   */

#define PCI_DEVICE_MAX_LATENCY          0x0000ff00
/* BusErrCntReg is used to disable/Enable BusError thrown on PCI
   bus on scanning */
#define BUS_ERR_CNTL_REG_ADDR           0xb8000010




/* FEI PCI bus resources */

#define FEI_IO_MAP_USE
#define FEI_OFFSET_ADD
#define FEI0_MEMBASE0           0x40800000      /* memory base for CSR */
#define FEI0_MEMSIZE0           0x00001000      /* memory size for CSR, 4KB */
#define FEI0_MEMBASE1           0x40a00000      /* memory base for Flash */
#define FEI0_MEMSIZE1           0x00100000      /* memory size for Flash, 1MB */
#define FEI0_IOBASE0            0x18800000      /* IO base for CSR, 32Bytes */
#define FEI0_INT_LVL            0x1             /* IRQ 1                    */

#define PCI_CFG_TYPE  		PCI_CFG_FORCE

/* Redefine PCI_CONFIG_ADDR & PCI_CONFIG_DATA */

#define CPU_TO_PCI_MEM_BASE	0x40000001
#define CPU_TO_PCI_IO_BASE	0x18800001
#define PCI_TO_CPU_MEM_BASE	0x00000000
#define PCI_TO_CPU_IO_BASE      0x00800001

#define IDT134_PCI_BASE		0xb8000000

#define IDT134_PCI_MEM_BAR1    	(IDT134_PCI_BASE + 0x20B0)
#define IDT134_PCI_MEM_BAR2 	(IDT134_PCI_BASE + 0x20B8)
#define IDT134_PCI_MEM_BAR3	(IDT134_PCI_BASE + 0x20C0)
#define IDT134_PCI_IO_BAR	(IDT134_PCI_BASE + 0x20C8)
#define IDT134_PCI_ARB_REG	(IDT134_PCI_BASE + 0x20E0)
#define IDT134_PCI_CPU_BAR1	(IDT134_PCI_BASE + 0x20E8)
#define IDT134_PCI_CPU_IO_BAR	(IDT134_PCI_BASE + 0x2100)
#define IDT134_PCI_CONFIG_ADDR  (IDT134_PCI_BASE + 0x2CF8)
#define IDT134_PCI_CONFIG_DATA  (IDT134_PCI_BASE + 0x2CFC)

#define IDT134_BAR_MEM_SWAP	0x00000001

							  
#endif /* CYGONCE_HAL_IDT79RC233X_H */
/*---------------------------------------------------------------------------*/
/* end of idt79rc233x.h                                                      */

⌨️ 快捷键说明

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