📄 s5n8947.h
字号:
/* s3c4510.h - SAMSUNG DSL MCU S5N8947 header file *//*This file contains I/O address and related constants for the ARM PID board.*/#ifndef INCs3c4510h#define INCs3c4510h#include "config.h"#ifdef INCLUDE_FLASH#define FLASH_ADRS 0x01000000 /* Base address of Flash part *///#define FLASH_ADRS 0x80000000 /* Base address of Flash part */#define FLASH_WIDTH 2 /* 1 byte-wide part *//* * If the assummptions below are not met, the definitions will * probably need to be changed appropriately (see FlashMem.c) and then * calibrated using timexN. */#define SYS_FLASH_BOARD_DELAY#define SYS_FLASH_DELAY_SHIFT 0#define SYS_FLASH_DELAY_ADJ 0#define SYS_FLASH_DELAY_INCR 7#endif /* INCLUDE_FLASH */#define CPU_SPEED 50000000 /* CPU clocked at 50 MHz. The timer *//************************************************************************** changes made from here*//************************************************************************** S3C4510 SPECIAL REGISTERS **/#define ASIC_BASE 0x3ff0000/* Interrupt Control */#define INT_CNTRL_BASE (ASIC_BASE+0x4000) /*Define base of all interrupt *//*SYSTEM MANAGER REGISTERS */#define SYSCFG (ASIC_BASE+0x0000)#define CLKCON (ASIC_BASE+0x3000)#define EXTACON0 (ASIC_BASE+0x3008)#define EXTACON1 (ASIC_BASE+0x300c)#define EXTDBWTH (ASIC_BASE+0x3010)#define ROMCON0 (ASIC_BASE+0x3014)#define ROMCON1 (ASIC_BASE+0x3018)#define ROMCON2 (ASIC_BASE+0x301c)#define ROMCON3 (ASIC_BASE+0x3020)#define ROMCON4 (ASIC_BASE+0x3024)#define ROMCON5 (ASIC_BASE+0x3028)#define DRAMCON0 (ASIC_BASE+0x302C)#define DRAMCON1 (ASIC_BASE+0x3030)#define DRAMCON2 (ASIC_BASE+0x3034)#define DRAMCON3 (ASIC_BASE+0x3038)#define REFEXTCON (ASIC_BASE+0x303C)/* controller registers */#define INTMODE (ASIC_BASE+0x4000)#define INTPEND (ASIC_BASE+0x4004)#define INTMASK (ASIC_BASE+0x4008)#define INTPRI0 (ASIC_BASE+0x400C)#define INTPRI1 (ASIC_BASE+0x4010)#define INTPRI2 (ASIC_BASE+0x4014)#define INTPRI3 (ASIC_BASE+0x4018)#define INTPRI4 (ASIC_BASE+0x401C)#define INTPRI5 (ASIC_BASE+0x4020)#define INTOFFSET (ASIC_BASE+0x4024)#define INTPENDPRI (ASIC_BASE+0x4028)#define INTPENDTST (ASIC_BASE+0x402c)#define INTOSET_FIQ (ASIC_BASE+0x4030)#define INTOSET_IRQ (ASIC_BASE+0x4034)/*DMA Register*/#define GDMACON0 (ASIC_BASE+0xB000)#define GDMASRC0 (ASIC_BASE+0xB004)#define GDMADST0 (ASIC_BASE+0xB008)#define GDMACNT0 (ASIC_BASE+0xB00C)#define GDMACON1 (ASIC_BASE+0xC000)#define GDMASRC1 (ASIC_BASE+0xC004)#define GDMADST1 (ASIC_BASE+0xC008)#define GDMACNT1 (ASIC_BASE+0xC00C) /* I/O Port Interface *//*hill change 2007.09.06*/#define IOPMOD (ASIC_BASE+0x5000)#define IOPCON (ASIC_BASE+0x5004)#define IOPDATA (ASIC_BASE+0x5008)/* IIC Registers */#define IICCON (ASIC_BASE+0xf000)#define IICBUF (ASIC_BASE+0xf004)#define IICPS (ASIC_BASE+0xf008)#define IICCNT (ASIC_BASE+0xf00c)/* Timer Registers */#define TIMER_TMOD (ASIC_BASE + 0x6000) /* TMOD (R/W) */#define TIMER_TDATA_0 (ASIC_BASE + 0x6004) /* TDATA0 (R/W) */#define TIMER_TDATA_1 (ASIC_BASE + 0x6008) /* TDATA1 (R/W) */#define TIMER_TCNT_0 (ASIC_BASE + 0x600c) /* TCNT0 (R/W) */#define TIMER_TCNT_1 (ASIC_BASE + 0x6010) /* TCNT1 (R/W) *//* UART0 Register */#define ULCON (ASIC_BASE + 0xD000) /*UART Line Control Registers*/#define UCON (ASIC_BASE + 0xD004) /*UART Control Register */#define USTAT (ASIC_BASE + 0xD008) /*UART Status Register */#define UTXBUF (ASIC_BASE + 0xD00c) /*UART Transmit Buffer Register*/#define URXBUF (ASIC_BASE + 0xD010) /*UART Receive Buffer Register*/#define UBRDIV (ASIC_BASE + 0xD014) /*UART Baud Rate Divisor Register*/#define BRDCNT (ASIC_BASE + 0xD018) /*UART Baud Rate Count Register */#define BRDCLK (ASIC_BASE + 0xD01c) /*UART Baud Rate Clock Monitor*//*UART1 Register*/#define ULCON_1 (ASIC_BASE + 0xE000) /*UART Line Control Registers*/#define UCON_1 (ASIC_BASE + 0xE004) /*UART Control Register */#define USTAT_1 (ASIC_BASE + 0xE008) /*UART Status Register */#define UTXBUF_1 (ASIC_BASE + 0xE00c) /*UART Transmit Buffer Register*/#define URXBUF_1 (ASIC_BASE + 0xE010) /*UART Receive Buffer Register*/#define UBRDIV_1 (ASIC_BASE + 0xE014) /*UART Baud Rate Divisor Register*/#define BRDCNT_1 (ASIC_BASE + 0xE018) /*UART Baud Rate Count Register */#define BRDCLK_1 (ASIC_BASE + 0xE01c) /*UART Baud Rate Clock Monitor*//* Bit definitions within ULCON0/1 Line Control Register*/#define DATA_BITS_5 0x00#define DATA_BITS_6 0x01#define DATA_BITS_7 0x02#define DATA_BITS_8 0x03#define PARITY_NONE 0x00 /* Set No Parity*/#define PARITY_ODD 0x20 /* Set Odd Parity*/#define PARITY_EVEN 0x28 /* Set Even Parity*/#define ONE_STOP 0x00 /* One Stop Bit*/#define TWO_STOP 0x02 /* Two Stop Bit*/#define WORD_LEN 0x03 /* Set Word Length 8*/#define INT_CLK 0x00 /* Internal Clock Mode */#define EXT_CLK 0x40 /* External Clock Mode *//* Bit definitions within UCON0/1 Control Register*/#define UCON_RX 0x01 /* Receive Mode -Interrupt*/#define UCON_STAT_EN 0x04 /* Status Interrrupt -Enable*/#define UCON_TX 0x08 /* Transmit Mode-Interrupt*/#define UCON_TX_DIS 0x01 /* Transmit Interrupt -Disable*/#define UCON_DSR 0x20 /* Data Set Ready -Enable*/#define UCON_BREAK 0x40 /* Set Break*/#define UCON_RX_TX_RESET 0xe4 /* Rx and Tx Reset *//* Bit definitions within USTAT0/1 Status Register*/#define USTAT_DTR_LOW 0x10 /* DTR Enable */#define USTAT_DTR_HIGH 0x00 /* DTR Disable*/#define USTAT_TX_READY 0x40 /* Transmitter Ready for another char */#define USTAT_RX_AVAIL 0x20 /* Character has arrived*/ #define USTAT_OVER_ERR 0x01 /* Over Run Error*/#define USTAT_PAR_ERR 0x02 /* Parity Error*/#define USTAT_FRAME_ERR 0x04 /* Frame Error*/ #define USTAT_RX_READY 0x20 /* Receive Data Buffer*/#ifndef REG_READ#define REG_READ(reg, result) \ ((result) = *(volatile ulong *)(reg))#endif /*READ REG*/#ifndef REG_WRITE#define REG_WRITE(reg, data) \ (*((volatile ulong *)(reg)) = (data))#endif /*WRITE REG*//*************************************************************************** DRAM Memory Bank 0 area MAP for Exception vector table * and Stack, User code area. **/#define DRAM_BASE 0x0 /* Final start address of DRAM */#define DRAM_LIMIT 0x1000000 /* 16MByte */#define RESET_DRAM_START 0x1000000 /* Start of DRAM on power-up */#define RESET_ROM_START 0x0 /* Start od ROM on power-up *//****************************************************************************** Format of the Program Status Register */#define FBit 0x40#define IBit 0x80#define LOCKOUT 0xC0 /* Interrupt lockout value */#define LOCK_MSK 0xC0 /* Interrupt lockout mask value */#define MOD_MASK 0x1F /* Processor Mode Mask */#define UDF_MODE 0x1B /* Undefine Mode(UDF) */#define ABT_MODE 0x17 /* Abort Mode(ABT) */#define SUP_MODE 0x13 /* Supervisor Mode (SVC) */#define IRQ_MODE 0x12 /* Interrupt Mode (IRQ) */#define FIQ_MODE 0x11 /* Fast Interrupt Mode (FIQ) */#define USR_MODE 0x10 /* User Mode(USR) *//************************************************************************** SYSTEM CLOCK */#define MHz 1000000#define fMCLK_MHz 50000000#define fMCLK fMCLK_MHz/MHz/************************************************************************** SYSTEM MEMORY CONTROL REGISTER EQU TABLES *//* SYSCFG Register Value */#define SYSCONFIG_VAL_EDRAM 0x03ff0000 /* System Configuration Value, EDO RAM */#define SYSCONFIG_VAL_SDRAM 0xA3ff0000 /* System Configuration Value, SDRAM *//*External I/O access timing register 0,1*///#define rEXTACON0 (0x0E780E78)//#define rEXTACON1 (0x0E780E78)#define rEXTACON0 (0x0699FFFF)#define rEXTACON1 (0x0FFF0FFF)/*hill add 2007.09.07*/#define DSR0 (2<<0) // ROM Bank0 #define DSR1 (0<<2) // 0: Disable, 1: Byte, 2: Half-Word, 3: Word #define DSR2 (0<<4)#define DSR3 (0<<6)#define DSR4 (0<<8)#define DSR5 (0<<10)#define DSD0 (3<<12) // RAM Bank0 #define DSD1 (0<<14)#define DSD2 (0<<16)#define DSD3 (0<<18)#define DSX0 (0<<20) #define DSX1 (2<<22)// EXTIO1 switch 16-bit#define DSX2 (1<<24)//EXTIO2 module card 8-bit#define DSX3 (0<<26)#define rEXTDBWTH (DSR0|DSR1|DSR2|DSR3|DSR4|DSR5 | DSD0|DSD1|DSD2|DSD3 | DSX0|DSX1|DSX2|DSX3)/* 20020612 by drsohn#define rEXTDBWTH (DSR0+DSR1+DSR2+DSP+DSD0+DSD1+DSD2+DSD3+DSX0+DSX1+DSX2+DSX3)*//*#ifdef SD16BIT#define rEXTDBWTH 0x0AAAA0BA // for 16bit sdram access - all banks#else#define rEXTDBWTH 0x0FFFF0BA // all SDRAM banks : 32bit#define rEXTDBWTH 0x00003002 // enable SDRAM bank0 : 32bit; enable ROM bank0#endif*/#define ASIC_DRAM_BASE_ADDR 0x00000000#define ASIC_ROM_BASE_ADDR 0x01000000#define ASIC_ROM_0_SIZE 0x400000#define ASIC_DRAM_SIZE 0X01000000#define ASIC_EXTIO_BASE_ADDR 0x03600000#define ASIC_SRAM_BASE_ADDR 0x03fe0000#define ASIC_SOC_BASE_ADDR 0x03ff0000/*20070910 by hill*///#define rSYSCFG 0xE7FFFFA0 /*s3c4510b,SFR base:0x03ff0000, SRAM base : 0x03fe0000, disable write buffer , no cache*///#define rSYSCFG 0xE7ffff80 /*s3c4510b 4K sram,4K cache*/#define SDM (1 << 31) /* SDRAM Mode, 0=EDO DRAM, 1=SDRAM */#define PD_ID (1 << 26) /* S3C4510X=00001 ; S3C4510b = 11001*/#define S_REG_BASE_PTR ((ASIC_SOC_BASE_ADDR >> 16) << 16) /* Special register bank base pointer */#define I_SRAM_BASE_PTR ((ASIC_SRAM_BASE_ADDR >> 16) << 6) /* Internal SRAM base pointer */#define CM (1 << 4) /* Cache Mode, 0=4K sram 4K cache, 1=8K cache, 2=8K sram */#define WE (1 << 2) /* Write buffer Enable, 0=disable, 1=enable */#define CE (1 << 1) /* Cache Enable, 0=disable, 1=enable */#define SE (0 << 0) /* Stall Enable, must be 0 */#define rSYSCFG (SDM | PD_ID | S_REG_BASE_PTR | I_SRAM_BASE_PTR | CM | WE | CE | SE)/************************************************************* -> ROMCON0 : ROM Bank0 Control register */#define ROMBasePtr0 ((ASIC_DRAM_BASE_ADDR >> 16) << 10)#define ROMEndPtr0 (((ASIC_DRAM_BASE_ADDR+ASIC_ROM_0_SIZE) >> 16) << 20)#define PMC0 0x0 /* 0x0=Normal ROM, 0x1=4Word Page */ /* 0x2=8Word Page, 0x3=16Word Page */#define rTpa0 (0x0 << 2) /* 0x0=5Cycle, 0x1=2Cycle */ /* 0x2=3Cycle, 0x3=4Cycle */#define rTacc0 (0x4 << 4) /* 0x0=Disable, 0x1=2Cycle */ /* 0x2=3Cycle, 0x3=4Cycle */ /* 0x4=5Cycle, 0x5=6Cycle */ /* 0x6=7Cycle, 0x7=Reserved */#define mapROMBasePtr0 ((ASIC_ROM_BASE_ADDR >> 16) << 10)#define mapROMEndPtr0 (((ASIC_ROM_BASE_ADDR+ASIC_ROM_0_SIZE) >> 16) << 20)#if defined(AM29LV320D) || defined(AT49BV321) /*4M*///#define rROMCON0_R 0x040003FF//#define rROMCON0_B 0x140403FF/*20070910 by hill*/#define rROMCON0_R (ROMBasePtr0 | ROMEndPtr0 |PMC0|rTpa0|rTacc0)//0x04000060 /*base : 0x00000000,end : 0x400000-1*/#define rROMCON0_B (mapROMBasePtr0 | mapROMEndPtr0 |PMC0|rTpa0|rTacc0)//0x14040060 /*base : 0x01000000,end : 0x01400000-1*/#else /*2M*///#define rROMCON0_R 0x020003FF//#define rROMCON0_B 0x120403FF#define rROMCON0_R 0x02000060#define rROMCON0_B 0x12040060#endif/*---------------------------------------*//*-> ROMCON1 : ROM Bank1 Control register*//*---------------------------------------*/#define ROMBasePtr1 (0x380 << 10) /*=0x03800000 */#define ROMEndPtr1 (0x390 << 20) /*=0x03900000 */#define PMC1 0x0 /* 0x0=Normal ROM, 0x1=4Word Page */ /* 0x2=8Word Page, 0x3=16Word Page */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -