OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [stable_0_2_0_rc2/] [or1ksim/] [peripheral/] [ethernet_i.h] - Diff between revs 695 and 702

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 695 Rev 702
Line 21... Line 21...
#ifndef __OR1KSIM_PERIPHERAL_ETHERNET_I_H
#ifndef __OR1KSIM_PERIPHERAL_ETHERNET_I_H
#define __OR1KSIM_PERIPHERAL_ETHERNET_I_H
#define __OR1KSIM_PERIPHERAL_ETHERNET_I_H
 
 
#include "ethernet.h"
#include "ethernet.h"
#include "config.h"
#include "config.h"
 
#include <netpacket/packet.h>
 
#include <sys/ioctl.h>
 
#include <sys/socket.h>
 
#include <net/if.h>
 
 
/*
/*
 * Ethernet protocol definitions
 * Ethernet protocol definitions
 */
 */
#if HAVE_NET_ETHERNET_H
#if HAVE_NET_ETHERNET_H
Line 88... Line 92...
 
 
#define ETH_RXSTATE_IDLE        0
#define ETH_RXSTATE_IDLE        0
#define ETH_RXSTATE_WAIT4BD     10
#define ETH_RXSTATE_WAIT4BD     10
#define ETH_RXSTATE_RECV        20
#define ETH_RXSTATE_RECV        20
#define ETH_RXSTATE_WRITEFIFO   30
#define ETH_RXSTATE_WRITEFIFO   30
 
 
 
#define ETH_RTX_FILE    0
 
#define ETH_RTX_SOCK    1
 
 
 
#define ETH_MAXPL   0x10000
 
 
struct eth_device
struct eth_device
{
{
  /* Base address in memory */
  /* Base address in memory */
  unsigned long baseaddr;
  unsigned long baseaddr;
 
 
Line 104... Line 114...
        unsigned rx_channel;
        unsigned rx_channel;
 
 
        /* Our address */
        /* Our address */
        unsigned char mac_address[ETH_ALEN];
        unsigned char mac_address[ETH_ALEN];
 
 
 
  /* interrupt line */
 
  unsigned long mac_int;
 
 
  /* RX and TX file names and handles */
  /* RX and TX file names and handles */
  const char *rxfile, *txfile;
  const char *rxfile, *txfile;
        int txfd;
        int txfd;
        int rxfd;
        int rxfd;
        off_t loopback_offset;
        off_t loopback_offset;
 
 
 
    int rtx_sock;
 
    int rtx_type;
 
    struct ifreq ifr;
 
    fd_set rfds, wfds;
 
 
        /* Current TX state */
        /* Current TX state */
        struct
        struct
        {
        {
            unsigned long state;
            unsigned long state;
            unsigned long bd_index;
            unsigned long bd_index;
            unsigned long bd;
            unsigned long bd;
            unsigned long bd_addr;
            unsigned long bd_addr;
            unsigned working, waiting_for_dma, error;
            unsigned working, waiting_for_dma, error;
            unsigned packet_length;
            long packet_length;
            unsigned minimum_length, maximum_length;
            unsigned minimum_length, maximum_length;
            unsigned add_crc;
            unsigned add_crc;
 
            unsigned crc_dly;
            unsigned long crc_value;
            unsigned long crc_value;
            unsigned bytes_left, bytes_sent;
            long bytes_left, bytes_sent;
        } tx;
        } tx;
 
 
        /* Current RX state */
        /* Current RX state */
        struct
        struct
        {
        {
            unsigned long state;
            unsigned long state;
            unsigned long bd_index;
            unsigned long bd_index;
            unsigned long bd;
            unsigned long bd;
 
            unsigned long bd_addr;
            int fd;
            int fd;
            off_t *offset;
            off_t *offset;
            unsigned working, error, waiting_for_dma;
            unsigned working, error, waiting_for_dma;
            unsigned packet_length, bytes_read, bytes_left;
            long packet_length, bytes_read, bytes_left;
        } rx;
        } rx;
 
 
  /* Visible registers */
  /* Visible registers */
  struct
  struct
  {
  {
Line 161... Line 181...
 
 
    /* Buffer descriptors */
    /* Buffer descriptors */
    unsigned long bd_ram[ETH_BD_SPACE / 4];
    unsigned long bd_ram[ETH_BD_SPACE / 4];
  } regs;
  } regs;
 
 
    unsigned long rx_buff[0x10000];
    unsigned char rx_buff[ETH_MAXPL];
    unsigned long tx_buff[0x10000];
    unsigned char tx_buff[ETH_MAXPL];
    unsigned long lo_buff[0x10000];
    unsigned char lo_buff[ETH_MAXPL];
};
};
 
 
 
 
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.