📄 s3c4510b.h
字号:
/*************************************************************************/
/* */
/* FILE NAME VERSION */
/* */
/* netstart.h KS32C50100 : version 1.0 */
/* */
/* COMPONENT */
/* */
/* */
/* DESCRIPTION */
/* */
/* Board Specific Routines for netstart series. */
/* */
/* AUTHOR */
/* */
/* */
/* DATA STRUCTURES */
/* */
/* */
/* FUNCTIONS */
/* */
/* */
/*************************************************************************/
#ifndef _NETSTART_H
#define _NETSTART_H
//#include <std.h>
#include "C_optdef.h"
#define BD_LAN_STOP {}
#define DEBUG 0 /* DEBUG mode */
#define REG32 volatile unsigned long
/*------------------------------------------------------------------------
* ASIC Address Definition
*----------------------------------------------------------------------*/
#define VPint *(volatile unsigned int *)
#define VPshort *(volatile unsigned short *)
#define VPchar *(volatile unsigned char *)
/* Special Register Start Address After System Reset */
#define _SPSTR_RESET (VPint(0x0000000))
#define Base_Addr 0x3ff0000
#define INTADDR (Reset_Addr+0x20)
#define SPSTR (VPint(Base_Addr))
/* *********************** */
/* System Manager Register */
/* *********************** */
#define SYSCFG (VPint(Base_Addr+0x0000))
#define CLKCON (VPint(Base_Addr+0x3000))
#define EXTACON0 (VPint(Base_Addr+0x3008))
#define EXTACON1 (VPint(Base_Addr+0x300c))
#define EXTDBWTH (VPint(Base_Addr+0x3010))
#define ROMCON0 (VPint(Base_Addr+0x3014))
#define ROMCON1 (VPint(Base_Addr+0x3018))
#define ROMCON2 (VPint(Base_Addr+0x301c))
#define ROMCON3 (VPint(Base_Addr+0x3020))
#define ROMCON4 (VPint(Base_Addr+0x3024))
#define ROMCON5 (VPint(Base_Addr+0x3028))
#define DRAMCON0 (VPint(Base_Addr+0x302c))
#define DRAMCON1 (VPint(Base_Addr+0x3030))
#define DRAMCON2 (VPint(Base_Addr+0x3034))
#define DRAMCON3 (VPint(Base_Addr+0x3038))
#define REFEXTCON (VPint(Base_Addr+0x303c))
/* *********************** */
/* Ethernet BDMA Register */
/* *********************** */
#define BDMATXCON (VPint(Base_Addr+0x9000))
#define BDMARXCON (VPint(Base_Addr+0x9004))
#define BDMATXPTR (VPint(Base_Addr+0x9008))
#define BDMARXPTR (VPint(Base_Addr+0x900c))
#define BDMARXLSZ (VPint(Base_Addr+0x9010))
#define BDMASTAT (VPint(Base_Addr+0x9014))
/* Content Address Memory */
#define CAM_BaseAddr (Base_Addr + 0x9100)
#define CAM_BASE (VPint(Base_Addr+0x9100))
#define CAM_Reg(x) (VPint(CAM_BaseAddr+(x*0x4)))
#define BDMATXBUF (VPint(Base_Addr+0x9200))
#define BDMARXBUF (VPint(Base_Addr+0x9800))
/* *********************** */
/* Ethernet MAC Register */
/* *********************** */
#define MACCON (VPint(Base_Addr+0xa000))
#define CAMCON (VPint(Base_Addr+0xa004))
#define MACTXCON (VPint(Base_Addr+0xa008))
#define MACTXSTAT (VPint(Base_Addr+0xa00c))
#define MACRXCON (VPint(Base_Addr+0xa010))
#define MACRXSTAT (VPint(Base_Addr+0xa014))
#define STADATA (VPint(Base_Addr+0xa018))
#define STACON (VPint(Base_Addr+0xa01c))
#define CAMEN (VPint(Base_Addr+0xa028))
#define EMISSCNT (VPint(Base_Addr+0xa03c))
#define EPZCNT (VPint(Base_Addr+0xa040))
#define ERMPZCNT (VPint(Base_Addr+0xa044))
#define ETXSTAT (VPint(Base_Addr+0x9040))
#define MACRXDESTR (VPint(Base_Addr+0xa064))
#define MACRXSTATEM (VPint(Base_Addr+0xa090))
#define MACRXFIFO (VPint(Base_Addr+0xa200))
/**************************************************/
/* KS32C50100 : HDLC Channel A */
/**************************************************/
#define HMODEA (VPint(Base_Addr+0x7000))
#define HCONA (VPint(Base_Addr+0x7004))
#define HSTATA (VPint(Base_Addr+0x7008))
#define HINTENA (VPint(Base_Addr+0x700c))
#define HTXFIFOCA (VPint(Base_Addr+0x7010))
#define HTXFIFOTA (VPint(Base_Addr+0x7014))
#define HRXFIFOA (VPint(Base_Addr+0x7018))
#define HBRGTCA (VPint(Base_Addr+0x701c))
#define HPRMBA (VPint(Base_Addr+0x7020))
#define HSAR0A (VPint(Base_Addr+0x7024))
#define HSAR1A (VPint(Base_Addr+0x7028))
#define HSAR2A (VPint(Base_Addr+0x702c))
#define HSAR3A (VPint(Base_Addr+0x7030))
#define HMASKA (VPint(Base_Addr+0x7034))
#define HDMATXPTRA (VPint(Base_Addr+0x7038))
#define HDMARXPTRA (VPint(Base_Addr+0x703c))
#define HMFLRA (VPint(Base_Addr+0x7040))
#define HRBSRA (VPint(Base_Addr+0x7044))
#define HDLCBaseAddr (Base_Addr+0x7000)
/**************************************************/
/* KS32C50100 : HDLC Channel B */
/**************************************************/
#define HMODEB (VPint(Base_Addr+0x8000))
#define HCONB (VPint(Base_Addr+0x8004))
#define HSTATB (VPint(Base_Addr+0x8008))
#define HINTENB (VPint(Base_Addr+0x800c))
#define HTXFIFOCB (VPint(Base_Addr+0x8010))
#define HTXFIFOTB (VPint(Base_Addr+0x8014))
#define HRXFIFOB (VPint(Base_Addr+0x8018))
#define HBRGTCB (VPint(Base_Addr+0x801c))
#define HPRMBB (VPint(Base_Addr+0x8020))
#define HSAR0B (VPint(Base_Addr+0x8024))
#define HSAR1B (VPint(Base_Addr+0x8028))
#define HSAR2B (VPint(Base_Addr+0x802c))
#define HSAR3B (VPint(Base_Addr+0x8030))
#define HMASKB (VPint(Base_Addr+0x8034))
#define HDMATXPTRB (VPint(Base_Addr+0x8038))
#define HDMARXPTRB (VPint(Base_Addr+0x803c))
#define HMFLRB (VPint(Base_Addr+0x8040))
#define HRBSRB (VPint(Base_Addr+0x8044))
/********************/
/* I2C Bus Register */
/********************/
#define IICCON (VPint(Base_Addr+0xf000))
#define IICBUF (VPint(Base_Addr+0xf004))
#define IICPS (VPint(Base_Addr+0xf008))
#define IICCOUNT (VPint(Base_Addr+0xf00c))
/********************/
/* GDMA 0 */
/********************/
#define GDMACON0 (VPint(Base_Addr+0xb000))
#define GDMA0_RUN_ENABLE (VPint(Base_Addr+0xb020))
#define GDMASRC0 (VPint(Base_Addr+0xb004))
#define GDMADST0 (VPint(Base_Addr+0xb008))
#define GDMACNT0 (VPint(Base_Addr+0xb00c))
/********************/
/* GDMA 1 */
/********************/
#define GDMACON1 (VPint(Base_Addr+0xc000))
#define GDMA1_RUN_ENABLE (VPint(Base_Addr+0xc020))
#define GDMASRC1 (VPint(Base_Addr+0xc004))
#define GDMADST1 (VPint(Base_Addr+0xc008))
#define GDMACNT1 (VPint(Base_Addr+0xc00c))
/********************/
/* UART 0 */
/********************/
#define UARTLCON0 (VPint(Base_Addr+0xd000))
#define UARTCONT0 (VPint(Base_Addr+0xd004))
#define UARTSTAT0 (VPint(Base_Addr+0xd008))
#define UARTTXH0 (VPint(Base_Addr+0xd00c))
#define UARTRXB0 (VPint(Base_Addr+0xd010))
#define UARTBRD0 (VPint(Base_Addr+0xd014))
/********************/
/* UART 1 */
/********************/
#define UARTLCON1 (VPint(Base_Addr+0xe000))
#define UARTCONT1 (VPint(Base_Addr+0xe004))
#define UARTSTAT1 (VPint(Base_Addr+0xe008))
#define UARTTXH1 (VPint(Base_Addr+0xe00c))
#define UARTRXB1 (VPint(Base_Addr+0xe010))
#define UARTBRD1 (VPint(Base_Addr+0xe014))
/********************/
/* Timer Register */
/********************/
#define TMOD (VPint(Base_Addr+0x6000))
#define TDATA0 (VPint(Base_Addr+0x6004))
#define TDATA1 (VPint(Base_Addr+0x6008))
#define TCNT0 (VPint(Base_Addr+0x600c))
#define TCNT1 (VPint(Base_Addr+0x6010))
/**********************/
/* I/O Port Interface */
/**********************/
#define IOPMOD (VPint(Base_Addr+0x5000))
#define IOPCON (VPint(Base_Addr+0x5004))
#define IOPDATA (VPint(Base_Addr+0x5008))
/*********************************/
/* Interrupt Controller Register */
/*********************************/
#define INTMODE (VPint(Base_Addr+0x4000))
#define INTPEND (VPint(Base_Addr+0x4004))
#define INTMASK (VPint(Base_Addr+0x4008))
#define INTPRI0 (VPint(Base_Addr+0x400c))
#define INTPRI1 (VPint(Base_Addr+0x4010))
#define INTPRI2 (VPint(Base_Addr+0x4014))
#define INTPRI3 (VPint(Base_Addr+0x4018))
#define INTPRI4 (VPint(Base_Addr+0x401c))
#define INTPRI5 (VPint(Base_Addr+0x4020))
#define INTOFFSET (VPint(Base_Addr+0x4024))
#define INTPNDPRI (VPint(Base_Addr+0x4028))
#define INTPNDTST (VPint(Base_Addr+0x402C))
/**********************************/
/* Enable HDLC Interrupt for DISI */
/**********************************/
#define BD_ALLOW_INTERRUPTS INTMASK &= ~(1<<(0xc000))
#define BD_DISALLOW_INTERRUPTS INTMASK |= (1<<(0xc000))
///////////////////////////////////////////////////////
//Define all isr address
///////////////////////////////////////////////////////
//ISR related to ARM exception
//#define pISR_RESET (*(unsigned *)(_ISR_STARTADDRESS+4*0))
#define pISR_ArmUndef (*(unsigned *)(_ISR_STARTADDRESS+4*1))
#define pISR_ArmSwi (*(unsigned *)(_ISR_STARTADDRESS+4*2))
#define pISR_ArmPre (*(unsigned *)(_ISR_STARTADDRESS+4*3))
#define pISR_ArmAbort (*(unsigned *)(_ISR_STARTADDRESS+4*4))
#define pISR_ArmRev (*(unsigned *)(_ISR_STARTADDRESS+4*5))
#define pISR_ArmIrq (*(unsigned *)(_ISR_STARTADDRESS+4*6))
#define pISR_ArmFiq (*(unsigned *)(_ISR_STARTADDRESS+4*7))
//ISR related to prioty start address defines
#define pISR_PRIOTY0 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*0))
#define pISR_PRIOTY1 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*1))
#define pISR_PRIOTY2 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*2))
#define pISR_PRIOTY3 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*3))
#define pISR_PRIOTY4 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*4))
#define pISR_PRIOTY5 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*5))
#define pISR_PRIOTY6 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*6))
#define pISR_PRIOTY7 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*7))
#define pISR_PRIOTY8 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*8))
#define pISR_PRIOTY9 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*9))
#define pISR_PRIOTY10 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*10))
#define pISR_PRIOTY11 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*11))
#define pISR_PRIOTY12 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*12))
#define pISR_PRIOTY13 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*13))
#define pISR_PRIOTY14 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*14))
#define pISR_PRIOTY15 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*15))
#define pISR_PRIOTY16 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*16))
#define pISR_PRIOTY17 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*17))
#define pISR_PRIOTY18 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*18))
#define pISR_PRIOTY19 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*19))
#define pISR_PRIOTY20 (*(unsigned *)(_PRIO_ISR_STARTADDR+4*20))
//INTR MASK CONSTANT DEFINE
#define ALL_INTR_MASK 0x003FFFFF
#define BIT_EXINT0 (0x01<<0)
#define BIT_EXINT1 (0x01<<1)
#define BIT_EXINT2 (0x01<<2)
#define BIT_EXINT3 (0x01<<3)
#define BIT_UART0_TXINTR (0x01<<4)
#define BIT_UART0_RXINTR (0x01<<5)
#define BIT_UART1_TXINTR (0x01<<6)
#define BIT_UART1_RXINTR (0x01<<7)
#define BIT_GDMA0_INTR (0x01<<8)
#define BIT_GDMA1_INTR (0x01<<9)
#define BIT_TIMER0_INTR (0x01<<10)
#define BIT_TIMER1_INTR (0x01<<11)
#define BIT_HDLCA_TXINTR (0x01<<12)
#define BIT_HDLCA_RXINTR (0x01<<13)
#define BIT_HDLCB_TXINTR (0x01<<14)
#define BIT_HDLCB_RXINTR (0x01<<15)
#define BIT_NET_BDMA_TXINTR (0x01<<16)
#define BIT_NET_BDMA_RXINTR (0x01<<17)
#define BIT_NET_MAC_TXINTR (0x01<<18)
#define BIT_NET_MAC_RXINTR (0x01<<19)
#define BIT_IIC_INTR (0x01<<20)
#define BIT_GLOBAL_INTR (0x01<<21)
#endif /* _NETSTART_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -