Unit RT2800LIB
Return to Unit Reference
Description
Ralink RT2800 Wireless Driver library unit
This unit provides functionality and definitions common to all implementations of the RT2800 chipset PCI, USB or other.
Constants
To be documented
Type definitions
RT2800LIB MAC WCID entry
PRT2800_MAC_WCID_Entry = ^TRT2800_MAC_WCID_Entry;
TRT2800_MAC_WCID_Entry = packed record
Security key table memory above | |
MAC:array[0..5] of Byte;
|
|
Reserved:array[0..1] of Byte;
|
RT2800LIB HW key entry
PRT2800_HW_Key_Entry = ^TRT2800_HW_Key_Entry;
TRT2800_HW_Key_Entry = packed record
Security key table memory above | |
Key:array[0..15] of Byte;
|
|
TXMic:array[0..7] of Byte;
|
|
RXMic:array[0..7] of Byte;
|
RT2800LIB MAC IVEIV entry
PRT2800_MAC_IVEIV_Entry = ^TRT2800_MAC_IVEIV_Entry;
TRT2800_MAC_IVEIV_Entry = packed record
Security key table memory above | |
IV:array[0..7] of Byte;
|
RT2800LIB data
PRT2800Data = ^TRT2800Data;
TRT2800Data = record
CalibrationBW20:Byte;
|
|
CalibrationBW40:Byte;
|
|
BBP25:Byte;
|
|
BBP26:Byte;
|
|
TXMixerGain24G:Byte;
|
|
TXMixerGain5G:Byte;
|
|
TBTTTick:LongWord;
|
Public variables
None defined
Function declarations
Initialization functions
function RT2800DriverInit(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
RT2800LIB functions
function RT2800EepromLoad(RT2X00:PRT2X00WiFiDevice; Data:PWord; Size:LongWord):LongWord;
Note | None documented |
---|
function RT2800SetLED(RT2X00:PRT2X00WiFiDevice; ID,Level:LongWord):LongWord;
Note | None documented |
---|
function RT2800DetectRTChip(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2800DetectEfuse(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800EnableRadio(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2800_enable_radio |
---|
function RT2800DisableRadio(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2800_disable_radio |
---|
function RT2800ValidateEeprom(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeEeprom(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeModes(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP28xx(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP30xx(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP3290(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP3352(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP3390(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP3572(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP3593(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP53xx(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP5592(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeBBP305xSOC(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR30xx(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR3290(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR3352(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR3390(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR3572(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR3593(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR5390(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR5392(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR5592(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCSR305xSOC(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRegisters(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800InitializeRFCalibration(RT2X00:PRT2X00WiFiDevice; RegNo:Byte):LongWord;
Note | None documented |
---|
function RT2800InitializeFrequencyCalibration(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800SetupNormalMode5xxx(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800GetTXMixerGain24G(RT2X00:PRT2X00WiFiDevice):Byte;
Note | None documented |
---|
function RT2800GetTXMixerGain5G(RT2X00:PRT2X00WiFiDevice):Byte;
Note | None documented |
---|
function RT2800LoadEfuse(RT2X00:PRT2X00WiFiDevice; Data:PWord; Size:LongWord):LongWord;
Note | None documented |
---|
function RT2800CheckFirmware(RT2X00:PRT2X00WiFiDevice; Data:PByte; Size:LongWord):Boolean;
Note | PCI(e) and MMIO devices require firmware with a length of 8kb. USB devices require firmware files with a length of 4kb. Certain USB chipsets however require different firmware, which Ralink only provides attached to the original firmware file. Thus for USB devices, firmware files have a length which is a multiple of 4kb. The firmware for rt3290 chip also have a length which is a multiple of 4kb. |
---|
function RT2800CheckFirmwareCRC(Data:PByte; Size:LongWord):Boolean;
Note | rt2800_check_firmware_crc |
---|
function RT2800LoadFirmware(RT2X00:PRT2X00WiFiDevice; Data:PByte; Size:LongWord):Boolean;
Note | rt2800_load_firmware |
---|
function RT2800Configure(RT2X00:PRT2X00WiFiDevice; Configuration:PRT2X00ChannelConfiguration; Flags:LongWord):LongWord;
Note | rt2800_config |
---|
function RT2800ConfigureLNAGain(RT2X00:PRT2X00WiFiDevice; Configuration:PRT2X00ChannelConfiguration):LongWord;
Note | rt2800_config_lna_gain |
---|
function RT2800ConfigureChannel(RT2X00:PRT2X00WiFiDevice; RFChannel:PRT2X00RFChannel; Channel:PRT2X00Channel):LongWord;
Note | rt2800_config_channel |
---|
function RT2800ConfigureChannelRF2xxx(RT2X00:PRT2X00WiFiDevice; RFChannel:PRT2X00RFChannel; Channel:PRT2X00Channel):LongWord;
Note | rt2800_config_channel_rf2xxx |
---|
function RT2800ConfigureChannelRF3xxx(RT2X00:PRT2X00WiFiDevice; RFChannel:PRT2X00RFChannel; Channel:PRT2X00Channel):LongWord;
Note | rt2800_config_channel_rf3xxx |
---|
function RT2800ConfigureChannelRF3052(RT2X00:PRT2X00WiFiDevice; RFChannel:PRT2X00RFChannel; Channel:PRT2X00Channel):LongWord;
Note | rt2800_config_channel_rf3052 |
---|
function RT2800ConfigureChannelRF3053(RT2X00:PRT2X00WiFiDevice; RFChannel:PRT2X00RFChannel; Channel:PRT2X00Channel):LongWord;
Note | rt2800_config_channel_rf3053 |
---|
function RT2800ConfigureChannelRF3290(RT2X00:PRT2X00WiFiDevice; RFChannel:PRT2X00RFChannel; Channel:PRT2X00Channel):LongWord;
Note | rt2800_config_channel_rf3290 |
---|
function RT2800ConfigureChannelRF3322(RT2X00:PRT2X00WiFiDevice; RFChannel:PRT2X00RFChannel; Channel:PRT2X00Channel):LongWord;
Note | rt2800_config_channel_rf3322 |
---|
function RT2800ConfigureChannelRF53xx(RT2X00:PRT2X00WiFiDevice; RFChannel:PRT2X00RFChannel; Channel:PRT2X00Channel):LongWord;
Note | rt2800_config_channel_rf53xx |
---|
function RT2800ConfigureChannelRF55xx(RT2X00:PRT2X00WiFiDevice; RFChannel:PRT2X00RFChannel; Channel:PRT2X00Channel):LongWord;
Note | rt2800_config_channel_rf55xx |
---|
function RT2800ConfigureTXPower(RT2X00:PRT2X00WiFiDevice; Channel:PIEEE80211Channel; PowerLevel:LongInt):LongWord;
Note | rt2800_config_txpower |
---|
function RT2800ConfigureTXPowerRT28xx(RT2X00:PRT2X00WiFiDevice; Channel:PIEEE80211Channel; PowerLevel:LongInt):LongWord;
Note | We configure transmit power using MAC TX_PWR_CFG_(0,...,N) registers and BBP R1 register. TX_PWR_CFG_X allow to configure per rate TX power values, 4 bits for each rate (tune from 0 to 15 dBm). BBP_R1 controls transmit power for all rates, but allow to set only 4 discrete values: -12, -6, 0 and 6 dBm. Reference per rate transmit power values are located in the EEPROM at EEPROM_TXPOWER_BYRATE offset. We adjust them and BBP R1 settings according to current conditions (i.e. band, bandwidth, temperature, user settings).
Note: rt2800_config_txpower_rt28xx |
---|
function RT2800ConfigureTXPowerRT3593(RT2X00:PRT2X00WiFiDevice; Channel:PIEEE80211Channel; PowerLevel:LongInt):LongWord;
Note | rt2800_config_txpower_rt3593 |
---|
function RT2800ConfigureRetryLimit(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2800_config_retry_limit |
---|
function RT2800ConfigurePowersave(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2800_config_ps |
---|
function RT2800ConfigureFilter(RT2X00:PRT2X00WiFiDevice; Filter:LongWord):LongWord;
Note | rt2800_config_filter |
---|
function RT2800ConfigureAntenna(RT2X00:PRT2X00WiFiDevice; Antenna:PRT2X00Antenna):LongWord;
Note | rt2800_config_ant |
---|
function RT2800ConfigureAntenna3572BT(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800ConfigureInterface(RT2X00:PRT2X00WiFiDevice; Configuration:PRT2X00InterfaceConfiguration; Flags:LongWord):LongWord;
Note | None documented |
---|
function RT2800ConfigureWCID(RT2X00:PRT2X00WiFiDevice ;WCID:LongWord; Address:PByte):LongWord;
Note | None documented |
---|
function RT2800DeleteWCIDAttribute(RT2X00:PRT2X00WiFiDevice; WCID:LongWord):LongWord;
Note | None documented |
---|
function RT2800ClearBeaconRegister(RT2X00:PRT2X00WiFiDevice; Index:LongWord):LongWord;
Note | None documented |
---|
function RT2800CalibrateIQ(RT2X00:PRT2X00WiFiDevice; Channel:LongWord):LongWord;
Note | rt2800_iq_calibrate |
---|
function RT2800AdjustFrequencyOffset(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | rt2800_adjust_freq_offset |
---|
function RT2800WaitCSRReady(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2800WaitWPDMAReady(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2800WaitBBPReady(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | rt2800_wait_bbp_ready |
---|
function RT2800WaitBBPRFReady(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2800DisableWPDMA(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2800EnableRT3290WLAN(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2800EnableLEDOpenDrain(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800DisableUnusedDACADC(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800BBP4MACInterfaceControl(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800BBPRead(RT2X00:PRT2X00WiFiDevice; RegNo:Byte; Value:PByte):Boolean;
Note | rt2800_bbp_read |
---|
function RT2800BBPWrite(RT2X00:PRT2X00WiFiDevice; RegNo,Value:Byte):Boolean;
Note | RT2800BBPWrite |
---|
function RT2800BBPWriteRXChain(RT2X00:PRT2X00WiFiDevice; RegNo,Value:Byte):Boolean;
Note | RT2800BBPWrite_with_rx_chain |
---|
function RT2800RFCSRRead(RT2X00:PRT2X00WiFiDevice; RegNo:Byte; Value:PByte):Boolean;
Note | None documented |
---|
function RT2800RFCSRWrite(RT2X00:PRT2X00WiFiDevice; RegNo,Value:Byte):Boolean;
Note | None documented |
---|
function RT2800RFWrite(RT2X00:PRT2X00WiFiDevice; Index:Word; Value:LongWord):Boolean;
Note | None documented |
---|
function RT2800MCURequest(RT2X00:PRT2X00WiFiDevice; Command,Token,Arg0,Arg1:Byte):Boolean;
Note | None documented |
---|
RT2800LIB helper functions
function RT2800RegisterRead(RT2X00:PRT2X00WiFiDevice; Offset:LongWord; Value:PLongWord):LongWord; inline;
Note | None documented |
---|
function RT2800RegisterWrite(RT2X00:PRT2X00WiFiDevice; Offset:LongWord; Value:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800RegisterMultiRead(RT2X00:PRT2X00WiFiDevice; Offset:LongWord; Data:Pointer; Size:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800RegisterMultiWrite(RT2X00:PRT2X00WiFiDevice; Offset:LongWord; Data:Pointer; Size:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800RegisterBusyRead(RT2X00:PRT2X00WiFiDevice; Offset,Mask:LongWord; Reg:PLongWord):Boolean; inline;
Note | None documented |
---|
function RT2800WriteFirmware(RT2X00:PRT2X00WiFiDevice; Data:PByte; Size:LongWord):Boolean; inline;
Note | None documented |
---|
function RT2800HardwareEncryptionDisabled(RT2X00:PRT2X00WiFiDevice):Boolean; inline;
Note | None documented |
---|
function RT2800WaitForBBP(RT2X00:PRT2X00WiFiDevice; Reg:PLongWord):Boolean; inline;
Note | None documented |
---|
function RT2800WaitForRFCSR(RT2X00:PRT2X00WiFiDevice; Reg:PLongWord):Boolean; inline;
Note | None documented |
---|
function RT2800WaitForRF(RT2X00:PRT2X00WiFiDevice; Reg:PLongWord):Boolean; inline;
Note | None documented |
---|
function RT2800WaitForMCU(RT2X00:PRT2X00WiFiDevice; Reg:PLongWord):Boolean; inline;
Note | None documented |
---|
function RT2800GetEeprom16(RT2X00:PRT2X00WiFiDevice; ID:Word):Word;
Note | rt2800_eeprom_read |
---|
procedure RT2800SetEeprom16(RT2X00:PRT2X00WiFiDevice; ID,Value:Word);
Note | None documented |
---|
function RT2800GetEeprom16Array(RT2X00:PRT2X00WiFiDevice; ID,Offset:Word):Word;
Note | None documented |
---|
function RT2800GetEepromAddress(RT2X00:PRT2X00WiFiDevice; ID:Word):Pointer;
Note | None documented |
---|
function RT2800EepromIDtoOffset(RT2X00:PRT2X00WiFiDevice; ID:Word):Word;
Note | None documented |
---|
function RT2800Is305xSOC(RT2X00:PRT2X00WiFiDevice):Boolean;
Note | None documented |
---|
function RT2800GetTXWISize(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800GetRXWISize(RT2X00:PRT2X00WiFiDevice):LongWord;
Note | None documented |
---|
function RT2800TXPowerToDevice(RT2X00:PRT2X00WiFiDevice; Channel:LongWord; TXPower:ShortInt):ShortInt;
Note | None documented |
---|
function RT2800GetTXPowerRegulatoryDelta(RT2X00:PRT2X00WiFiDevice; PowerLevel,MaxPower:LongInt):LongInt;
Note | rt2800_get_txpower_reg_delta |
---|
function RT2800GetTXPowerBandwidthCompensation(RT2X00:PRT2X00WiFiDevice; Band:LongWord):LongInt;
Note | rt2800_get_txpower_bw_comp |
---|
function RT2800GetGainCalibrationDelta(RT2X00:PRT2X00WiFiDevice):LongInt;
Note | rt2800_get_gain_calibration_delta |
---|
function RT2800CompensateTXPower(RT2X00:PRT2X00WiFiDevice; IsRateB,Band:LongWord; PowerLevel:LongInt; TXPower:Byte; Delta:LongInt):Byte;
Note | rt2800_compensate_txpower |
---|
function RT2800AGCtoRSSI(RT2X00:PRT2X00WiFiDevice; RXWI2:LongWord):LongInt;
Note | None documented |
---|
function RT2800ReceiveProcessRXWI(RT2X00:PRT2X00WiFiDevice; Descriptor:PRT2X00RXDescriptor; var Data:Pointer; var Size:LongWord):Boolean;
Note | rt2800_process_rxwi |
---|
function RT2800_MAC_WCID_ENTRY(Index:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800_PAIRWISE_KEY_ENTRY(Index:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800_MAC_IVEIV_ENTRY(Index:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800_MAC_WCID_ATTR_ENTRY(Index:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800_SHARED_KEY_ENTRY(Index:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800_SHARED_KEY_MODE_ENTRY(Index:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800_HW_BEACON_BASE(Index:LongWord):LongWord; inline;
Note | None documented |
---|
function RT2800_BEACON_BASE_TO_OFFSET(Base:LongWord):LongWord; inline;
Note | None documented |
---|
Return to Unit Reference