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

📄 ep9312.h

📁 这是Skyeye 0.9 版本的源代码
💻 H
字号:
/*
	ep9312.h - definitions of "ep9312" machine  for skyeye
	Copyright (C) 2004 Skyeye Develop Group
	for help please send mail to <skyeye-developer@lists.gro.clinux.org>
	
	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 
*/
/*
 * 11/04/2004  	initial version
 *		define TC struct
 *		walimis <wlm@student.dlut.edu.cn> 
 * */

#ifndef __EP931200_H_
#define __EP931200_H_

/********************************************
* Timer Count definition
********************************************/
#define EP9312_TC_BASE1       (0x80810000)
#define EP9312_TC_BASE2       (0x80810020)
#define EP9312_TC_BASE3       (0x80810080)
#define EP9312_TC_BASE4       (0x80810060)
#define EP9312_TC_SIZE       	0x10

/* Timer Count I/O register
 * */
#define TC_LOAD          	0x0
#define TC_VALUE       		0x4
#define TC_CTL         		0x8
#define TC_CLEAR       		0xC

#define TC_VALUELOW          	0x0
#define TC_VALUEHIGH  		0x4

/* TC interrupt use "sys" interrupt
 * */
#define EP9312_ID_SYS    (0x1 << 1)	// System Peripheral


#define TC_CTL_CLKSEL          (0x1 <<  3)	// (TC) Control: CLKSEL bit
#define TC_CTL_MODE            (0x1 <<  6)	// (TC) Control: Mode bit
#define TC_CTL_ENABLE          (0x1 <<  7)	// (TC) Control: Enable bit

struct ep9312_tc_io
{
  /* I/O register
   * */
  u32 load;			/* Load Register */
  u32 value;			/* Value Register */
  u32 ctl;			/* Control Register */
  u32 clear;			/* Clear Register */

  u32 mod_value;		/* TC1 and TC2: 0xffff; TC3: 0xffffffff */

};



/********************************************
* UART definition
********************************************/
/* I/O register Offset
 * */
#define UART_DR                  0x00
#define UART_RSR                 0x04	/* Read */
#define UART_ECR                 0x04	/* Write */
#define UART_CR_H                0x08
#define UART_CR_M                0x0C
#define UART_CR_L                0x10
#define UART_CR                  0x14
#define UART_FR                  0x18
#define UART_IIR                 0x1C	/* Read */
#define UART_ICR                 0x1C	/* Write */
#define UART_ILPR                0x20
#define UART_DMACR               0x28
#define UART_TCR                 0x80
#define UART_TISR                0x88
#define UART_TOCR                0x8C
#define UART_TMR                 0x84
#define UART_MCR                 0x100	/* Modem Control Reg */
#define UART_MSR                 0x104	/* Modem Status Reg */

#define UART_HDLCCR              0x20C	/* HDLC Registers */
#define UART_HDLCAMV             0x210	/* HDLC Registers */
#define UART_HDLCAMSK            0x214	/* HDLC Registers */
#define UART_HDLCCRIB            0x218	/* HDLC Registers */
#define UART_HDLCSR              0x21C	/* HDLC Registers */

/* default base address 
 * */

#define EP9312_UART_BASE1       (0x808C0000)
#define EP9312_UART_BASE2       (0x808D0000)
#define EP9312_UART_BASE3       (0x808E0000)

#define EP9312_UART_SIZE	  0x10000

struct ep9312_uart_io
{
  /* I/O register
   * */
  u32 dr;
  u32 rsr;
  u32 ecr;
  u32 cr_h;
  u32 cr_m;
  u32 cr_l;
  u32 cr;
  u32 fr;
  u32 iir;
  u32 icr;
  u32 ilpr;
  u32 dmacr;
  u32 tcr;
  u32 tisr;
  u32 tocr;
  u32 tmr;
  u32 mcr;
  u32 msr;

  u32 sysflg;
};


#endif /*__EP931200_H_ */

⌨️ 快捷键说明

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