?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{FILE START}

library

?curdirlinks? - Rev 6

?prevdifflink? - Blame - ?getfile?

/*! \file prism2.h \brief Prism2 802.11b Wireless-LAN Interface Driver. */
//*****************************************************************************
//
// File Name    : 'prism2.h'
// Title                : Prism2 802.11b Wireless-LAN Interface Driver
// Author               : Pascal Stang
// Created              : 12/27/2004
// Revised              : 1/7/2005
// Version              : 0.1
// Target MCU   : Atmel AVR series
// Editor Tabs  : 4
//
///     \ingroup network
///     \defgroup prism2 PrismII 802.11b WLAN Interface Driver (prism2.c)
///     \code #include "net/prism2.h" \endcode
///     \par Overview
///             This driver provides initialization and transmit/receive
///     functions for the Prism2 802.11b Wireless-LAN Controller.
///
/// \note This driver works but is still in development.
//
//*****************************************************************************
//@{

#ifndef PRISM2_H
#define PRISM2_H

#include "global.h"

#define nop()   asm volatile ("nop")

// PRISM2 I/O register defines
#define PRISM2_REG_CMD                  0x00
#define PRISM2_REG_PARAM0               0x02
#define PRISM2_REG_PARAM1               0x04
#define PRISM2_REG_PARAM2               0x06
#define PRISM2_REG_STATUS               0x08
#define PRISM2_REG_RESP0                0x0A
#define PRISM2_REG_RESP1                0x0C
#define PRISM2_REG_RESP2                0x0E

#define PRISM2_REG_INFOFID              0x10
#define PRISM2_REG_RXFID                0x20
#define PRISM2_REG_ALLOCFID             0x22
#define PRISM2_REG_TXFID                0x24

#define PRISM2_REG_BAP0SEL              0x18
#define PRISM2_REG_BAP0OFFSET   0x1C
#define PRISM2_REG_BAP0DATA             0x36

#define PRISM2_REG_BAP1SEL              0x1A
#define PRISM2_REG_BAP1OFFSET   0x1E
#define PRISM2_REG_BAP1DATA             0x38

#define PRISM2_REG_EVSTAT               0x30
#define PRISM2_REG_INTEN                0x32
#define PRISM2_REG_EVACK                0x34

#define PRISM2_REG_SWSUP0       0x28
#define PRISM2_REG_SWSUP1       0x2A
#define PRISM2_REG_SWSUP2               0x2C

#define PRISM2_REG_AUXPAGE              0x3A
#define PRISM2_REG_AUXOFFSET    0x3C
#define PRISM2_REG_AUXDATA              0x3E


// PRISM2 commands defines
#define PRISM2_CMD_INIT                 0x0000
#define PRISM2_CMD_ENABLE_MAC0  0x0001
#define PRISM2_CMD_DISABLE_MAC0 0x0002
#define PRISM2_CMD_DIAG                 0x0003
#define PRISM2_CMD_ALLOC                0x000A
#define PRISM2_CMD_TX                   0x000B
#define PRISM2_CMD_TX_RECL              0x010B
#define PRISM2_CMD_NOTIFY               0x0010
#define PRISM2_CMD_INQUIRE              0x0011
#define PRISM2_CMD_ACCESS_RD    0x0021
#define PRISM2_CMD_ACCESS_WR    0x0121
#define PRISM2_CMD_BUSY                 0x8000
#define PRISM2_CMD_NORESP               0xFFFF

// PRISM2 command result codes
#define PRISM2_RESULT_SUCCESS   0x00
#define PRISM2_RESULT_CARDFAIL  0x01
#define PRISM2_RESULT_NOBUFFER  0x05
#define PRISM2_RESULT_CMDERROR  0x7F

// PRISM2 BAP Offset defines
#define PRISM2_BAPOFFSET_ERROR  0x4000
#define PRISM2_BAPOFFSET_BUSY   0x8000

// PRISM2 event bit defines
#define PRISM2_EVENT_RX                 0x0001
#define PRISM2_EVENT_TX                 0x0002
#define PRISM2_EVENT_TXEXEC             0x0004
#define PRISM2_EVENT_ALLOC              0x0008
#define PRISM2_EVENT_CMD                0x0010
#define PRISM2_EVENT_DTIM               0x0020
#define PRISM2_EVENT_INFO               0x0080
#define PRISM2_EVENT_INFDROP    0x2000
#define PRISM2_EVENT_WTERR              0x4000
#define PRISM2_EVENT_TICK               0x8000
#define PRISM2_EVENT_ALL                0xFFFF

// PRISM2 Record ID defines (RIDs)
#define PRISM2_RID_CNFPORTTYPE                          0xFC00
#define PRISM2_RID_CNFOWNMACADDR                        0xFC01
#define PRISM2_RID_CNFDESIREDSSID                       0xFC02
#define PRISM2_RID_CNFOWNCHANNEL                        0xFC03
#define PRISM2_RID_CNFOWNSSID                           0xFC04
#define PRISM2_RID_CNFOWNATIMWIN                        0xFC05
#define PRISM2_RID_CNFSYSSCALE                          0xFC06
#define PRISM2_RID_CNFMAXDATALEN                        0xFC07
#define PRISM2_RID_CNFWDSADDR                           0xFC08
#define PRISM2_RID_CNFPMENABLED                         0xFC09
#define PRISM2_RID_CNFPMEPS                                     0xFC0A
#define PRISM2_RID_CNFMULTICASTRX                       0xFC0B
#define PRISM2_RID_CNFMAXSLEEPDUR                       0xFC0C
#define PRISM2_RID_CNFPMHOLDDUR                         0xFC0D
#define PRISM2_RID_CNFOWNNAME                           0xFC0E
#define PRISM2_RID_CNFOWNDTIMPER                        0xFC10
#define PRISM2_RID_CNFWDSADDR1                          0xFC11
#define PRISM2_RID_CNFWDSADDR2                          0xFC12
#define PRISM2_RID_CNFWDSADDR3                          0xFC13
#define PRISM2_RID_CNFWDSADDR4                          0xFC14
#define PRISM2_RID_CNFWDSADDR5                          0xFC15
#define PRISM2_RID_CNFWDSADDR6                          0xFC16
#define PRISM2_RID_CNFMCASTPMBUFF                       0xFC17
#define PRISM2_RID_CNFWEPDEFAULTKEYID           0xFC23
#define PRISM2_RID_CNFWEPDEFAULTKEY0            0xFC24
#define PRISM2_RID_CNFWEPDEFAULTKEY1            0xFC25
#define PRISM2_RID_CNFWEPDEFAULTKEY2            0xFC26
#define PRISM2_RID_CNFWEPDEFAULTKEY3            0xFC27
#define PRISM2_RID_CNFWEPFLAGS                          0xFC28
#define PRISM2_RID_CNFWEPKEYMAPTABLE            0xFC29
#define PRISM2_RID_CNFAUTHENTICATION            0xFC2A
#define PRISM2_RID_CNFMAXASSOCSTATIONS          0xFC2B
#define PRISM2_RID_CNFTXCONTROL                         0xFC2C
#define PRISM2_RID_CNFROAMINGMODE                       0xFC2D
#define PRISM2_RID_CNFHOSTAUTH                          0xFC2E
#define PRISM2_RID_CNFRCVCRCERROR                       0xFC30
#define PRISM2_RID_CNFALTRETRYCNT                       0xFC32
#define PRISM2_RID_CNFAPBCNINT                          0xFC33
#define PRISM2_RID_CNFAPPCFINFO                         0xFC34
#define PRISM2_RID_CNFSTAPCFINFO                        0xFC35
#define PRISM2_RID_CNFPRIORITYQUSAGE            0xFC37
#define PRISM2_RID_CNFTIMCTRL                           0xFC40
#define PRISM2_RID_CNFTHIRTY2TALLY                      0xFC42
#define PRISM2_RID_CNFENHSECURITY                       0xFC43
#define PRISM2_RID_CNFDBMADJUST                         0xFC46
#define PRISM2_RID_SSNGENERICELEMENT            0xFC48
#define PRISM2_RID_CNFSHORTPREAMBLE                     0xFCB0
#define PRISM2_RID_CNFEXCLONGPREAMBLE           0xFCB1
#define PRISM2_RID_CNFAUTHRSPTIMEOUT            0xFCB2
#define PRISM2_RID_CNFBASICRATES                        0xFCB3
#define PRISM2_RID_CNFSUPPRATES                         0xFCB4
#define PRISM2_RID_CNFFALLBACKCTRL                      0xFCB5
#define PRISM2_RID_WEPKEYDISABLE                        0xFCB6
#define PRISM2_RID_WEPKEYMAPINDEX                       0xFCB7
#define PRISM2_RID_BROADCASTKEYID                       0xFCB8
#define PRISM2_RID_ENTSECFLAGEYID                       0xFCB9
#define PRISM2_RID_CNFPASSIVESCANCTRL           0xFCBA
#define PRISM2_RID_SSNHANDLINGMODE                      0xFCBB
#define PRISM2_RID_MDCCONTROL                   0xFCBC
#define PRISM2_RID_MDCCOUNTRY                   0xFCBD
#define PRISM2_RID_TXPOWERMAX                   0xFCBE
#define PRISM2_RID_CNFLFOENBLED                 0xFCBF
#define PRISM2_RID_CAPINFO                                      0xFCC0
#define PRISM2_RID_LISTENINTERVAL                       0xFCC1
#define PRISM2_RID_SCANREQUEST                          0xFCE1
#define PRISM2_RID_JOINREQUEST                          0xFCE2
#define PRISM2_RID_AUTHENTICATESTA                      0xFCE3
#define PRISM2_RID_CHANNELINFOREQUEST           0xFCE4
#define PRISM2_RID_HOSTSCAN                     0xFCE5

#define PCMCIA_ATTR_COR                                         0x0000
#define PCMCIA_ATTR_CSR                                         0x0002
#define PCMCIA_ATTR_PRR                                         0x0004
#define PCMCIA_ATTR_SCR                                         0x0006
#define PCMCIA_ATTR_IOBASE0                                     0x0010
#define PCMCIA_ATTR_IOBASE1                                     0x0012
#define PCMCIA_ATTR_IOLIMIT                                     0x0018

// typedefs

// constants

// prototypes
#include "nic.h"


unsigned int prism2BeginPacketRetreive(void);
void prism2RetreivePacketData(u08* packet, unsigned int packetLength);
void prism2EndPacketRetreive(void);

void prism2SetupTxHeader(u16* header);
void prism2EventCheck(void);

// initialize the network interface for transmit/receive
void prism2Init(void);

void prism2GetMacAddress(u08* macaddr);
void prism2SetSSID(u08* ssid);
void prism2SetWEPKey(u08* wepkey);

u08 prism2Command(u16 cmd, u16 param0);
u08 prism2WriteBAP0(u16 id, u16 offset, u16* data, u16 len);
u08 prism2ReadBAP0(u16 id, u16 offset, u16* data, u16 len);

u08 prism2ReadRID(u16 id, u16 offset, u16* data, u16 len);
u08 prism2WriteRID(u16 id, u16 offset, u16* data, u16 len);


// hardware access commands
void prism2Write(unsigned short address, unsigned char data);
unsigned char prism2Read(unsigned short address);
void prism2Write16(unsigned short address, unsigned short data);
unsigned short prism2Read16(unsigned short address);
void prism2WriteMem(unsigned short address, unsigned short data);
unsigned short prism2ReadMem(unsigned short address);

// debugging commands
void prism2CardRegDump(void);
void prism2RegDump(void);

#endif
//@}

{FILE END}
{FOOTER START}

Powered by WebSVN v2.8.3