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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [uclinux/] [uClinux-2.0.x/] [include/] [linux/] [pi2.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 199 simons
 
2
#define DMA_BUFF_SIZE 2200
3
 
4
/* Network statistics, with the same names as 'struct enet_statistics'. */
5
#define netstats enet_statistics
6
 
7
#define ON 1
8
#define OFF 0
9
 
10
 
11
/* Register offset info, specific to the PI
12
 * E.g., to read the data port on channel A, use
13
 *  inportb(pichan[dev].base + CHANA + DATA)
14
 */
15
#define CHANB   0   /* Base of channel B regs */
16
#define CHANA   2   /* Base of channel A regs */
17
 
18
/* 8530 ports on each channel */
19
#define CTL 0
20
#define DATA    1
21
 
22
#define DMAEN   0x4 /* Offset off DMA Enable register */
23
 
24
/* Timer chip offsets */
25
#define TMR0    0x8 /* Offset of timer 0 register */
26
#define TMR1    0x9 /* Offset of timer 1 register */
27
#define TMR2    0xA /* Offset of timer 2 register */
28
#define TMRCMD  0xB /* Offset of timer command register */
29
 
30
/* Timer chip equates */
31
#define SC0 0x00 /* Select counter 0 */
32
#define SC1 0x40 /* Select counter 1 */
33
#define SC2 0x80 /* Select counter 2 */
34
#define CLATCH  0x00 /* Counter latching operation */
35
#define MSB 0x20 /* Read/load MSB only */
36
#define LSB 0x10 /* Read/load LSB only */
37
#define LSB_MSB 0x30 /* Read/load LSB, then MSB */
38
#define MODE0   0x00 /* Interrupt on terminal count */
39
#define MODE1   0x02 /* Programmable one shot */
40
#define MODE2   0x04 /* Rate generator */
41
#define MODE3   0x06 /* Square wave rate generator */
42
#define MODE4   0x08 /* Software triggered strobe */
43
#define MODE5   0x0a /* Hardware triggered strobe */
44
#define BCD 0x01 /* BCD counter */
45
 
46
/* DMA controller registers */
47
#define DMA_STAT    8   /* DMA controller status register */
48
#define DMA_CMD     8   /* DMA controller command register */
49
#define DMA_MASK        10  /* DMA controller mask register */
50
#define DMA_MODE        11  /* DMA controller mode register */
51
#define DMA_RESETFF 12  /* DMA controller first/last flip flop  */
52
/* DMA data */
53
#define DMA_DISABLE (0x04)  /* Disable channel n */
54
#define DMA_ENABLE  (0x00)  /* Enable channel n */
55
/* Single transfers, incr. address, auto init, writes, ch. n */
56
#define DMA_RX_MODE (0x54)
57
/* Single transfers, incr. address, no auto init, reads, ch. n */
58
#define DMA_TX_MODE (0x48)
59
 
60
#define SINGLE 3686400
61
#define DOUBLE 7372800
62
 
63
#define SIOCGPIPARAM            0x5000  /* get PI parameters */
64
#define SIOCSPIPARAM            0x5001  /* set */
65
#define SIOCGPIBAUD             0x5002  /* get only baud rate */
66
#define SIOCSPIBAUD             0x5003  
67
#define SIOCGPIDMA              0x5004  /* get only DMA */
68
#define SIOCSPIDMA              0x5005  
69
#define SIOCGPIIRQ              0x5006  /* get only IRQ */
70
#define SIOCSPIIRQ              0x5007  
71
 
72
struct pi_req  {
73
    int cmd;
74
    int speed;
75
    int clockmode;
76
    int txdelay;
77
    unsigned char persist;
78
    int slotime;
79
    int squeldelay;
80
    int dmachan;
81
    int irq;
82
};
83
 
84
#ifdef __KERNEL__
85
 
86
/* Information that needs to be kept for each channel. */
87
struct pi_local {
88
    struct netstats stats; /* %%%dp*/
89
    long open_time;             /* Useless example local info. */
90
    unsigned long xtal;
91
 
92
    struct mbuf *rcvbuf;/* Buffer for current rx packet */
93
    struct mbuf *rxdmabuf1; /* DMA rx buffer */
94
    struct mbuf *rxdmabuf2; /* DMA rx buffer */
95
 
96
    int bufsiz;         /* Size of rcvbuf */
97
    char *rcp;          /* Pointer into rcvbuf */
98
 
99
    struct sk_buff_head sndq;  /* Packets awaiting transmission */
100
    int sndcnt;         /* Number of packets on sndq */
101
    struct sk_buff *sndbuf;     /* Current buffer being transmitted */
102
    char *txdmabuf;     /* Transmit DMA buffer */
103
        char *txptr;            /* Used by B port tx */
104
        int txcnt;
105
    char tstate;        /* Transmitter state */
106
#define IDLE    0       /* Transmitter off, no data pending */
107
#define ACTIVE  1       /* Transmitter on, sending data */
108
#define UNDERRUN 2      /* Transmitter on, flushing CRC */
109
#define FLAGOUT 3       /* CRC sent - attempt to start next frame */
110
#define DEFER 4         /* Receive Active - DEFER Transmit */
111
#define ST_TXDELAY 5    /* Sending leading flags */
112
#define CRCOUT 6
113
    char rstate;        /* Set when !DCD goes to 0 (TRUE) */
114
/* Normal state is ACTIVE if Receive enabled */
115
#define RXERROR 2       /* Error -- Aborting current Frame */
116
#define RXABORT 3       /* ABORT sequence detected */
117
#define TOOBIG 4        /* too large a frame to store */
118
    int dev;            /* Device number */
119
    int base;       /* Base of I/O registers */
120
    int cardbase;     /* Base address of card */
121
    int stata;        /* address of Channel A status regs */
122
    int statb;        /* address of Channel B status regs */
123
    int speed;        /* Line speed, bps */
124
    int clockmode;    /* tapr 9600 modem clocking option */
125
    int txdelay;      /* Transmit Delay 10 ms/cnt */
126
    unsigned char persist;       /* Persistence (0-255) as a % */
127
    int slotime;      /* Delay to wait on persistence hit */
128
    int squeldelay;   /* Delay after XMTR OFF for squelch tail */
129
    struct iface *iface;    /* Associated interface */
130
    int dmachan;           /* DMA channel for this port */
131
};
132
 
133
#endif

powered by: WebSVN 2.1.0

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