Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
sun3_82586.c File Reference
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/bitops.h>
#include <asm/io.h>
#include <asm/idprom.h>
#include <asm/machines.h>
#include <asm/sun3mmu.h>
#include <asm/dvma.h>
#include <asm/byteorder.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include "sun3_82586.h"

Go to the source code of this file.

Data Structures

struct  priv
 

Macros

#define DRV_NAME   "sun3_82586"
 
#define DEBUG   /* debug on */
 
#define SYSBUSVAL   0 /* 16 Bit */
 
#define SUN3_82586_TOTAL_SIZE   PAGE_SIZE
 
#define sun3_attn586()   {*(volatile unsigned char *)(dev->base_addr) |= IEOB_ATTEN; *(volatile unsigned char *)(dev->base_addr) &= ~IEOB_ATTEN;}
 
#define sun3_reset586()   {*(volatile unsigned char *)(dev->base_addr) = 0; udelay(100); *(volatile unsigned char *)(dev->base_addr) = IEOB_NORSET;}
 
#define sun3_disint()   {*(volatile unsigned char *)(dev->base_addr) &= ~IEOB_IENAB;}
 
#define sun3_enaint()   {*(volatile unsigned char *)(dev->base_addr) |= IEOB_IENAB;}
 
#define sun3_active()   {*(volatile unsigned char *)(dev->base_addr) |= (IEOB_IENAB|IEOB_ONAIR|IEOB_NORSET);}
 
#define make32(ptr16)   (p->memtop + (swab16((unsigned short) (ptr16))) )
 
#define make24(ptr32)   (char *)swab32(( ((unsigned long) (ptr32)) - p->base))
 
#define make16(ptr32)   (swab16((unsigned short) ((unsigned long)(ptr32) - (unsigned long) p->memtop )))
 
#define RECV_BUFF_SIZE   1536 /* slightly oversized */
 
#define XMIT_BUFF_SIZE   1536 /* slightly oversized */
 
#define NUM_XMIT_BUFFS   1 /* config for 32K shmem */
 
#define NUM_RECV_BUFFS_8   4 /* config for 32K shared mem */
 
#define NUM_RECV_BUFFS_16   9 /* config for 32K shared mem */
 
#define NUM_RECV_BUFFS_32   16 /* config for 32K shared mem */
 
#define NO_NOPCOMMANDS   /* only possible with NUM_XMIT_BUFFS=1 */
 
#define DELAY(x)   mdelay(32 * x);
 
#define DELAY_16()   ; { udelay(16); }
 
#define DELAY_18()   ; { udelay(4); }
 
#define WAIT_4_SCB_CMD()
 
#define WAIT_4_SCB_CMD_RUC()
 
#define WAIT_4_STAT_COMPL(addr)
 

Functions

struct net_device *__init sun3_82586_probe (int unit)
 

Macro Definition Documentation

#define DEBUG   /* debug on */

Definition at line 54 of file sun3_82586.c.

#define DELAY (   x)    mdelay(32 * x);

Definition at line 93 of file sun3_82586.c.

#define DELAY_16 ( )    ; { udelay(16); }

Definition at line 94 of file sun3_82586.c.

#define DELAY_18 ( )    ; { udelay(4); }

Definition at line 95 of file sun3_82586.c.

#define DRV_NAME   "sun3_82586"

Definition at line 52 of file sun3_82586.c.

#define make16 (   ptr32)    (swab16((unsigned short) ((unsigned long)(ptr32) - (unsigned long) p->memtop )))

Definition at line 66 of file sun3_82586.c.

#define make24 (   ptr32)    (char *)swab32(( ((unsigned long) (ptr32)) - p->base))

Definition at line 65 of file sun3_82586.c.

#define make32 (   ptr16)    (p->memtop + (swab16((unsigned short) (ptr16))) )

Definition at line 64 of file sun3_82586.c.

#define NO_NOPCOMMANDS   /* only possible with NUM_XMIT_BUFFS=1 */

Definition at line 88 of file sun3_82586.c.

#define NUM_RECV_BUFFS_16   9 /* config for 32K shared mem */

Definition at line 86 of file sun3_82586.c.

#define NUM_RECV_BUFFS_32   16 /* config for 32K shared mem */

Definition at line 87 of file sun3_82586.c.

#define NUM_RECV_BUFFS_8   4 /* config for 32K shared mem */

Definition at line 85 of file sun3_82586.c.

#define NUM_XMIT_BUFFS   1 /* config for 32K shmem */

Definition at line 84 of file sun3_82586.c.

#define RECV_BUFF_SIZE   1536 /* slightly oversized */

Definition at line 82 of file sun3_82586.c.

#define SUN3_82586_TOTAL_SIZE   PAGE_SIZE

Definition at line 56 of file sun3_82586.c.

#define sun3_active ( )    {*(volatile unsigned char *)(dev->base_addr) |= (IEOB_IENAB|IEOB_ONAIR|IEOB_NORSET);}

Definition at line 62 of file sun3_82586.c.

#define sun3_attn586 ( )    {*(volatile unsigned char *)(dev->base_addr) |= IEOB_ATTEN; *(volatile unsigned char *)(dev->base_addr) &= ~IEOB_ATTEN;}

Definition at line 58 of file sun3_82586.c.

#define sun3_disint ( )    {*(volatile unsigned char *)(dev->base_addr) &= ~IEOB_IENAB;}

Definition at line 60 of file sun3_82586.c.

#define sun3_enaint ( )    {*(volatile unsigned char *)(dev->base_addr) |= IEOB_IENAB;}

Definition at line 61 of file sun3_82586.c.

#define sun3_reset586 ( )    {*(volatile unsigned char *)(dev->base_addr) = 0; udelay(100); *(volatile unsigned char *)(dev->base_addr) = IEOB_NORSET;}

Definition at line 59 of file sun3_82586.c.

#define SYSBUSVAL   0 /* 16 Bit */

Definition at line 55 of file sun3_82586.c.

#define WAIT_4_SCB_CMD ( )
Value:
{ int i; \
for(i=0;i<16384;i++) { \
if(!p->scb->cmd_cuc) break; \
DELAY_18(); \
if(i == 16383) { \
printk("%s: scb_cmd timed out: %04x,%04x .. disabling i82586!!\n",dev->name,p->scb->cmd_cuc,p->scb->cus); \
if(!p->reseted) { p->reseted = 1; sun3_reset586(); } } } }

Definition at line 98 of file sun3_82586.c.

#define WAIT_4_SCB_CMD_RUC ( )
Value:
{ int i; \
for(i=0;i<16384;i++) { \
if(!p->scb->cmd_ruc) break; \
DELAY_18(); \
if(i == 16383) { \
printk("%s: scb_cmd (ruc) timed out: %04x,%04x .. disabling i82586!!\n",dev->name,p->scb->cmd_ruc,p->scb->rus); \
if(!p->reseted) { p->reseted = 1; sun3_reset586(); } } } }

Definition at line 107 of file sun3_82586.c.

#define WAIT_4_STAT_COMPL (   addr)
Value:
{ int i; \
for(i=0;i<32767;i++) { \
if(swab16((addr)->cmd_status) & STAT_COMPL) break; \
DELAY_16(); DELAY_16(); } }

Definition at line 115 of file sun3_82586.c.

#define XMIT_BUFF_SIZE   1536 /* slightly oversized */

Definition at line 83 of file sun3_82586.c.

Function Documentation

struct net_device* __init sun3_82586_probe ( int  unit)
read

Definition at line 278 of file sun3_82586.c.