📄 hardware.h
字号:
/********************************************************//* *//* Samsung S3C4510 *//* meterchen <meterchen@263.net> *//* *//********************************************************/#ifndef __ASM_ARCH_HARDWARE_H#define __ASM_ARCH_HARDWARE_H/*------------------------------------------------------------------------ * 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(0x1000000))#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 CLEAR_PEND_INT(n) I_ISPC = (1<<(n))#define INT_ENABLE(n) INTMSK &= ~(1<<(n))#define INT_DISABLE(n) INTMSK |= (1<<(n))#define HARD_RESET_NOW()#endif /* __ASM_ARCH_HARDWARE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -