#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.
|
#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, |
|
|
| 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) |
|
#define CONFIG_RAM_SIZE 128 |
#define DATA_RAM_SIZE 32768 |
#define FPGA_VERSION |
( |
|
a, |
|
|
|
b |
|
) |
| (((a) << 8) + (b)) |
#define OLD_BUF_SIZE 4096 /* For FPGA versions <= 2*/ |
#define RX_DMA_ADDR |
( |
|
port | ) |
(0x30 + (4 * (port))) |
#define SOLOS_ATTR_RO |
( |
|
x | ) |
&dev_attr_##x.attr, |
#define SOLOS_ATTR_RW |
( |
|
x | ) |
static DEVICE_ATTR(x, 0644, solos_param_show, solos_param_store); |
#define SOLOS_ATTR_RW |
( |
|
x | ) |
&dev_attr_##x.attr, |
#define SOLOS_CHAN |
( |
|
atmdev | ) |
((int)(unsigned long)(atmdev)->phy_data) |
#define TX_DMA_ADDR |
( |
|
port | ) |
(0x40 + (4 * (port))) |
MODULE_AUTHOR |
( |
"Traverse Technologies <support@traverse.com.au>" |
| ) |
|
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_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" |
|
|
) |
| |