Unit RT2800USB

From Ultibo.org
Revision as of 04:21, 19 June 2017 by Ultibo (Talk | contribs)

Jump to: navigation, search

Return to Unit Reference


Description


Ralink RT2800 USB Wireless Driver unit

The Ralink RT2800 is a WLAN controller with USB2.0 interface, Ralink is now part of MediaTek.

The list of USB supported device Ids shown below for this driver is taken from the equivalent Linux driver but not all have been tested. In general if your device works with the rt2800usb kernel module under Linux then it should also work with this driver.

Only USB devices are currently supported, PCI and other forms of the same chipset will require a separate driver unit for support.

Constants



RT2800USB specific constants RT2800USB_*
RT2800USB_NETWORK_DESCRIPTION = 'Ralink RT2800 USB Wireless'; Description of RT2800USB device
RT2800USB_DRIVER_NAME = 'Ralink RT2800 USB Wireless Driver'; Name of RT2800USB driver


RT2800USB device Id count RT2800USB_DEVICE_ID_*
RT2800USB_DEVICE_ID_COUNT = 330; Number of supported Device Ids
 
RT2800USB_DEVICE_ID:array[0..RT2800USB_DEVICE_ID_COUNT - 1] of TUSBDeviceId = (  
(idVendor:$07b8;idProduct:$2870), Abocom
(idVendor:$07b8;idProduct:$2770),  
(idVendor:$07b8;idProduct:$3070),  
(idVendor:$07b8;idProduct:$3071),  
(idVendor:$07b8;idProduct:$3072),  
(idVendor:$1482;idProduct:$3c09),  
(idVendor:$1eda;idProduct:$2012), AirTies
(idVendor:$1eda;idProduct:$2210),  
(idVendor:$1eda;idProduct:$2310),  
(idVendor:$8516;idProduct:$2070), Allwin
(idVendor:$8516;idProduct:$2770),  
(idVendor:$8516;idProduct:$2870),  
(idVendor:$8516;idProduct:$3070),  
(idVendor:$8516;idProduct:$3071),  
(idVendor:$8516;idProduct:$3072),  
(idVendor:$14b2;idProduct:$3c06), Alpha Networks
(idVendor:$14b2;idProduct:$3c07),  
(idVendor:$14b2;idProduct:$3c09),  
(idVendor:$14b2;idProduct:$3c12),  
(idVendor:$14b2;idProduct:$3c23),  
(idVendor:$14b2;idProduct:$3c25),  
(idVendor:$14b2;idProduct:$3c27),  
(idVendor:$14b2;idProduct:$3c28),  
(idVendor:$14b2;idProduct:$3c2c),  
(idVendor:$15c5;idProduct:$0008), Amit
(idVendor:$1690;idProduct:$0740), Askey
(idVendor:$0b05;idProduct:$1731), ASUS
(idVendor:$0b05;idProduct:$1732),  
(idVendor:$0b05;idProduct:$1742),  
(idVendor:$0b05;idProduct:$1784),  
(idVendor:$1761;idProduct:$0b05),  
(idVendor:$13d3;idProduct:$3247), AzureWave
(idVendor:$13d3;idProduct:$3273),  
(idVendor:$13d3;idProduct:$3305),  
(idVendor:$13d3;idProduct:$3307),  
(idVendor:$13d3;idProduct:$3321),  
(idVendor:$050d;idProduct:$8053), Belkin
(idVendor:$050d;idProduct:$805c),  
(idVendor:$050d;idProduct:$815c),  
(idVendor:$050d;idProduct:$825a),  
(idVendor:$050d;idProduct:$825b),  
(idVendor:$050d;idProduct:$935a),  
(idVendor:$050d;idProduct:$935b),  
(idVendor:$0411;idProduct:$00e8), Buffalo
(idVendor:$0411;idProduct:$0158),  
(idVendor:$0411;idProduct:$015d),  
(idVendor:$0411;idProduct:$016f),  
(idVendor:$0411;idProduct:$01a2),  
(idVendor:$0411;idProduct:$01ee),  
(idVendor:$0411;idProduct:$01a8),  
(idVendor:$07aa;idProduct:$002f), Corega
(idVendor:$07aa;idProduct:$003c),  
(idVendor:$07aa;idProduct:$003f),  
(idVendor:$18c5;idProduct:$0012),  
(idVendor:$07d1;idProduct:$3c09), D-Link
(idVendor:$07d1;idProduct:$3c0a),  
(idVendor:$07d1;idProduct:$3c0d),  
(idVendor:$07d1;idProduct:$3c0e),  
(idVendor:$07d1;idProduct:$3c0f),  
(idVendor:$07d1;idProduct:$3c11),  
(idVendor:$07d1;idProduct:$3c13),  
(idVendor:$07d1;idProduct:$3c15),  
(idVendor:$07d1;idProduct:$3c16),  
(idVendor:$07d1;idProduct:$3c17),  
(idVendor:$2001;idProduct:$3317),  
(idVendor:$2001;idProduct:$3c1b),  
(idVendor:$2001;idProduct:$3c25),  
(idVendor:$07fa;idProduct:$7712), Draytek
(idVendor:$0fe9;idProduct:$b307), DVICO
(idVendor:$7392;idProduct:$4085), Edimax
(idVendor:$7392;idProduct:$7711),  
(idVendor:$7392;idProduct:$7717),  
(idVendor:$7392;idProduct:$7718),  
(idVendor:$7392;idProduct:$7722),  
(idVendor:$203d;idProduct:$1480), Encore
(idVendor:$203d;idProduct:$14a9),  
(idVendor:$1740;idProduct:$9701), EnGenius
(idVendor:$1740;idProduct:$9702),  
(idVendor:$1740;idProduct:$9703),  
(idVendor:$1740;idProduct:$9705),  
(idVendor:$1740;idProduct:$9706),  
(idVendor:$1740;idProduct:$9707),  
(idVendor:$1740;idProduct:$9708),  
(idVendor:$1740;idProduct:$9709),  
(idVendor:$15a9;idProduct:$0012), Gemtek
(idVendor:$1044;idProduct:$800b), Gigabyte
(idVendor:$1044;idProduct:$800d),  
(idVendor:$0e66;idProduct:$0001), Hawking
(idVendor:$0e66;idProduct:$0003),  
(idVendor:$0e66;idProduct:$0009),  
(idVendor:$0e66;idProduct:$000b),  
(idVendor:$0e66;idProduct:$0013),  
(idVendor:$0e66;idProduct:$0017),  
(idVendor:$0e66;idProduct:$0018),  
(idVendor:$04bb;idProduct:$0945), I-O DATA
(idVendor:$04bb;idProduct:$0947),  
(idVendor:$04bb;idProduct:$0948),  
(idVendor:$13b1;idProduct:$0031), Linksys
(idVendor:$1737;idProduct:$0070),  
(idVendor:$1737;idProduct:$0071),  
(idVendor:$1737;idProduct:$0077),  
(idVendor:$1737;idProduct:$0078),  
(idVendor:$0789;idProduct:$0162), Logitec
(idVendor:$0789;idProduct:$0163),  
(idVendor:$0789;idProduct:$0164),  
(idVendor:$0789;idProduct:$0166),  
(idVendor:$100d;idProduct:$9031), Motorola
(idVendor:$0db0;idProduct:$3820), MSI
(idVendor:$0db0;idProduct:$3821),  
(idVendor:$0db0;idProduct:$3822),  
(idVendor:$0db0;idProduct:$3870),  
(idVendor:$0db0;idProduct:$3871),  
(idVendor:$0db0;idProduct:$6899),  
(idVendor:$0db0;idProduct:$821a),  
(idVendor:$0db0;idProduct:$822a),  
(idVendor:$0db0;idProduct:$822b),  
(idVendor:$0db0;idProduct:$822c),  
(idVendor:$0db0;idProduct:$870a),  
(idVendor:$0db0;idProduct:$871a),  
(idVendor:$0db0;idProduct:$871b),  
(idVendor:$0db0;idProduct:$871c),  
(idVendor:$0db0;idProduct:$899a),  
(idVendor:$1b75;idProduct:$3071), Ovislink
(idVendor:$1b75;idProduct:$3072),  
(idVendor:$1b75;idProduct:$a200),  
(idVendor:$20b8;idProduct:$8888), Para
(idVendor:$1d4d;idProduct:$0002), Pegatron
(idVendor:$1d4d;idProduct:$000c),  
(idVendor:$1d4d;idProduct:$000e),  
(idVendor:$1d4d;idProduct:$0011),  
(idVendor:$0471;idProduct:$200f), Philips
(idVendor:$2019;idProduct:$5201), Planex
(idVendor:$2019;idProduct:$ab25),  
(idVendor:$2019;idProduct:$ed06),  
(idVendor:$1a32;idProduct:$0304), Quanta
(idVendor:$148f;idProduct:$2070), Ralink
(idVendor:$148f;idProduct:$2770),  
(idVendor:$148f;idProduct:$2870),  
(idVendor:$148f;idProduct:$3070),  
(idVendor:$148f;idProduct:$3071),  
(idVendor:$148f;idProduct:$3072),  
(idVendor:$04e8;idProduct:$2018), Samsung
(idVendor:$129b;idProduct:$1828), Siemens
(idVendor:$0df6;idProduct:$0017), Sitecom
(idVendor:$0df6;idProduct:$002b),  
(idVendor:$0df6;idProduct:$002c),  
(idVendor:$0df6;idProduct:$002d),  
(idVendor:$0df6;idProduct:$0039),  
(idVendor:$0df6;idProduct:$003b),  
(idVendor:$0df6;idProduct:$003d),  
(idVendor:$0df6;idProduct:$003e),  
(idVendor:$0df6;idProduct:$003f),  
(idVendor:$0df6;idProduct:$0040),  
(idVendor:$0df6;idProduct:$0042),  
(idVendor:$0df6;idProduct:$0047),  
(idVendor:$0df6;idProduct:$0048),  
(idVendor:$0df6;idProduct:$0051),  
(idVendor:$0df6;idProduct:$005f),  
(idVendor:$0df6;idProduct:$0060),  
(idVendor:$083a;idProduct:$6618), SMC
(idVendor:$083a;idProduct:$7511),  
(idVendor:$083a;idProduct:$7512),  
(idVendor:$083a;idProduct:$7522),  
(idVendor:$083a;idProduct:$8522),  
(idVendor:$083a;idProduct:$a618),  
(idVendor:$083a;idProduct:$a701),  
(idVendor:$083a;idProduct:$a702),  
(idVendor:$083a;idProduct:$a703),  
(idVendor:$083a;idProduct:$b522),  
(idVendor:$15a9;idProduct:$0006), Sparklan
(idVendor:$177f;idProduct:$0153), Sweex
(idVendor:$177f;idProduct:$0164),  
(idVendor:$177f;idProduct:$0302),  
(idVendor:$177f;idProduct:$0313),  
(idVendor:$177f;idProduct:$0323),  
(idVendor:$177f;idProduct:$0324),  
(idVendor:$157e;idProduct:$300e), U-Media
(idVendor:$157e;idProduct:$3013),  
(idVendor:$0cde;idProduct:$0022), ZCOM
(idVendor:$0cde;idProduct:$0025),  
(idVendor:$5a57;idProduct:$0280), Zinwell
(idVendor:$5a57;idProduct:$0282),  
(idVendor:$5a57;idProduct:$0283),  
(idVendor:$5a57;idProduct:$5257),  
(idVendor:$0586;idProduct:$3416), Zyxel
(idVendor:$0586;idProduct:$3418),  
(idVendor:$0586;idProduct:$341a),  
(idVendor:$0586;idProduct:$341e),  
(idVendor:$0586;idProduct:$343e),  
RT2800USB_RT33XX devices
(idVendor:$050d;idProduct:$945b), Belkin
(idVendor:$2001;idProduct:$3c17), D-Link
(idVendor:$083a;idProduct:$b511), Panasonic
(idVendor:$0471;idProduct:$20dd), Philips
(idVendor:$148f;idProduct:$3370), Ralink
(idVendor:$148f;idProduct:$8070),  
(idVendor:$0df6;idProduct:$0050), Sitecom
(idVendor:$177f;idProduct:$0163), Sweex
(idVendor:$177f;idProduct:$0165),  
RT2800USB_RT35XX devices
(idVendor:$8516;idProduct:$3572), Allwin
(idVendor:$1690;idProduct:$0744), Askey
(idVendor:$1690;idProduct:$0761),  
(idVendor:$1690;idProduct:$0764),  
(idVendor:$0b05;idProduct:$179d), ASUS
(idVendor:$167b;idProduct:$4001), Cisco
(idVendor:$1740;idProduct:$9801), EnGenius
(idVendor:$04bb;idProduct:$0944), I-O DATA
(idVendor:$13b1;idProduct:$002f), Linksys
(idVendor:$1737;idProduct:$0079),  
(idVendor:$0789;idProduct:$0170), Logitec
(idVendor:$148f;idProduct:$3572), Ralink
(idVendor:$0df6;idProduct:$0041), Sitecom
(idVendor:$0df6;idProduct:$0062),  
(idVendor:$0df6;idProduct:$0065),  
(idVendor:$0df6;idProduct:$0066),  
(idVendor:$0df6;idProduct:$0068),  
(idVendor:$0930;idProduct:$0a07), Toshiba
(idVendor:$5a57;idProduct:$0284), Zinwell
RT2800USB_RT3573 devices
(idVendor:$1b75;idProduct:$7733), AirLive
(idVendor:$0b05;idProduct:$17bc), ASUS
(idVendor:$0b05;idProduct:$17ad),  
(idVendor:$050d;idProduct:$1103), Belkin
(idVendor:$148f;idProduct:$f301), Cameo
(idVendor:$2001;idProduct:$3c1f), D-Link
(idVendor:$7392;idProduct:$7733), Edimax
(idVendor:$0e66;idProduct:$0020), Hawking
(idVendor:$0e66;idProduct:$0021),  
(idVendor:$04bb;idProduct:$094e), I-O DATA
(idVendor:$13b1;idProduct:$003b), Linksys
(idVendor:$0789;idProduct:$016b), Logitec
(idVendor:$0846;idProduct:$9012), NETGEAR
(idVendor:$0846;idProduct:$9013),  
(idVendor:$0846;idProduct:$9019),  
(idVendor:$2019;idProduct:$ed19), Planex
(idVendor:$148f;idProduct:$3573), Ralink
(idVendor:$0df6;idProduct:$0067), Sitecom
(idVendor:$0df6;idProduct:$006a),  
(idVendor:$0df6;idProduct:$006e),  
(idVendor:$0586;idProduct:$3421), ZyXEL
RT2800USB_RT53XX devices
(idVendor:$043e;idProduct:$7a12), Arcadyan
(idVendor:$043e;idProduct:$7a32),  
(idVendor:$0b05;idProduct:$17e8), ASUS
(idVendor:$13d3;idProduct:$3329), Azurewave
(idVendor:$13d3;idProduct:$3365),  
(idVendor:$2001;idProduct:$3c15), D-Link
(idVendor:$2001;idProduct:$3c19),  
(idVendor:$2001;idProduct:$3c1c),  
(idVendor:$2001;idProduct:$3c1d),  
(idVendor:$2001;idProduct:$3c1e),  
(idVendor:$2001;idProduct:$3c20),  
(idVendor:$2001;idProduct:$3c22),  
(idVendor:$2001;idProduct:$3c23),  
(idVendor:$043e;idProduct:$7a22), LG innotek
(idVendor:$043e;idProduct:$7a42),  
(idVendor:$04da;idProduct:$1801), Panasonic
(idVendor:$04da;idProduct:$1800),  
(idVendor:$04da;idProduct:$23f6),  
(idVendor:$0471;idProduct:$2104), Philips
(idVendor:$0471;idProduct:$2126),  
(idVendor:$0471;idProduct:$2180),  
(idVendor:$0471;idProduct:$2181),  
(idVendor:$0471;idProduct:$2182),  
(idVendor:$148f;idProduct:$5370), Ralink
(idVendor:$148f;idProduct:$5372),  
RT2800USB_RT55XX devices
(idVendor:$043e;idProduct:$7a32), Arcadyan
(idVendor:$057c;idProduct:$8501), AVM GmbH
(idVendor:$0411;idProduct:$0241), Buffalo
(idVendor:$0411;idProduct:$0253),  
(idVendor:$2001;idProduct:$3c1a), D-Link
(idVendor:$2001;idProduct:$3c21),  
(idVendor:$043e;idProduct:$7a13), Proware
(idVendor:$148f;idProduct:$5572), Ralink
(idVendor:$20f4;idProduct:$724a), TRENDnet
RT2800USB_UNKNOWN devices
(idVendor:$07b8;idProduct:$3073), Abocom
(idVendor:$07b8;idProduct:$3074),  
(idVendor:$14b2;idProduct:$3c08), Alpha Networks
(idVendor:$14b2;idProduct:$3c11),  
(idVendor:$0e0b;idProduct:$9031), Amigo
(idVendor:$0e0b;idProduct:$9041),  
(idVendor:$0b05;idProduct:$166a), ASUS
(idVendor:$0b05;idProduct:$1760),  
(idVendor:$0b05;idProduct:$1761),  
(idVendor:$0b05;idProduct:$1790),  
(idVendor:$0b05;idProduct:$17a7),  
(idVendor:$13d3;idProduct:$3262), AzureWave
(idVendor:$13d3;idProduct:$3284),  
(idVendor:$13d3;idProduct:$3322),  
(idVendor:$13d3;idProduct:$3340),  
(idVendor:$13d3;idProduct:$3399),  
(idVendor:$13d3;idProduct:$3400),  
(idVendor:$13d3;idProduct:$3401),  
(idVendor:$050d;idProduct:$1003), Belkin
(idVendor:$0411;idProduct:$012e), Buffalo
(idVendor:$0411;idProduct:$0148),  
(idVendor:$0411;idProduct:$0150),  
(idVendor:$07aa;idProduct:$0041), Corega
(idVendor:$07aa;idProduct:$0042),  
(idVendor:$18c5;idProduct:$0008),  
(idVendor:$07d1;idProduct:$3c0b), D-Link
(idVendor:$203d;idProduct:$14a1), Encore
(idVendor:$1740;idProduct:$0600), EnGenius
(idVendor:$1740;idProduct:$0602),  
(idVendor:$15a9;idProduct:$0010), Gemtek
(idVendor:$1044;idProduct:$800c), Gigabyte
(idVendor:$06f8;idProduct:$e036), Hercules
(idVendor:$148f;idProduct:$f101), Huawei
(idVendor:$04bb;idProduct:$094b), I-O DATA
(idVendor:$1740;idProduct:$0605), LevelOne
(idVendor:$1740;idProduct:$0615),  
(idVendor:$0789;idProduct:$0168), Logitec
(idVendor:$0789;idProduct:$0169),  
(idVendor:$100d;idProduct:$9032), Motorola
(idVendor:$05a6;idProduct:$0101), Pegatron
(idVendor:$1d4d;idProduct:$0010),  
(idVendor:$2019;idProduct:$ab24), Planex
(idVendor:$2019;idProduct:$ab29),  
(idVendor:$18e8;idProduct:$6259), Qcom
(idVendor:$08b9;idProduct:$1197), RadioShack
(idVendor:$0df6;idProduct:$003c), Sitecom
(idVendor:$0df6;idProduct:$004a),  
(idVendor:$0df6;idProduct:$004d),  
(idVendor:$0df6;idProduct:$0053),  
(idVendor:$0df6;idProduct:$0069),  
(idVendor:$0df6;idProduct:$006f),  
(idVendor:$0df6;idProduct:$0078),  
(idVendor:$083a;idProduct:$a512), SMC
(idVendor:$083a;idProduct:$c522),  
(idVendor:$083a;idProduct:$d522),  
(idVendor:$083a;idProduct:$f511),  
(idVendor:$177f;idProduct:$0254), Sweex
(idVendor:$f201;idProduct:$5370)); TP-LINK


RT2800USB firmware image RT2800USB_FIRMWARE_*
RT2800USB_FIRMWARE_IMAGEBASE = $3000;  


RT2800USB DMA descriptor defines RT2800USB_*_DESC_SIZE
RT2800USB_TXINFO_DESC_SIZE = (1 * SizeOf(LongWord));  
RT2800USB_RXINFO_DESC_SIZE = (1 * SizeOf(LongWord));  


RT2800USB TXINFO structure RT2800USB_TXINFO_*
Word0
RT2800USB_TXINFO_W0_USB_DMA_TX_PKT_LEN = $0000ffff;  
RT2800USB_TXINFO_W0_WIV = $01000000; WIV: Wireless Info Valid. 1: Driver filled WI, 0: DMA needs to copy WI
RT2800USB_TXINFO_W0_QSEL = $06000000; QSEL: Select on-chip FIFO ID for 2nd-stage output scheduler. 0:MGMT, 1:HCCA 2:EDCA
RT2800USB_TXINFO_W0_SW_USE_LAST_ROUND = $08000000;  
RT2800USB_TXINFO_W0_USB_DMA_NEXT_VALID = $40000000; USB_DMA_NEXT_VALID: Used ONLY in USB bulk Aggregation, NextValid
RT2800USB_TXINFO_W0_USB_DMA_TX_BURST = $80000000; DMA_TX_BURST: Used ONLY in USB bulk Aggregation. Force USB DMA transmit frame from current selected endpoint


RT2800USB RXINFO structure RT2800USB_RXINFO_*
Word 0
RT2800USB_RXINFO_W0_USB_DMA_RX_PKT_LEN = $0000ffff;  


RT2800USB RXD structure RT2800USB_RXD_*
Word0
RT2800USB_RXD_W0_BA = $00000001;  
RT2800USB_RXD_W0_DATA = $00000002;  
RT2800USB_RXD_W0_NULLDATA = $00000004;  
RT2800USB_RXD_W0_FRAG = $00000008;  
RT2800USB_RXD_W0_UNICAST_TO_ME = $00000010; UNICAST_TO_ME: This RX frame is unicast to me
RT2800USB_RXD_W0_MULTICAST = $00000020; MULTICAST: This is a multicast frame
RT2800USB_RXD_W0_BROADCAST = $00000040; BROADCAST: This is a broadcast frame
RT2800USB_RXD_W0_MY_BSS = $00000080; MY_BSS: this frame belongs to the same BSSID
RT2800USB_RXD_W0_CRC_ERROR = $00000100; CRC_ERROR: CRC error
RT2800USB_RXD_W0_CIPHER_ERROR = $00000600; CIPHER_ERROR: 0: decryption okay, 1:ICV error, 2:MIC error, 3:KEY not valid
RT2800USB_RXD_W0_AMSDU = $00000800; AMSDU: rx with 802.3 header, not 802.11 header
RT2800USB_RXD_W0_HTC = $00001000;  
RT2800USB_RXD_W0_RSSI = $00002000;  
RT2800USB_RXD_W0_L2PAD = $00004000;  
RT2800USB_RXD_W0_AMPDU = $00008000;  
RT2800USB_RXD_W0_DECRYPTED = $00010000;  
RT2800USB_RXD_W0_PLCP_RSSI = $00020000;  
RT2800USB_RXD_W0_CIPHER_ALG = $00040000;  
RT2800USB_RXD_W0_LAST_AMSDU = $00080000;  
RT2800USB_RXD_W0_PLCP_SIGNAL = $fff00000;  


RT2800USB TX/RX entries RT2800USB_MAX_*_ENTRIES
RT2800USB_MAX_TX_ENTRIES = SIZE_16;  
RT2800USB_MAX_RX_ENTRIES = SIZE_256;  


Type definitions



RT2800USB request

PRT2800USBRequest = ^TRT2800USBRequest;

TRT2800USBRequest = record

Index:LongWord; The index of this request in the receive or transmit requests array
Entry:PNetworkEntry; The network queue entry currently allocated to this endpoint
Request:PUSBRequest; The USB request allocated for this endpoint
Endpoint:PUSBEndpointDescriptor; The USB endpoint descriptor found during bind for this endpoint

RT2800USB WiFi device

PRT2800USBWiFiDevice = ^TRT2800USBWiFiDevice;

TRT2800USBWiFiDevice = record

RT2X00 Properties
RT2X00:TRT2X00WiFiDevice;  
USB Properties
ReceiveMask:LongWord; Bit mask of Receive requests
ReceiveFree:LongWord; Map of free Receive requests
ReceiveRequests:array of PRT2800USBRequest; Receive requests, 1 per Bulk IN Endpoint
TransmitMask:LongWord; Bit mask of Transmit requests
TransmitFree:LongWord; Map of free Transmit requests
TransmitRequests:array of PRT2800USBRequest; Transmit requests, 1 per Bulk OUT Endpoint
PendingCount:LongWord; Number of USB requests pending for this network
WaiterThread:TThreadId; Thread waiting for pending requests to complete (for network close)


Public variables



RT2800USB specific variables

RT2800USB_FIRMWARE_FILENAME:String = 'rt2870.bin'; The name of the firmware image file to load
RT2800USB_FIRMWARE_INTERNAL:LongBool = True; If True then load the internal firmware not a firmware file
RT2800USB_HARDWARE_ENCRYPTION_DISABLED:LongBool; If True then disable hardware encryption in the device


Function declarations



Initialization functions

procedure RT2800USBInit;
Description: To be documented
Note None documented


RT2800USB network functions

function RT2800USBDeviceOpen(Network:PNetworkDevice):LongWord;
Description: Implementation of NetworkDeviceOpen for the RT2800USB device
Note None documented


function RT2800USBDeviceClose(Network:PNetworkDevice):LongWord;
Description: Implementation of NetworkDeviceClose for the RT2800USB device
Note None documented


function RT2800USBDeviceControl(Network:PNetworkDevice; Request:Integer; Argument1:PtrUInt; var Argument2:PtrUInt):LongWord;
Description: Implementation of NetworkDeviceControl for the RT2800USB device
Note None documented


function RT2800USBBufferAllocate(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;
Description: Implementation of NetworkBufferAllocate for the RT2800USB device
Note None documented


function RT2800USBBufferRelease(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;
Description: Implementation of NetworkBufferRelease for the RT2800USB device
Note None documented


function RT2800USBBufferReceive(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;
Description: Implementation of NetworkBufferReceive for the RT2800USB device
Note None documented


function RT2800USBBufferTransmit(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;
Description: Implementation of NetworkBufferTransmit for the RT2800USB device
Note None documented


RT2800USB WiFi functions

function RT2800USBDeviceConfigure(WiFi:PWiFiDevice; Flags:LongWord):LongWord;
Description: Implementation of WiFiDeviceConfigure for the RT2800USB device
Note rt2x00mac_config


function RT2800USBDeviceConfigureFilter(WiFi:PWiFiDevice; var Filter:LongWord):LongWord;
Description: Implementation of WiFiDeviceConfigureFilter for the RT2800USB device
Note rt2x00mac_configure_filter


function RT2800USBDeviceConfigureInterface(WiFi:PWiFiDevice; Interrface:PWiFiInterface):LongWord;
Description: Implementation of WiFiDeviceConfigureInterface for the RT2800USB device
Note rt2x00mac_add_interface / rt2x00mac_remove_interface


RT2800USB USB functions

function RT2800USBDriverBind(Device:PUSBDevice; Interrface:PUSBInterface):LongWord;
Description: Bind the RT2800USB driver to a USB device if it is suitable
Device The USB device to attempt to bind to
Interrface The USB interface to attempt to bind to (or nil for whole device)
Return USB_STATUS_SUCCESS if completed, USB_STATUS_DEVICE_UNSUPPORTED if unsupported or another error code on failure


function RT2800USBDriverUnbind(Device:PUSBDevice; Interrface:PUSBInterface):LongWord;
Description: Unbind the RT2800USB driver from a USB device
Device The USB device to unbind from
Interrface The USB interface to unbind from (or nil for whole device)
Return USB_STATUS_SUCCESS if completed or another error code on failure


procedure RT2800USBReceiveWorker(Request:PUSBRequest);
Description: Called (by a Worker thread) to process a completed USB request from the RT2800USB bulk IN endpoint
Request The USB request which has completed


procedure RT2800USBReceiveComplete(Request:PUSBRequest);
Description: Called when a USB request from the RT2800USB bulk IN endpoint completes
Request The USB request which has completed
Note Request is passed to worker thread for processing to prevent blocking the USB completion


procedure RT2800USBTransmitWorker(Request:PUSBRequest);
Description: Called (by a Worker thread) to process a completed USB request to the RT2800USB bulk OUT endpoint
Request The USB request which has completed


procedure RT2800USBTransmitComplete(Request:PUSBRequest);
Description: Called when a USB request to the RT2800USB bulk OUT endpoint completes
Request The USB request which has completed
Note Request is passed to worker thread for processing to prevent blocking the USB completion


RT2800USB helper functions

function RT2800USBCheckDevice(Device:PUSBDevice):LongWord;
Description: Check the Vendor and Device Id against the supported devices
Device USB device to check
Return USB_STATUS_SUCCESS if completed or another error code on failure


function RT2800USBDriverInit(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note None documented


function RT2800USBEepromLoad(RT2X00:PRT2X00WiFiDevice; Data:PWord; Size:LongWord):LongWord;
Description: To be documented
Note None documented


function RT2800USBSetState(RT2X00:PRT2X00WiFiDevice; State:LongWord):LongWord;
Description: To be documented
Note None documented


function RT2800USBEnableRX(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note rt2800usb_start_queue


function RT2800USBDisableRX(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note rt2800usb_stop_queue


function RT2800USBEnableBeacon(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note rt2800usb_start_queue


function RT2800USBDisableBeacon(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note rt2800usb_stop_queue


function RT2800USBGetFirmware(RT2X00:PRT2X00WiFiDevice; var Name:String; var Address:Pointer; var Size:LongWord):Boolean;
Description: To be documented
Note None documented


function RT2800USBWriteFirmware(RT2X00:PRT2X00WiFiDevice; Data:PByte;Size:LongWord):Boolean;
Description: To be documented
Note rt2800usb_write_firmware


function RT2800USBInitializeRegisters(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note None documented


function RT2800USBHardwareEncryptionDisabled(RT2X00:PRT2X00WiFiDevice):Boolean;
Description: To be documented
Note None documented


function RT2800USBDetectEfuse(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note None documented


function RT2800USBDetectAutorun(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note None documented


function RT2800USBEnableRadio(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note None documented


function RT2800USBDisableRadio(RT2X00:PRT2X00WiFiDevice):LongWord;
Description: To be documented
Note None documented


function RT2800USBReceiveProcessRXD(RT2X00:PRT2X00WiFiDevice; Descriptor:PRT2X00RXDescriptor; var Data:Pointer; var Size:LongWord; PacketLength:LongWord):Boolean;
Description: To be documented
Note rt2800usb_fill_rxdone


Return to Unit Reference