#ifndef _IO_MC0428_H_ #define _IO_MC0428_H_ #define MC_BASE_ADDR 0xB82F0000 #define MC_R(a) *(volatile unsigned*)(MC_BASE_ADDR + (a)) #define MC_A(a) (MC_BASE_ADDR + (a)) #define DMA_MEM_CH0_BASE 0x0000 /* + */ #define DMA_MEM_CH1_BASE 0x0400 /* + */ #define MPORT_BASE 0x1000 /* + */ #define UART_BASE 0x3000 /* + */ #define CSR_BASE 0x4000 /* + */ /* * Регистры DMA MEM0(0-7) */ #define MC_CSR_MEM(n) MC_R (DMA_MEM_CH0_BASE+0x0000+(n<<7)) /* Управление и состояние */ #define MC_CP_MEM(n) MC_R (DMA_MEM_CH0_BASE+0x0004+(n<<7)) /* Указатель цепочки */ #define MC_IR0_MEM(n) MC_R (DMA_MEM_CH0_BASE+0x0008+(n<<7)) /* Индекс "0" внешней памяти */ #define MC_IR1_MEM(n) MC_R (DMA_MEM_CH0_BASE+0x000C+(n<<7)) /* Индекс "1" внешней памяти */ #define MC_OR_MEM(n) MC_R (DMA_MEM_CH0_BASE+0x0010+(n<<7)) /* Смещение внешней памяти */ #define MC_Y_MEM(n) MC_R (DMA_MEM_CH0_BASE+0x0014+(n<<7)) /* Параметры направления Y при двухмерной адресации */ #define MC_RUN_MEM(n) MC_R (DMA_MEM_CH0_BASE+0x0018+(n<<7)) /* Управление состоянием бита RUN */ /* * Регистры DMA MEM1(0-7) */ #define MC_CSR_MEM1(n) MC_R (DMA_MEM_CH1_BASE+0x0000+(n<<7)) /* Управление и состояние */ #define MC_CP_MEM1(n) MC_R (DMA_MEM_CH1_BASE+0x0004+(n<<7)) /* Указатель цепочки */ #define MC_IR0_MEM1(n) MC_R (DMA_MEM_CH1_BASE+0x0008+(n<<7)) /* Индекс "0" внешней памяти */ #define MC_IR1_MEM1(n) MC_R (DMA_MEM_CH1_BASE+0x000C+(n<<7)) /* Индекс "1" внешней памяти */ #define MC_OR_MEM1(n) MC_R (DMA_MEM_CH1_BASE+0x0010+(n<<7)) /* Смещение внешней памяти */ #define MC_Y_MEM1(n) MC_R (DMA_MEM_CH1_BASE+0x0014+(n<<7)) /* Параметры направления Y при двухмерной адресации */ #define MC_RUN_MEM1(n) MC_R (DMA_MEM_CH1_BASE+0x0018+(n<<7)) /* Управление состоянием бита RUN */ /* * Регистры DMA EMAC(0-1): 0 - RX, 1 - TX */ #define MC_CSR_EMAC(n) MC_R (0xE800+(n<<6)) /* Управление и состояние */ #define MC_CP_EMAC(n) MC_R (0xE804+(n<<6)) /* Указатель цепочки */ #define MC_IR_EMAC(n) MC_R (0xE808+(n<<6)) /* Индекс */ #define MC_RUN_EMAC(n) MC_R (0xE80C+(n<<6)) /* Управление состоянием бита RUN */ /* * Регистры DMA MFBSP0(0-1): 0 - TX, 1 - RX */ #define MC_CSR_MFBSP0(n) MC_R (0x8800+(n<<6)) /* Управление и состояние */ #define MC_CP_MFBSP0(n) MC_R (0x8804+(n<<6)) /* Указатель цепочки */ #define MC_IR_MFBSP0(n) MC_R (0x8808+(n<<6)) /* Индекс */ #define MC_RUN_MFBSP0(n) MC_R (0x880C+(n<<6)) /* Управления состоянием бита RUN */ /* * Регистры DMA MFBSP1(0-1): 0 - TX, 1 - RX */ #define MC_CSR_MFBSP1(n) MC_R (0x9800+(n<<6)) /* Управление и состояние */ #define MC_CP_MFBSP1(n) MC_R (0x9804+(n<<6)) /* Указатель цепочки */ #define MC_IR_MFBSP1(n) MC_R (0x9808+(n<<6)) /* Индекс */ #define MC_RUN_MFBSP1(n) MC_R (0x980C+(n<<6)) /* Управления состоянием бита RUN */ /* * Регистры DMA SWIC0 */ #define MC_CSR_SWIC_RX_DES0 MC_R(0xC800) #define MC_CP_SWIC_RX_DES0 MC_R(0xC804) #define MC_IR_SWIC_RX_DES0 MC_R(0xC808) #define MC_RUN_SWIC_RX_DES0 MC_R(0xC80C) #define MC_CSR_SWIC_RX_DAT0 MC_R(0xC840) #define MC_CP_SWIC_RX_DAT0 MC_R(0xC844) #define MC_IR_SWIC_RX_DAT0 MC_R(0xC848) #define MC_RUN_SWIC_RX_DAT0 MC_R(0xC84C) #define MC_CSR_SWIC_TX_DES0 MC_R(0xC880) #define MC_CP_SWIC_TX_DES0 MC_R(0xC884) #define MC_IR_SWIC_TX_DES0 MC_R(0xC888) #define MC_RUN_SWIC_TX_DES0 MC_R(0xC88C) #define MC_CSR_SWIC_TX_DAT0 MC_R(0xC8C0) #define MC_CP_SWIC_TX_DAT0 MC_R(0xC8C4) #define MC_IR_SWIC_TX_DAT0 MC_R(0xC8C8) #define MC_RUN_SWIC_TX_DAT0 MC_R(0xC8CC) /* * Регистры DMA SWIC1 */ #define MC_CSR_SWIC_RX_DES1 MC_R(0xD800) #define MC_CP_SWIC_RX_DES1 MC_R(0xD804) #define MC_IR_SWIC_RX_DES1 MC_R(0xD808) #define MC_RUN_SWIC_RX_DES1 MC_R(0xD80C) #define MC_CSR_SWIC_RX_DAT1 MC_R(0xD840) #define MC_CP_SWIC_RX_DAT1 MC_R(0xD844) #define MC_IR_SWIC_RX_DAT1 MC_R(0xD848) #define MC_RUN_SWIC_RX_DAT1 MC_R(0xD84C) #define MC_CSR_SWIC_TX_DES1 MC_R(0xD880) #define MC_CP_SWIC_TX_DES1 MC_R(0xD884) #define MC_IR_SWIC_TX_DES1 MC_R(0xD888) #define MC_RUN_SWIC_TX_DES1 MC_R(0xD88C) #define MC_CSR_SWIC_TX_DAT1 MC_R(0xD8C0) #define MC_CP_SWIC_TX_DAT1 MC_R(0xD8C4) #define MC_IR_SWIC_TX_DAT1 MC_R(0xD8C8) #define MC_RUN_SWIC_TX_DAT1 MC_R(0xD8CC) /* * Регистры контроллера SWIC0 */ #define MC_HW_VER0 MC_R(0xC000) #define MC_STATUS0 MC_R(0xC004) #define MC_RX_CODE0 MC_R(0xC008) #define MC_MODE_CR0 MC_R(0xC00C) #define MC_TX_SPEED0 MC_R(0xC010) #define MC_TX_CODE0 MC_R(0xC014) #define MC_RX_SPEED0 MC_R(0xC018) #define MC_CNT_RX0_PACK0 MC_R(0xC01C) #define MC_CNT_RX_PACK0 MC_R(0xC020) #define MC_ISR_L0 MC_R(0xC024) #define MC_ISR_H0 MC_R(0xC028) #define MC_TRUE_TIME0 MC_R(0xC02C) #define MC_TOUT_CODE0 MC_R(0xC030) #define MC_ISR_TOUT_L0 MC_R(0xC034) #define MC_ISR_TOUT_H0 MC_R(0xC038) #define MC_LOG_ADDR0 MC_R(0xC03C) /* * Регистры контроллера SWIC1 */ #define MC_HW_VER1 MC_R(0xD000) #define MC_STATUS1 MC_R(0xD004) #define MC_RX_CODE1 MC_R(0xD008) #define MC_MODE_CR1 MC_R(0xD00C) #define MC_TX_SPEED1 MC_R(0xD010) #define MC_TX_CODE1 MC_R(0xD014) #define MC_RX_SPEED1 MC_R(0xD018) #define MC_CNT_RX0_PACK1 MC_R(0xD01C) #define MC_CNT_RX_PACK1 MC_R(0xD020) #define MC_ISR_L1 MC_R(0xD024) #define MC_ISR_H1 MC_R(0xD028) #define MC_TRUE_TIME1 MC_R(0xD02C) #define MC_TOUT_CODE1 MC_R(0xD030) #define MC_ISR_TOUT_L1 MC_R(0xD034) #define MC_ISR_TOUT_H1 MC_R(0xD038) #define MC_LOG_ADDR1 MC_R(0xD03C) /* * Регистры DMA VPIN */ #define MC_DMACSR_VPIN MC_R(0x6000) #define MC_CP_VPIN MC_R(0x6004) #define MC_IR_VPIN MC_R(0x6008) #define MC_RUN_VPIN MC_R(0x600C) /* * Регистры VPIN */ #define MC_CSR_VPIN MC_R(0x6000) #define MC_CNT_VPIN MC_R(0x6004) #define MC_FRAME_CNT_VPIN MC_R(0x6008) #define MC_FIFO_VPIN MC_R(0x600C) /* * Регистры DMA VPOUT */ #define MC_DMACSR_VPOUT MC_R(0x7000) #define MC_CP_VPOUT MC_R(0x7004) #define MC_IR_VPOUT MC_R(0x7008) #define MC_RUN_VPOUT MC_R(0x700C) /* * Регистры VPOUT */ #define MC_CSR_VPOUT MC_R(0x7000) #define MC_DIV_VPOUT MC_R(0x7004) #define MC_HSTART_HEND MC_R(0x7008) #define MC_VSTART_VEND MC_R(0x700C) #define MC_CNT_VPOUT MC_R(0x7010) #define MC_FRAME_CNT_VPOUT MC_R(0x7014) #define MC_EHSTART_EHEND MC_R(0x7018) #define MC_EVSTART_EVEND MC_R(0x701C) /* * Регистры I2C */ #define MC_I2C_PRER MC_R(0x3800) #define MC_I2C_CTR MC_R(0x3804) #define MC_I2C_TXR MC_R(0x3808) #define MC_I2C_RXR MC_R(0x380C) #define MC_I2C_CR MC_R(0x3810) #define MC_I2C_SR MC_R(0x3814) #define MC_I2C_PR_CNT MC_R(0x3818) #define MC_I2C_SYNC MC_R(0x3800) /* * Регистры DDR_PORT(0-1) */ #define MC_DDR_CON(n) MC_R (0x1200 + ((n) << 8)) /* Регистр конфигурации DDR */ #define MC_DDR_BAR(n) MC_R (0x1204 + ((n) << 8)) /* Регистр базового адреса */ #define MC_DDR_CSR(n) MC_R (0x1208 + ((n) << 8)) /* Регистр управления и состояния */ #define MC_DDR_TMR(n) MC_R (0x120c + ((n) << 8)) /* Регистр параметров DDR */ #define MC_DDR_MOD(n) MC_R (0x1210 + ((n) << 8)) /* Регистр режимов */ /* * Регистры EMAC */ #define MC_MAC_CONTROL MC_R (0xE000) /* Управление MAC */ #define MC_MAC_ADDR_L MC_R (0xE004) /* Младшая часть исходного адреса MAC */ #define MC_MAC_ADDR_H MC_R (0xE008) /* Старшая часть исходного адреса MAC */ #define MC_MAC_DADDR_L MC_R (0xE00C) /* Младшая часть адреса назначения */ #define MC_MAC_DADDR_H MC_R (0xE010) /* Старшая часть адреса назначения */ #define MC_MAC_FCS_CLIENT MC_R (0xE014) /* Контрольная сумма кадра */ #define MC_MAC_TYPE MC_R (0xE018) /* Тип кадра */ #define MC_MAC_IFS_COLL_MODE MC_R (0xE01C) /* IFS и режим обработки коллизии */ #define MC_MAC_TX_FRAME_CONTROL MC_R (0xE020) /* Управление передачей кадра */ #define MC_MAC_STATUS_TX MC_R (0xE024) /* Статус передачи кадра */ #define MC_MAC_UCADDR_L MC_R (0xE028) /* Младшая часть уникального адреса MAC */ #define MC_MAC_UCADDR_H MC_R (0xE02C) /* Старшая часть уникального адреса MAC */ #define MC_MAC_MCADDR_L MC_R (0xE030) /* Младшая часть группового адреса */ #define MC_MAC_MCADDR_H MC_R (0xE034) /* Старшая часть группового адреса */ #define MC_MAC_MCADDR_MASK_L MC_R (0xE038) /* Младшая часть маски группового адреса */ #define MC_MAC_MCADDR_MASK_H MC_R (0xE03C) /* Старшая часть маски группового адреса */ #define MC_MAC_HASHT_L MC_R (0xE040) /* Младшая часть хэш-таблицы */ #define MC_MAC_HASHT_H MC_R (0xE044) /* Старшая часть хэш-таблицы */ #define MC_MAC_RX_FRAME_CONTROL MC_R (0xE048) /* Управление приемом кадра */ #define MC_MAC_RX_FR_MAXSIZE MC_R (0xE04C) /* Максимальный размер принимаемого кадра */ #define MC_MAC_STATUS_RX MC_R (0xE050) /* Статус приема кадра */ #define MC_MAC_RX_FRAME_STATUS_FIFO MC_R (0xE054) /* FIFO статусов принятых кадров */ #define MC_MAC_MD_CONTROL MC_R (0xE058) /* Управление порта MD */ #define MC_MAC_MD_STATUS MC_R (0xE05C) /* Статус порта MD */ #define MC_MAC_MD_MODE MC_R (0xE060) /* Режим работы порта MD */ #define MC_MAC_TX_TEST_CSR MC_R (0xE064) /* Управление и состояние режима тестирования TX_FIFO */ #define MC_MAC_TX_FIFO MC_R (0xE068) /* Передающее TX_FIFO */ #define MC_MAC_RX_TEST_CSR MC_R (0xE06C) /* Управление и состояние режима тестирования RX_FIFO */ #define MC_MAC_RX_FIFO MC_R (0xE070) /* Принимающее RX_FIFO */ /* * Регистры SRIO0-1 */ #define MC_BASE_SRIO0 MC_R(0xA000) #define MC_BASE_SRIO1 MC_R(0xB000) /* * Регистры MFBSP(0-1) */ #define MC_MFBSP_TX(n) MC_R (0x8000+(n<<12)) /* Буфер передачи данных */ #define MC_MFBSP_RX(n) MC_R (0x8000+(n<<12)) /* Буфер приема данных */ #define MC_MFBSP_CSR(n) MC_R (0x8004+(n<<12)) /* Управление и состояние */ #define MC_MFBSP_DIR(n) MC_R (0x8008+(n<<12)) /* Управление направлением порта ввода-вывода */ #define MC_MFBSP_GPIO_DR(n) MC_R (0x800C+(n<<12)) /* Данные порта ввода-вывода */ #define MC_MFBSP_TCTR(n) MC_R (0x8010+(n<<12)) /* Управление передатчиком */ #define MC_MFBSP_RCTR(n) MC_R (0x8014+(n<<12)) /* Управление приёмником */ #define MC_MFBSP_TSR(n) MC_R (0x8018+(n<<12)) /* Состояние передатчика */ #define MC_MFBSP_RSR(n) MC_R (0x801C+(n<<12) /* Состояние приёмника */ #define MC_MFBSP_TCTR_RATE(n) MC_R (0x8020+(n<<12)) /* Управление темпом передачи данных */ #define MC_MFBSP_RCTR_RATE(n) MC_R (0x8024+(n<<12)) /* Управление темпом приёма данных */ #define MC_MFBSP_TSTART(n) MC_R (0x8028+(n<<12)) /* псевдорегистр ten – запуск/останов передатчика */ #define MC_MFBSP_RSTART(n) MC_R (0x802C+(n<<12)) /* псевдорегистр ren – запуск/останов приемника */ #define MC_MFBSP_EMERG_MFBSP(n) MC_R (0x8030+(n<<12)) /* Регистр аварийного управления портом */ #define MC_MFBSP_IMASK_MFBSP(n) MC_R (0x8034+(n<<12)) /* Регистр маски прерываний от порта */ /* * Регистры PMSC */ #define MC_DEVID_VENDID MC_R(0xF000) /* Регистр идентификации устройства */ #define MC_STATUS_CMD MC_R(0xF004) /* Регистр состояния и управления */ #define MC_CC_REVID MC_R(0xF008) /* Регистр кода классификации */ #define MC_LAT_TIMER MC_R(0xF00C) /* Регистр времени транзакции в режиме Master */ #define MC_BAR0 MC_R(0xF010) /* Регистр базового адреса 0 */ #define MC_BAR1 MC_R(0xF014) /* Регистр базового адреса 1 */ #define MC_SUBSYSID_VENDID MC_R(0xF02C) /* Регистр идентификации подсистемы */ #define MC_INT_LINE MC_R(0xF03C) /* Код прерывания */ #define MC_IR_TARGET MC_R(0xF040) /* Регистр адреса памяти в режиме Target */ #define MC_SEM MC_R(0xF044) /* Регистр семафора */ #define MC_MBR_PCI MC_R(0xF048) /* Регистр почтового ящика шины PCI */ #define MC_CSR_PCI MC_R(0xF04C) /* Регистр управления и состояния шины PCI */ #define MC_CSR_MASTER MC_R(0xF050) /* Регистр управления режимом Master */ #define MC_IR_MASTER MC_R(0xF054) /* Регистр адреса памяти в режиме Master */ #define MC_AR_PCI MC_R(0xF058) /* Регистр адреса шины PCI в режиме Master */ #define MC_QSTE_PCI MC_R(0xF05C) /* Регистр системных прерываний */ #define MC_MASKR_PCI MC_R(0xF060) /* Регистр маскирования прерываний */ #define MC_STATUS_MASTER MC_R(0xF064) /* Регистр состояния обмена с шиной PCI в режиме Master */ #define MC_TMR_PCI MC_R(0xF068) /* Регистр параметров */ #define MC_CSR_WIN MC_R(0xF06C) /* Регистр управления обменом с PCI через адресное окно */ /* * Регистры UART0 */ #define MC_UART0_BASE MC_A (0x3000) #define MC_RBR MC_R (0x3000) /* Приемный буферный регистр */ #define MC_THR MC_R (0x3000) /* Передающий буферный регистр */ #define MC_IER MC_R (0x3004) /* Регистр разрешения прерываний */ #define MC_IIR MC_R (0x3008) /* Регистр идентификации прерывания */ #define MC_FCR MC_R (0x3008) /* Регистр управления FIFO */ #define MC_LCR MC_R (0x300C) /* Регистр управления линией */ #define MC_MCR MC_R (0x3010) /* Регистр управления модемом */ #define MC_LSR MC_R (0x3014) /* Регистр состояния линии */ #define MC_MSR MC_R (0x3018) /* Регистр состояния модемом */ #define MC_SPR MC_R (0x301C) /* Регистр Scratch Pad */ #define MC_DLL MC_R (0x3000) /* Регистр делителя младший */ #define MC_DLM MC_R (0x3004) /* Регистр делителя старший */ #define MC_SCLR MC_R (0x3014) /* Регистр предделителя (scaler) */ /* * Регистры интервальных таймеров IT0, IT1 */ #define MC_ITCSR MC_R (0x5020) /* Управление */ #define MC_ITPERIOD MC_R (0x5024) /* Период работы таймера */ #define MC_ITCOUNT MC_R (0x5028) /* Счетчик */ #define MC_ITSCALE MC_R (0x502C) /* Предделитель */ #define MC_ITCSR1 MC_R (0x5000) /* Управление */ #define MC_ITPERIOD1 MC_R (0x5004) /* Период работы таймера */ #define MC_ITCOUNT1 MC_R (0x5008) /* Счетчик */ #define MC_ITSCALE1 MC_R (0x500C) /* Предделитель */ /* * Регистры WDT */ #define MC_WTCSR MC_R (0x5010) /* Управление */ #define MC_WTPERIOD MC_R (0x5014) /* Период работы таймера */ #define MC_WTCOUNT MC_R (0x5018) /* Счетчик */ #define MC_WTSCALE MC_R (0x501C) /* Предделитель */ /* * Регистры порта внешней памяти MPORT */ #define MC_CSCON0 MC_R (0x1000) /* Регистр конфигурации 0 */ #define MC_CSCON1 MC_R (0x1004) /* Регистр конфигурации 1 */ #define MC_CSCON2 MC_R (0x1008) /* Регистр конфигурации 2 */ #define MC_CSCON3 MC_R (0x100C) /* Регистр конфигурации 3 */ #define MC_CSCON4 MC_R (0x1010) /* Регистр конфигурации 4 */ #define MC_SDRCON MC_R (0x1014) /* Регистр конфигурации памяти SDRAM */ #define MC_SDRTMR MC_R (0x1018) /* Временные параметры памяти SDRAM */ #define MC_SDRCSR MC_R (0x101C) /* Управление режимами памяти SDRAM */ #define MC_FLY_WS MC_R (0x1020) /* Доп. такты ожидания в режиме FLYBY */ /* * Системные регистры */ #define MC_CRPLL MC_R (0x4000) /* Управление PLL */ #define MC_CLKEN MC_R (0x4004) /* Управление отключением частоты от устройств */ #define MC_CSR MC_R (0x4008) /* Управление и состояние */ #define MC_MASKR0 MC_R (0x4010) /* Регистр 0 маски прерываний */ #define MC_QSTR0 MC_R (0x4014) /* Регистр 0 запросов прерываний */ #define MC_MASKR1 MC_R (0x4018) /* Регистр 1 маски прерываний */ #define MC_QSTR1 MC_R (0x401C) /* Регистр 1 запросов прерываний */ #define MC_MASKR2 MC_R (0x4020) /* Регистр 2 маски прерываний */ #define MC_QSTR2 MC_R (0x4024) /* Регистр 2 запросов прерываний */ #define MC_MASKR3 MC_R (0x4028) /* Регистр 3 маски прерываний */ #define MC_QSTR3 MC_R (0x402c) /* Регистр 3 запросов прерываний */ #define MC_IRQM MC_R (0x4030) /* Режимы внешних прерываний nIRQ[3:0] */ #endif /* _IO_MC0428_H_ */ //// eof