📄 l4.h
字号:
/**
* \addtogroup t4socket T4 Socket API Layer
* @{
*/
/**
* \addtogroup t4regdef T4 Registers Defination
* @{
*/
/**
* \file l4.h
* \brief The Registers Defination for T4 Hardware TCP/IP chip.
* \author Xiaofei Rui <xfrui@fameg.com>
*/
/*
******************************************************************************
*
Copyright (c) 2006 FameG Shanghai, Inc. All rights reserved.
*
This is unpublished proprietary source code of FameG Shanghai, Inc.
*
The copyright notice above does not evidence any actual or intended
*
publication of such source code.
******************************************************************************
*/
/*
******************************************************************************
*
Project: T4 Hardware TCP/IP
*
Filename: L4.h
*
Date: 28/02/06
*
Purpose: Registers Defination
*
Author: Xiaofei Rui
******************************************************************************
*/
#ifndef __L4_H__
#define __L4_H__
#include "kernel/system.h"
/// @cond DOXYGEN_SKIP
#define HD_DBG 0 /* Used for T4 hardware debug */
/* Channel FIFO Address */
#define ICMP_TXFIFO 0x0800
#define ICMP_RXFIFO 0x1000
#define S0_TXFIFO 0x1800
#define S0_RXFIFO 0x2000
#define S1_TXFIFO 0x2800
#define S1_RXFIFO 0x3000
#define S2_TXFIFO 0x3800
#define S2_RXFIFO 0x4000
#define S3_TXFIFO 0x4800
#define S3_RXFIFO 0x5000
//#define SOCK_TXFIFO(ch) BASE_ADDR + ch * 0x800 + 0x1800
//#define SOCK_RXFIFO(ch) BASE_ADDR + ch * 0x800 + 0x2000
#define PPPOE_TXFIFO 0x5800
#define PPPOE_RXFIFO 0x6000
/* channel RD/WR pointer defination */
union fifo_pointer_u
{
UINT16 bit16;
UINT8 bit8[2];
};
#define SMASK 0x7ff /* Channel TX/RX FIFO Size MASK */
#define TX_FIFO_LEN 2048
#define RX_FIFO_LEN 2048
#define TXD_LEN 16 /* length of TX Descriptor */
#define RXD_LEN 16 /* length of RX Descriptor */
/// @endcond
/// @cond DOXYGEN_SKIP
/* L4 Registers Defination */
/* System Control */
#define SYS_CTRL0 0x00
#define SYS_CTRL1 0x01
#define SYS_PLL_CONTROL 0x02 //V0.53
#define SYS_PROGMEM_CONFIG 0x03 //V0.51
#define SYS_GLBINTEN 0x04
#define SYS_GLBINTSTAT 0x05
#define SYS_GLBINTPRIT 0x06
#define SYS_GLBINTGEN 0x07
#define SYS_SYS_INTEN 0x08
#define SYS_MAC_INTEN 0x09
#define SYS_ICMP_INTEN 0x0a
#define SYS_IGMP_INTEN 0x0a
#define SYS_SOCK_INTEN(ch) (ch + 0x0b)
#define SYS_PPPOE_INTEN 0x0f
#define SYS_SYS_INTSTAT 0x10
#define SYS_MAC_INTSTAT 0x11
#define SYS_ICMP_INTSTAT 0x12
#define SYS_SOCK_INTSTAT(ch) (ch + 0x13)
#define SYS_PPPOE_INTSTAT 0x17
/* DMA Control from V0.51. Added by Stony Shen@4/28/06 */
#define SYS_DMA_CONTROL 0x20
#define SYS_DMA_SRC_ADDR0 0x21
#define SYS_DMA_SRC_ADDR1 0x22
#define SYS_DMA_SRC_ADDR2 0x23
#define SYS_DMA_DEST_ADDR0 0x24
#define SYS_DMA_DEST_ADDR1 0x25
#define SYS_DMA_DEST_ADDR2 0x26
#define SYS_DMA_LENGTH0 0x27
#define SYS_DMA_LENGTH1 0x28
/* CSB Control from V0.55. Added by Stony Shen@07/07/06 */
#define SYS_CS_CONTROL 0x30
#define SYS_CSB0_START 0x31
#define SYS_CSB0_END 0x32
#define SYS_CSB1_START 0x33
#define SYS_CSB1_END 0x34
#define SYS_CSB2_START 0x35
#define SYS_CSB2_END 0x36
#define SYS_CSB3_START 0x37
#define SYS_CSB3_END 0x38
#define SYS_CSB01_WS 0x39 //Added by Stony@7/26/06
#define SYS_CSB23_WS 0x3a //Added by Stony@7/26/06
/* MAC Layer */
#define MAC_RFIFO_WP0 0x40
#define MAC_RFIFO_WP1 0x41
#define MAC_RFIFO_RP0 0x42
#define MAC_RFIFO_RP1 0x43
#define MAC_TFIFO_WP0 0x44
#define MAC_TFIFO_WP1 0x45
#define MAC_TFIFO_RP0 0x46
#define MAC_TFIFO_RP1 0x47
#define MAC_TXDCTRL 0x48
#define MAC_LMAC0 0x50
#define MAC_LMAC1 0x51
#define MAC_LMAC2 0x52
#define MAC_LMAC3 0x53
#define MAC_LMAC4 0x54
#define MAC_LMAC5 0x55
#define MAC_HASH 0x56
#define MAC_MIICTRL0 0x58
#define MAC_MIICTRL1 0x59 //MAC_REG_ADD
#define MAC_REG_DATA0 0x5a //MAC_REG_DATA0
#define MAC_REG_DATA1 0x5b //MAC_REG_DATA1
#define MAC_NETCFG0 0x5c
#define MAC_NETCFG1 0x5d
#define MAC_WAKCTRL 0x5e
#define MAC_FLWCTRL 0x60
#define MAC_P_TIME0 0x61
#define MAC_P_TIME1 0x62
#define MAC_VLANCTRL 0x64
#define MAC_VLANID0 0x65
#define MAC_VLANID1 0x66
/* ARP/RARP & IP Layer */
#define ARP_CTRL 0x80
#define ARP_TIMER 0x81
#define ARP_HOSTNEX_CH 0x82
#define RARP_CTRL 0x84
#define IP_CHKSUM_CTRL 0x90
#define IP_DEFGWCTRL 0x91
#define IP_GW_IP0 0x94 /* Default Gateway IP address */
#define IP_GW_IP1 0x95
#define IP_GW_IP2 0x96
#define IP_GW_IP3 0x97
#define IP_SUB_AM0 0x98 /* Subnet Address Mask */
#define IP_SUB_AM1 0x99
#define IP_SUB_AM2 0x9a
#define IP_SUB_AM3 0x9b
#define IP_LIPA0 0x9c /* Local IP address */
#define IP_LIPA1 0x9d
#define IP_LIPA2 0x9e
#define IP_LIPA3 0x9f
/* ICMP/IGMP Layer */
#define ICMP_RFIFO_WP0 0xC0
#define ICMP_RFIFO_WP1 0xC1
#define ICMP_RFIFO_RP0 0xC2
#define ICMP_RFIFO_RP1 0xC3
#define ICMP_TFIFO_WP0 0xC4
#define ICMP_TFIFO_WP1 0xC5
#define ICMP_TFIFO_RP0 0xC6
#define ICMP_TFIFO_RP1 0xC7
#define ICMP_TXDCTRL 0xC8
#define ICMP_TFIFO_FS0 0xC9
#define ICMP_TFIFO_FS1 0xCA
#define ICMP_CHCTRL 0xD0
#define ICMP_IPID0 0xD4
#define ICMP_IPID1 0xD5
#define ICMP_TOS 0xD6
#define ICMP_TTL 0xD7
#define ICMP_DIPA0 0xD8
#define ICMP_DIPA1 0xD9
#define ICMP_DIPA2 0xDA
#define ICMP_DIPA3 0xDB
#define ICMP_DMAC0 0xDC
#define ICMP_DMAC1 0xDD
#define ICMP_DMAC2 0xDE
#define ICMP_DMAC3 0xDF
#define ICMP_DMAC4 0xE0
#define ICMP_DMAC5 0xE1
#define IGMP_CHCTRL 0xE4
#define IGMP_GRPCTRL 0xE5
#define IGMP_GRPSTAT 0xE6
#define IGMP_GP0_A0 0xE8
#define IGMP_GP0_A1 0xE9
#define IGMP_GP0_A2 0xEA
#define IGMP_GP0_A3 0xEB
#define IGMP_GP1_A0 0xEC
#define IGMP_GP1_A1 0xED
#define IGMP_GP1_A2 0xEE
#define IGMP_GP1_A3 0xEF
#define IGMP_GP2_A0 0xF0
#define IGMP_GP2_A1 0xF1
#define IGMP_GP2_A2 0xF2
#define IGMP_GP2_A3 0xF3
#define IGMP_GP3_A0 0xF4
#define IGMP_GP3_A1 0xF5
#define IGMP_GP3_A2 0xF6
#define IGMP_GP3_A3 0xF7
/* Socket Layer */
#define SOCK_RFIFO_WP0(ch) (ch * 0x80 +0x100)
#define SOCK_RFIFO_WP1(ch) (ch * 0x80 +0x101)
#define SOCK_RFIFO_RP0(ch) (ch * 0x80 +0x102)
#define SOCK_RFIFO_RP1(ch) (ch * 0x80 +0x103)
#define SOCK_TFIFO_WP0(ch) (ch * 0x80 +0x104)
#define SOCK_TFIFO_WP1(ch) (ch * 0x80 +0x105)
#define SOCK_TFIFO_RP0(ch) (ch * 0x80 +0x106)
#define SOCK_TFIFO_RP1(ch) (ch * 0x80 +0x107)
#define SOCK_TXDCTRL(ch) (ch * 0x80 +0x108)
#define SOCK_UDPCMD(ch) (ch * 0x80 +0x109)
#define SOCK_TCPRTCTRL(ch) (ch * 0x80 +0x10A)
#define SOCK_TCPRTCNT(ch) (ch * 0x80 +0x10B)
#define SOCK_TCPDACKCTRL(ch) (ch * 0x80 +0x10C)
#define SOCK_TCPPT2MSL(ch) (ch * 0x80 +0x10D)
#define SOCK_CHCTRL0(ch) (ch * 0x80 +0x10E)
#define SOCK_CHCTRL1(ch) (ch * 0x80 +0x10F)
#define SOCK_IPID0(ch) (ch * 0x80 +0x110)
#define SOCK_IPID1(ch) (ch * 0x80 +0x111)
#define SOCK_TOS(ch) (ch * 0x80 +0x112)
#define SOCK_TTL(ch) (ch * 0x80 +0x113)
#define SOCK_SP0(ch) (ch * 0x80 +0x114)
#define SOCK_SP1(ch) (ch * 0x80 +0x115)
#define SOCK_DP0(ch) (ch * 0x80 +0x116)
#define SOCK_DP1(ch) (ch * 0x80 +0x117)
#define SOCK_DIPA0(ch) (ch * 0x80 +0x118)
#define SOCK_DIPA1(ch) (ch * 0x80 +0x119)
#define SOCK_DIPA2(ch) (ch * 0x80 +0x11A)
#define SOCK_DIPA3(ch) (ch * 0x80 +0x11B)
#define SOCK_DMAC0(ch) (ch * 0x80 +0x11C)
#define SOCK_DMAC1(ch) (ch * 0x80 +0x11D)
#define SOCK_DMAC2(ch) (ch * 0x80 +0x11E)
#define SOCK_DMAC3(ch) (ch * 0x80 +0x11F)
#define SOCK_DMAC4(ch) (ch * 0x80 +0x120)
#define SOCK_DMAC5(ch) (ch * 0x80 +0x121)
#define SOCK_TXULN0(ch) (ch * 0x80 +0x122)
#define SOCK_TXULN1(ch) (ch * 0x80 +0x123)
#define SOCK_TCPCMD(ch) (ch * 0x80 +0x124)
#define SOCK_TCPSMS0(ch) (ch * 0x80 +0x125)
#define SOCK_TCPSMS1(ch) (ch * 0x80 +0x126)
#define SOCK_TCPEVINTEN(ch) (ch * 0x80 +0x128)
#define SOCK_TCPEVINTSTAT(ch) (ch * 0x80 +0x129)
#define SOCK_TFIFO_FS0(ch) (ch * 0x80 +0x12A)
#define SOCK_TFIFO_FS1(ch) (ch * 0x80 +0x12B)
#define SOCK_TXSN0(ch) (ch * 0x80 +0x130) /* TX */
#define SOCK_TXSN1(ch) (ch * 0x80 +0x131)
#define SOCK_TXSN2(ch) (ch * 0x80 +0x132)
#define SOCK_TXSN3(ch) (ch * 0x80 +0x133)
#define SOCK_TXAN0(ch) (ch * 0x80 +0x134)
#define SOCK_TXAN1(ch) (ch * 0x80 +0x135)
#define SOCK_TXAN2(ch) (ch * 0x80 +0x136)
#define SOCK_TXAN3(ch) (ch * 0x80 +0x137)
#define SOCK_TXDATOFF(ch) (ch * 0x80 +0x138)
#define SOCK_TXFLAG(ch) (ch * 0x80 +0x139)
#define SOCK_TXW0(ch) (ch * 0x80 +0x13A)
#define SOCK_TXW1(ch) (ch * 0x80 +0x13B)
#define SOCK_TXURG0(ch) (ch * 0x80 +0x13C)
#define SOCK_TXURG1(ch) (ch * 0x80 +0x13D)
#define SOCK_LMSS0(ch) (ch * 0x80 +0x13E)
#define SOCK_LMSS1(ch) (ch * 0x80 +0x13F)
#define SOCK_RXSN0(ch) (ch * 0x80 +0x140) /* RX */
#define SOCK_RXSN1(ch) (ch * 0x80 +0x141)
#define SOCK_RXSN2(ch) (ch * 0x80 +0x142)
#define SOCK_RXSN3(ch) (ch * 0x80 +0x143)
#define SOCK_RXAN0(ch) (ch * 0x80 +0x144)
#define SOCK_RXAN1(ch) (ch * 0x80 +0x145)
#define SOCK_RXAN2(ch) (ch * 0x80 +0x146)
#define SOCK_RXAN3(ch) (ch * 0x80 +0x147)
#define SOCK_RXDATOFF(ch) (ch * 0x80 +0x148)
#define SOCK_RXFLAG(ch) (ch * 0x80 +0x149)
#define SOCK_RXW0(ch) (ch * 0x80 +0x14A)
#define SOCK_RXW1(ch) (ch * 0x80 +0x14B)
#define SOCK_RXURG0(ch) (ch * 0x80 +0x14C)
#define SOCK_RXURG1(ch) (ch * 0x80 +0x14D)
#define SOCK_RMSS0(ch) (ch * 0x80 +0x14E)
#define SOCK_RMSS1(ch) (ch * 0x80 +0x14F)
/* PPPoE Layer */
#define PPPOE_RFIFO_WP0 0x300
#define PPPOE_RFIFO_WP1 0x301
#define PPPOE_RFIFO_RP0 0x302
#define PPPOE_RFIFO_RP1 0x303
#define PPPOE_TFIFO_WP0 0x304
#define PPPOE_TFIFO_WP1 0x305
#define PPPOE_TFIFO_RP0 0x306
#define PPPOE_TFIFO_RP1 0x307
#define PPPOE_TXDCTRL 0x308
#define PPPOE_TFIFO_FS0 0x309
#define PPPOE_TFIFO_FS1 0x30A
#define PPPOE_CHCTRL 0x310
#define PPPOE_RTCTRL 0x311
#define PPPOE_TOSTAT 0x312
#define PPPOE_DMAC0 0x314
#define PPPOE_DMAC1 0x315
#define PPPOE_DMAC2 0x316
#define PPPOE_DMAC3 0x317
#define PPPOE_DMAC4 0x318
#define PPPOE_DMAC5 0x319
#define PPPOE_SID0 0x31A
#define PPPOE_SID1 0x31B
/* MIB Status */
#define MIB_CTRL 0x340
#define MIB_STAT1 0x341
#define MIB_STAT2 0x342
#define MIB_RX_O0 0x344 /* RX */
#define MIB_RX_O1 0x345
#define MIB_RX_O2 0x346
#define MIB_RX_UP0 0x348
#define MIB_RX_UP1 0x349
#define MIB_RX_NUP0 0x34A
#define MIB_RX_NUP1 0x34B
#define MIB_RX_DP0 0x34C
#define MIB_RX_DP1 0x34D
#define MIB_RX_EP0 0x34E
#define MIB_RX_EP1 0x34F
#define MIB_RX_CEP0 0x350
#define MIB_RX_CEP1 0x351
#define MIB_RX_AEP0 0x352
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -