Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
solos-pci.c File Reference
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/ioport.h>
#include <linux/types.h>
#include <linux/pci.h>
#include <linux/atm.h>
#include <linux/atmdev.h>
#include <linux/skbuff.h>
#include <linux/sysfs.h>
#include <linux/device.h>
#include <linux/kobject.h>
#include <linux/firmware.h>
#include <linux/ctype.h>
#include <linux/swab.h>
#include <linux/slab.h>
#include "solos-attrlist.c"

Go to the source code of this file.

Data Structures

struct  pkt_hdr
 
struct  solos_skb_cb
 
struct  solos_card
 
struct  solos_param
 

Macros

#define DEBUG
 
#define VERBOSE_DEBUG
 
#define VERSION   "0.07"
 
#define PTAG   "solos-pci"
 
#define CONFIG_RAM_SIZE   128
 
#define FLAGS_ADDR   0x7C
 
#define IRQ_EN_ADDR   0x78
 
#define FPGA_VER   0x74
 
#define IRQ_CLEAR   0x70
 
#define WRITE_FLASH   0x6C
 
#define PORTS   0x68
 
#define FLASH_BLOCK   0x64
 
#define FLASH_BUSY   0x60
 
#define FPGA_MODE   0x5C
 
#define FLASH_MODE   0x58
 
#define TX_DMA_ADDR(port)   (0x40 + (4 * (port)))
 
#define RX_DMA_ADDR(port)   (0x30 + (4 * (port)))
 
#define DATA_RAM_SIZE   32768
 
#define BUF_SIZE   2048
 
#define OLD_BUF_SIZE   4096 /* For FPGA versions <= 2*/
 
#define FPGA_PAGE   528 /* FPGA flash page size*/
 
#define SOLOS_PAGE   512 /* Solos flash page size*/
 
#define FPGA_BLOCK   (FPGA_PAGE * 8) /* FPGA flash block size*/
 
#define SOLOS_BLOCK   (SOLOS_PAGE * 8) /* Solos flash block size*/
 
#define RX_BUF(card, nr)   ((card->buffers) + (nr)*(card->buffer_size)*2)
 
#define TX_BUF(card, nr)   ((card->buffers) + (nr)*(card->buffer_size)*2 + (card->buffer_size))
 
#define FLASH_BUF   ((card->buffers) + 4*(card->buffer_size)*2)
 
#define RX_DMA_SIZE   2048
 
#define FPGA_VERSION(a, b)   (((a) << 8) + (b))
 
#define LEGACY_BUFFERS   2
 
#define DMA_SUPPORTED   4
 
#define SKB_CB(skb)   ((struct solos_skb_cb *)skb->cb)
 
#define PKT_DATA   0
 
#define PKT_COMMAND   1
 
#define PKT_POPEN   3
 
#define PKT_PCLOSE   4
 
#define PKT_STATUS   5
 
#define SOLOS_CHAN(atmdev)   ((int)(unsigned long)(atmdev)->phy_data)
 
#define SOLOS_ATTR_RO(x)   static DEVICE_ATTR(x, 0444, solos_param_show, NULL);
 
#define SOLOS_ATTR_RW(x)   static DEVICE_ATTR(x, 0644, solos_param_show, solos_param_store);
 
#define SOLOS_ATTR_RO(x)   &dev_attr_##x.attr,
 
#define SOLOS_ATTR_RW(x)   &dev_attr_##x.attr,
 

Functions

 MODULE_AUTHOR ("Traverse Technologies <support@traverse.com.au>")
 
 MODULE_DESCRIPTION ("Solos PCI driver")
 
 MODULE_VERSION (VERSION)
 
 MODULE_LICENSE ("GPL")
 
 MODULE_FIRMWARE ("solos-FPGA.bin")
 
 MODULE_FIRMWARE ("solos-Firmware.bin")
 
 MODULE_FIRMWARE ("solos-db-FPGA.bin")
 
 MODULE_PARM_DESC (reset,"Reset Solos chips on startup")
 
 MODULE_PARM_DESC (atmdebug,"Print ATM data")
 
 MODULE_PARM_DESC (firmware_upgrade,"Initiate Solos firmware upgrade")
 
 MODULE_PARM_DESC (fpga_upgrade,"Initiate FPGA upgrade")
 
 MODULE_PARM_DESC (db_firmware_upgrade,"Initiate daughter board Solos firmware upgrade")
 
 MODULE_PARM_DESC (db_fpga_upgrade,"Initiate daughter board FPGA upgrade")
 
 module_param (reset, int, 0444)
 
 module_param (atmdebug, int, 0644)
 
 module_param (firmware_upgrade, int, 0444)
 
 module_param (fpga_upgrade, int, 0444)
 
 module_param (db_firmware_upgrade, int, 0444)
 
 module_param (db_fpga_upgrade, int, 0444)
 
 MODULE_DEVICE_TABLE (pci, fpga_pci_tbl)
 
 module_init (solos_pci_init)
 
 module_exit (solos_pci_exit)
 

Macro Definition Documentation

#define BUF_SIZE   2048

Definition at line 63 of file solos-pci.c.

#define CONFIG_RAM_SIZE   128

Definition at line 48 of file solos-pci.c.

#define DATA_RAM_SIZE   32768

Definition at line 62 of file solos-pci.c.

#define DEBUG

Definition at line 24 of file solos-pci.c.

#define DMA_SUPPORTED   4

Definition at line 78 of file solos-pci.c.

#define FLAGS_ADDR   0x7C

Definition at line 49 of file solos-pci.c.

#define FLASH_BLOCK   0x64

Definition at line 55 of file solos-pci.c.

#define FLASH_BUF   ((card->buffers) + 4*(card->buffer_size)*2)

Definition at line 72 of file solos-pci.c.

#define FLASH_BUSY   0x60

Definition at line 56 of file solos-pci.c.

#define FLASH_MODE   0x58

Definition at line 58 of file solos-pci.c.

#define FPGA_BLOCK   (FPGA_PAGE * 8) /* FPGA flash block size*/

Definition at line 67 of file solos-pci.c.

#define FPGA_MODE   0x5C

Definition at line 57 of file solos-pci.c.

#define FPGA_PAGE   528 /* FPGA flash page size*/

Definition at line 65 of file solos-pci.c.

#define FPGA_VER   0x74

Definition at line 51 of file solos-pci.c.

#define FPGA_VERSION (   a,
  b 
)    (((a) << 8) + (b))

Definition at line 76 of file solos-pci.c.

#define IRQ_CLEAR   0x70

Definition at line 52 of file solos-pci.c.

#define IRQ_EN_ADDR   0x78

Definition at line 50 of file solos-pci.c.

#define LEGACY_BUFFERS   2

Definition at line 77 of file solos-pci.c.

#define OLD_BUF_SIZE   4096 /* For FPGA versions <= 2*/

Definition at line 64 of file solos-pci.c.

#define PKT_COMMAND   1

Definition at line 103 of file solos-pci.c.

#define PKT_DATA   0

Definition at line 102 of file solos-pci.c.

#define PKT_PCLOSE   4

Definition at line 105 of file solos-pci.c.

#define PKT_POPEN   3

Definition at line 104 of file solos-pci.c.

#define PKT_STATUS   5

Definition at line 106 of file solos-pci.c.

#define PORTS   0x68

Definition at line 54 of file solos-pci.c.

#define PTAG   "solos-pci"

Definition at line 46 of file solos-pci.c.

#define RX_BUF (   card,
  nr 
)    ((card->buffers) + (nr)*(card->buffer_size)*2)

Definition at line 70 of file solos-pci.c.

#define RX_DMA_ADDR (   port)    (0x30 + (4 * (port)))

Definition at line 60 of file solos-pci.c.

#define RX_DMA_SIZE   2048

Definition at line 74 of file solos-pci.c.

#define SKB_CB (   skb)    ((struct solos_skb_cb *)skb->cb)

Definition at line 100 of file solos-pci.c.

#define SOLOS_ATTR_RO (   x)    static DEVICE_ATTR(x, 0444, solos_param_show, NULL);

Definition at line 513 of file solos-pci.c.

#define SOLOS_ATTR_RO (   x)    &dev_attr_##x.attr,

Definition at line 513 of file solos-pci.c.

#define SOLOS_ATTR_RW (   x)    static DEVICE_ATTR(x, 0644, solos_param_show, solos_param_store);

Definition at line 514 of file solos-pci.c.

#define SOLOS_ATTR_RW (   x)    &dev_attr_##x.attr,

Definition at line 514 of file solos-pci.c.

#define SOLOS_BLOCK   (SOLOS_PAGE * 8) /* Solos flash block size*/

Definition at line 68 of file solos-pci.c.

#define SOLOS_CHAN (   atmdev)    ((int)(unsigned long)(atmdev)->phy_data)

Definition at line 140 of file solos-pci.c.

#define SOLOS_PAGE   512 /* Solos flash page size*/

Definition at line 66 of file solos-pci.c.

#define TX_BUF (   card,
  nr 
)    ((card->buffers) + (nr)*(card->buffer_size)*2 + (card->buffer_size))

Definition at line 71 of file solos-pci.c.

#define TX_DMA_ADDR (   port)    (0x40 + (4 * (port)))

Definition at line 59 of file solos-pci.c.

#define VERBOSE_DEBUG

Definition at line 25 of file solos-pci.c.

#define VERSION   "0.07"

Definition at line 45 of file solos-pci.c.

#define WRITE_FLASH   0x6C

Definition at line 53 of file solos-pci.c.

Function Documentation

MODULE_AUTHOR ( "Traverse Technologies <support@traverse.com.au>"  )
MODULE_DESCRIPTION ( "Solos PCI driver )
MODULE_DEVICE_TABLE ( pci  ,
fpga_pci_tbl   
)
module_exit ( solos_pci_exit  )
MODULE_FIRMWARE ( "solos-FPGA.bin"  )
MODULE_FIRMWARE ( "solos-Firmware.bin"  )
MODULE_FIRMWARE ( "solos-db-FPGA.bin"  )
module_init ( solos_pci_init  )
MODULE_LICENSE ( "GPL"  )
module_param ( reset  ,
int  ,
0444   
)
module_param ( atmdebug  ,
int  ,
0644   
)
module_param ( firmware_upgrade  ,
int  ,
0444   
)
module_param ( fpga_upgrade  ,
int  ,
0444   
)
module_param ( db_firmware_upgrade  ,
int  ,
0444   
)
module_param ( db_fpga_upgrade  ,
int  ,
0444   
)
MODULE_PARM_DESC ( reset  ,
"Reset Solos chips on startup"   
)
MODULE_PARM_DESC ( atmdebug  ,
"Print ATM data  
)
MODULE_PARM_DESC ( firmware_upgrade  ,
"Initiate Solos firmware upgrade"   
)
MODULE_PARM_DESC ( fpga_upgrade  ,
"Initiate FPGA upgrade"   
)
MODULE_PARM_DESC ( db_firmware_upgrade  ,
"Initiate daughter board Solos firmware upgrade"   
)
MODULE_PARM_DESC ( db_fpga_upgrade  ,
"Initiate daughter board FPGA upgrade"   
)
MODULE_VERSION ( VERSION  )