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

📄 device.h

📁 vt6528芯片交换机API函数和文档运行程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/*
 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
 * All rights reserved.
 *
 * This software is copyrighted by and is the sole property of
 * VIA Networking Technologies, Inc. This software may only be used
 * in accordance with the corresponding license agreement. Any unauthorized
 * use, duplication, transmission, distribution, or disclosure of this
 * software is expressly forbidden.
 *
 * This software is provided by VIA Networking Technologies, Inc. "as is"
 * and any express or implied warranties, including, but not limited to, the
 * implied warranties of merchantability and fitness for a particular purpose
 * are disclaimed. In no event shall VIA Networking Technologies, Inc.
 * be liable for any direct, indirect, incidental, special, exemplary, or
 * consequential damages.
 *
 *
 * File:    device.h
 *
 * Purpose:
 *
 * Author:  Tevin Chen
 *
 * Date:    Jan 08, 2002
 *
 */


#ifndef __DEVICE_H__
#define __DEVICE_H__

#if !defined(__TTYPE_H__)
#include "ttype.h"
#endif




/*---------------------  Export Definitions  ------------------------*/

/*************************************************************************/
/* Format of the Program Status Register                                 */
/*************************************************************************/
/*                                                                       */
/* 31  30  29   28         7   6   5   4   3   2   1   0                 */
/*+---+---+---+---+--ss--+---+---+---+---+---+---+---+---+               */
/*| N | Z | C | V |      | I | F | T |     M4 ~ M0       |               */
/*+---+---+---+---+--ss--+---+---+---+---+---+---+---+---+               */
/*                                                                       */
/* Processor Mode and Mask                                               */
/*                                                                       */
/*************************************************************************/

#define I_Bit           0x80            //IRQ disable
#define F_Bit           0x40            //FIQ disable
#define T_Bit           0x20            //Thumb state, read only
#define IFRQ_DISABLE    0xC0            //Interrupt disable mask value
#define IFRQ_ENABLE     0x00            //Interrupt enable mask value
#define IFRQ_MASK       0xC0            //Interrupt lockout mask value

#define UND_MODE        0x1B            //(UND) Undefine Mode
#define ABT_MODE        0x17            //(ABT) Abort Mode
#define SVC_MODE        0x13            //(SVC) Supervisor Mode
#define IRQ_MODE        0x12            //(IRQ) Interrupt Mode
#define FIQ_MODE        0x11            //(FIQ) Fast Interrupt Mode
#define USR_MODE        0x10            //(USR) User Mode
#define SYS_MODE        0x1F            //(SYS) System Mode
#define MODE_MASK       0x1F            //Processor Mode Mask


//--------------------------------------
// Memory area layout definition
//--------------------------------------
#define ASIC_DRAM_BASE_ADDR         0x00000000
#define ASIC_LOADER_RUN_BASE_ADDR   0x00020000
#define ASIC_VEC_TBL_BASE_ADDR      0x00F00000  // limit addr of exception vector table
#define ASIC_DRAM_SIZE              0x01000000  // size == 8MB x 2 == 16MB

#define ASIC_ROM_BASE_ADDR          0x01000000
#define ASIC_ROM_0_SIZE             0x00400000  // size == 4MB
#define ASIC_ROM_1_SIZE             0x00400000  // size == 4MB
                                                // Although if when physically ROM0 is 512KB
                                                // but we still configure it as 4MB anyway

#define ASIC_EXTIO_BASE_ADDR        0x03600000
#define ASIC_CPUIF_BASE_ADDR        ((ASIC_EXTIO_BASE_ADDR + 0x4000) | ASIC_NON_CACHE_ADDR) // base addr of CPU IF
#define ASIC_MODULE_BASE_ADDR       ((ASIC_EXTIO_BASE_ADDR + 0x8000) | ASIC_NON_CACHE_ADDR) // base addr of Module card




//--------------------------------------
// Special Register Start Address After System Reset
//--------------------------------------
#define ASIC_SOC_BASE_ADDR          0x03FF0000
#define ASIC_NON_CACHE_ADDR         0x04000000  // address offset for non-cache access


//--------------------------------------
// CACHE TAG RAM
//--------------------------------------
#define ASIC_CACHE_SET0_BASE_ADDR   0x10000000  // size == 4KB
#define ASIC_CACHE_SET1_BASE_ADDR   0x10800000  // size == 4KB
#define ASIC_CACHE_TAGRAM_BASE_ADDR 0x11000000  // size == 256 x 4-byte = 1KB
#define ASIC_CACHE_TAGRAM_SIZE      256




//--------------------------------------
// System Manager
//--------------------------------------
#define ASIC_SYS_SYSCFG     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x0000))

#define ASIC_SYS_CLKCON     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3000))
#define ASIC_SYS_EXTACON0   (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3008))
#define ASIC_SYS_EXTACON1   (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x300C))
#define ASIC_SYS_EXTDBWTH   (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3010))
#define ASIC_SYS_ROMCON0    (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3014))
#define ASIC_SYS_ROMCON1    (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3018))
#define ASIC_SYS_ROMCON2    (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x301C))
#define ASIC_SYS_ROMCON3    (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3020))
#define ASIC_SYS_ROMCON4    (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3024))
#define ASIC_SYS_ROMCON5    (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3028))
#define ASIC_SYS_DRAMCON0   (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x302C))
#define ASIC_SYS_DRAMCON1   (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3030))
#define ASIC_SYS_DRAMCON2   (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3034))
#define ASIC_SYS_DRAMCON3   (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x3038))
#define ASIC_SYS_REFEXTCON  (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x303C))


//--------------------------------------
// Interrupt Controller
//--------------------------------------
#define ASIC_INT_MODE       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x4000))
#define ASIC_INT_PEND       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x4004))
#define ASIC_INT_MASK       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x4008))
#define ASIC_INT_PRI0       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x400C))
#define ASIC_INT_PRI1       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x4010))
#define ASIC_INT_PRI2       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x4014))
#define ASIC_INT_PRI3       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x4018))
#define ASIC_INT_PRI4       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x401C))
#define ASIC_INT_PRI5       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x4020))
#define ASIC_INT_OFFSET     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x4024))


//--------------------------------------
// I/O Port Interface
//--------------------------------------
#define ASIC_IOP_MOD        (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x5000))
#define ASIC_IOP_CON        (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x5004))
#define ASIC_IOP_DATA       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x5008))


//--------------------------------------
// Timer 0, 1
//--------------------------------------
#define ASIC_TMR_TMOD       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x6000))
#define ASIC_TMR_TDATA0     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x6004))
#define ASIC_TMR_TDATA1     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x6008))
#define ASIC_TMR_TCNT0      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x600C))
#define ASIC_TMR_TCNT1      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x6010))


//--------------------------------------
// GDMA 0
//--------------------------------------
#define ASIC_GDMA_CON0      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xB000))
#define ASIC_GDMA_SRC0      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xB004))
#define ASIC_GDMA_DST0      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xB008))
#define ASIC_GDMA_CNT0      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xB00C))

//--------------------------------------
// GDMA 1
//--------------------------------------
#define ASIC_GDMA_CON1      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xC000))
#define ASIC_GDMA_SRC1      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xC004))
#define ASIC_GDMA_DST1      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xC008))
#define ASIC_GDMA_CNT1      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xC00C))


//--------------------------------------
// UART 0
//--------------------------------------
#define ASIC_UART_LCON0     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xD000))
#define ASIC_UART_CONT0     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xD004))
#define ASIC_UART_STAT0     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xD008))
#define ASIC_UART_TXB0      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xD00C))
#define ASIC_UART_RXB0      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xD010))
#define ASIC_UART_BRD0      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xD014))

//--------------------------------------
// UART 1
//--------------------------------------
#define ASIC_UART_LCON1     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xE000))
#define ASIC_UART_CONT1     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xE004))
#define ASIC_UART_STAT1     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xE008))
#define ASIC_UART_TXB1      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xE00C))
#define ASIC_UART_RXB1      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xE010))
#define ASIC_UART_BRD1      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xE014))


//--------------------------------------
// Ethernet BDMA Register
//--------------------------------------
#define ASIC_BDMATXCON      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x9000))
#define ASIC_BDMARXCON      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x9004))
#define ASIC_BDMATXPTR      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x9008))
#define ASIC_BDMARXPTR      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x900c))
#define ASIC_BDMARXLSZ      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x9010))
#define ASIC_BDMASTAT       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x9014))

// Content Address Memory
#define ASIC_CAM_BASE       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x9100))
#define ASIC_CAM_Reg(x)     (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x9100 + (x * 0x4)))

#define ASIC_BDMATXBUF      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x9200))
#define ASIC_BDMARXBUF      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0x9800))


//--------------------------------------
// Ethernet MAC Register
//--------------------------------------
#define ASIC_MACCON         (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xa000))
#define ASIC_CAMCON         (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xa004))
#define ASIC_MACTXCON       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xa008))
#define ASIC_MACTXSTAT      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xa00c))
#define ASIC_MACRXCON       (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xa010))
#define ASIC_MACRXSTAT      (*VPUINT32 (ASIC_SOC_BASE_ADDR + 0xa014))

⌨️ 快捷键说明

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