cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

r8192U_hw.h (9288B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 *	This is part of rtl8187 OpenSource driver.
      4 *	Copyright (C) Andrea Merello 2004-2005  <andrea.merello@gmail.com>
      5 *
      6 *	Parts of this driver are based on the GPL part of the
      7 *	official Realtek driver.
      8 *	Parts of this driver are based on the rtl8180 driver skeleton
      9 *	from Patric Schenke & Andres Salomon.
     10 *	Parts of this driver are based on the Intel Pro Wireless
     11 *	2100 GPL driver.
     12 *
     13 *	We want to thank the Authors of those projects
     14 *	and the Ndiswrapper project Authors.
     15 */
     16
     17/* Mariusz Matuszek added full registers definition with Realtek's name */
     18
     19/* this file contains register definitions for the rtl8187 MAC controller */
     20#ifndef R8192_HW
     21#define R8192_HW
     22
     23#define	RTL8187_REQT_READ	0xc0
     24#define	RTL8187_REQT_WRITE	0x40
     25#define	RTL8187_REQ_GET_REGS	0x05
     26#define	RTL8187_REQ_SET_REGS	0x05
     27
     28#define MAX_TX_URB 5
     29#define MAX_RX_URB 16
     30
     31#define R8180_MAX_RETRY 255
     32
     33#define RX_URB_SIZE 9100
     34
     35#define RTL8190_EEPROM_ID	0x8129
     36#define EEPROM_VID		0x02
     37#define EEPROM_PID		0x04
     38#define EEPROM_NODE_ADDRESS_BYTE_0	0x0C
     39
     40#define EEPROM_TX_POWER_DIFF	0x1F
     41#define EEPROM_THERMAL_METER	0x20
     42#define EEPROM_PW_DIFF		0x21	//0x21
     43#define EEPROM_CRYSTAL_CAP	0x22	//0x22
     44
     45#define EEPROM_TX_PW_INDEX_CCK	0x23	//0x23
     46#define EEPROM_TX_PW_INDEX_OFDM_24G	0x24	//0x24~0x26
     47#define EEPROM_TX_PW_INDEX_CCK_V1	0x29	//0x29~0x2B
     48#define EEPROM_TX_PW_INDEX_OFDM_24G_V1	0x2C	//0x2C~0x2E
     49#define EEPROM_TX_PW_INDEX_VER		0x27	//0x27
     50
     51#define EEPROM_DEFAULT_THERNAL_METER		0x7
     52#define EEPROM_DEFAULT_PW_DIFF			0x4
     53#define EEPROM_DEFAULT_CRYSTAL_CAP		0x5
     54#define EEPROM_DEFAULT_TX_POWER		0x1010
     55#define EEPROM_CUSTOMER_ID			0x7B	//0x7B:CustomerID
     56#define EEPROM_CHANNEL_PLAN			0x16	//0x7C
     57
     58#define EEPROM_CID_RUNTOP				0x2
     59#define EEPROM_CID_DLINK				0x8
     60
     61#define AC_PARAM_TXOP_LIMIT_OFFSET	16
     62#define AC_PARAM_ECW_MAX_OFFSET		12
     63#define AC_PARAM_ECW_MIN_OFFSET		8
     64#define AC_PARAM_AIFS_OFFSET		0
     65
     66//#endif
     67enum _RTL8192Usb_HW {
     68	MAC0			= 0x000,
     69	MAC4			= 0x004,
     70
     71#define	BB_GLOBAL_RESET_BIT	0x1
     72	BB_GLOBAL_RESET		= 0x020, // BasebandGlobal Reset Register
     73	BSSIDR			= 0x02E, // BSSID Register
     74	CMDR			= 0x037, // Command register
     75#define CR_RE			0x08
     76#define CR_TE			0x04
     77	SIFS			= 0x03E, // SIFS register
     78
     79#define TCR_MXDMA_2048		7
     80#define TCR_LRL_OFFSET		0
     81#define TCR_SRL_OFFSET		8
     82#define TCR_MXDMA_OFFSET	21
     83#define TCR_SAT			BIT(24)	// Enable Rate depedent ack timeout timer
     84	RCR			= 0x044, // Receive Configuration Register
     85#define MAC_FILTER_MASK (BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(5) | \
     86			 BIT(12) | BIT(18) | BIT(19) | BIT(20) | BIT(21) | \
     87			 BIT(22) | BIT(23))
     88#define RX_FIFO_THRESHOLD_MASK (BIT(13) | BIT(14) | BIT(15))
     89#define RX_FIFO_THRESHOLD_SHIFT 13
     90#define RX_FIFO_THRESHOLD_NONE 7
     91#define MAX_RX_DMA_MASK	(BIT(8) | BIT(9) | BIT(10))
     92#define RCR_MXDMA_OFFSET	8
     93#define RCR_FIFO_OFFSET		13
     94#define RCR_ONLYERLPKT		BIT(31)			// Early Receiving based on Packet Size.
     95#define RCR_CBSSID		BIT(23)			// Accept BSSID match packet
     96#define RCR_APWRMGT		BIT(22)			// Accept power management packet
     97#define RCR_AMF			BIT(20)			// Accept management type frame
     98#define RCR_ACF			BIT(19)			// Accept control type frame
     99#define RCR_ADF			BIT(18)			// Accept data type frame
    100#define RCR_AICV		BIT(12)			// Accept ICV error packet
    101#define	RCR_ACRC32		BIT(5)			// Accept CRC32 error packet
    102#define	RCR_AB			BIT(3)			// Accept broadcast packet
    103#define	RCR_AM			BIT(2)			// Accept multicast packet
    104#define	RCR_APM			BIT(1)			// Accept physical match packet
    105#define	RCR_AAP			BIT(0)			// Accept all unicast packet
    106	SLOT_TIME		= 0x049, // Slot Time Register
    107	ACK_TIMEOUT		= 0x04c, // Ack Timeout Register
    108	EDCAPARA_BE		= 0x050, // EDCA Parameter of AC BE
    109	EDCAPARA_BK		= 0x054, // EDCA Parameter of AC BK
    110	EDCAPARA_VO		= 0x058, // EDCA Parameter of AC VO
    111	EDCAPARA_VI		= 0x05C, // EDCA Parameter of AC VI
    112	BCN_TCFG		= 0x062, // Beacon Time Configuration
    113#define BCN_TCFG_CW_SHIFT		8
    114#define BCN_TCFG_IFS			0
    115	BCN_INTERVAL		= 0x070, // Beacon Interval (TU)
    116	ATIMWND			= 0x072, // ATIM Window Size (TU)
    117	BCN_DRV_EARLY_INT	= 0x074, // Driver Early Interrupt Time (TU). Time to send interrupt to notify to change beacon content before TBTT
    118	BCN_DMATIME		= 0x076, // Beacon DMA and ATIM interrupt time (US). Indicates the time before TBTT to perform beacon queue DMA
    119	BCN_ERR_THRESH		= 0x078, // Beacon Error Threshold
    120	RWCAM			= 0x0A0, //IN 8190 Data Sheet is called CAMcmd
    121	WCAMI			= 0x0A4, // Software write CAM input content
    122	SECR			= 0x0B0, //Security Configuration Register
    123#define	SCR_TxUseDK		BIT(0)			//Force Tx Use Default Key
    124#define SCR_RxUseDK		BIT(1)			//Force Rx Use Default Key
    125#define SCR_TxEncEnable		BIT(2)			//Enable Tx Encryption
    126#define SCR_RxDecEnable		BIT(3)			//Enable Rx Decryption
    127#define SCR_SKByA2		BIT(4)			//Search kEY BY A2
    128#define SCR_NoSKMC		BIT(5)			//No Key Search for Multicast
    129
    130//----------------------------------------------------------------------------
    131//       8190 CPU General Register		(offset 0x100, 4 byte)
    132//----------------------------------------------------------------------------
    133#define	CPU_CCK_LOOPBACK	0x00030000
    134#define	CPU_GEN_SYSTEM_RESET	0x00000001
    135#define	CPU_GEN_FIRMWARE_RESET	0x00000008
    136#define	CPU_GEN_BOOT_RDY	0x00000010
    137#define	CPU_GEN_FIRM_RDY	0x00000020
    138#define	CPU_GEN_PUT_CODE_OK	0x00000080
    139#define	CPU_GEN_BB_RST		0x00000100
    140#define	CPU_GEN_PWR_STB_CPU	0x00000004
    141#define CPU_GEN_NO_LOOPBACK_MSK	0xFFF8FFFF // Set bit18,17,16 to 0. Set bit19
    142#define CPU_GEN_NO_LOOPBACK_SET	0x00080000 // Set BIT19 to 1
    143	CPU_GEN			= 0x100, // CPU Reset Register
    144
    145	AcmHwCtrl		= 0x171, // ACM Hardware Control Register
    146//----------------------------------------------------------------------------
    147////
    148////       8190 AcmHwCtrl bits                                    (offset 0x171, 1 byte)
    149////----------------------------------------------------------------------------
    150//
    151#define AcmHw_BeqEn             BIT(1)
    152
    153	RQPN1			= 0x180, // Reserved Queue Page Number , Vo Vi, Be, Bk
    154	RQPN2			= 0x184, // Reserved Queue Page Number, HCCA, Cmd, Mgnt, High
    155	RQPN3			= 0x188, // Reserved Queue Page Number, Bcn, Public,
    156	QPNR			= 0x1D0, //0x1F0, // Queue Packet Number report per TID
    157
    158#define	BW_OPMODE_5G			BIT(1)
    159#define	BW_OPMODE_20MHZ			BIT(2)
    160	BW_OPMODE		= 0x300, // Bandwidth operation mode
    161	MSR			= 0x303, // Media Status register
    162#define MSR_LINK_MASK      (BIT(0) | BIT(1))
    163#define MSR_LINK_MANAGED   2
    164#define MSR_LINK_NONE      0
    165#define MSR_LINK_SHIFT     0
    166#define MSR_LINK_ADHOC     1
    167#define MSR_LINK_MASTER    3
    168	RETRY_LIMIT		= 0x304, // Retry Limit [15:8]-short, [7:0]-long
    169#define RETRY_LIMIT_SHORT_SHIFT 8
    170#define RETRY_LIMIT_LONG_SHIFT 0
    171	RRSR			= 0x310, // Response Rate Set
    172#define RRSR_1M						BIT(0)
    173#define RRSR_2M						BIT(1)
    174#define RRSR_5_5M					BIT(2)
    175#define RRSR_11M					BIT(3)
    176#define RRSR_6M						BIT(4)
    177#define RRSR_9M						BIT(5)
    178#define RRSR_12M					BIT(6)
    179#define RRSR_18M					BIT(7)
    180#define RRSR_24M					BIT(8)
    181#define RRSR_36M					BIT(9)
    182#define RRSR_48M					BIT(10)
    183#define RRSR_54M					BIT(11)
    184#define BRSR_AckShortPmb			BIT(23)		// CCK ACK: use Short Preamble or not.
    185	UFWP			= 0x318,
    186	RATR0			= 0x320, // Rate Adaptive Table register1
    187	DRIVER_RSSI		= 0x32c,					// Driver tell Firmware current RSSI
    188//----------------------------------------------------------------------------
    189//       8190 Rate Adaptive Table Register	(offset 0x320, 4 byte)
    190//----------------------------------------------------------------------------
    191//CCK
    192#define	RATR_1M			0x00000001
    193#define	RATR_2M			0x00000002
    194#define	RATR_55M		0x00000004
    195#define	RATR_11M		0x00000008
    196//OFDM
    197#define	RATR_6M			0x00000010
    198#define	RATR_9M			0x00000020
    199#define	RATR_12M		0x00000040
    200#define	RATR_18M		0x00000080
    201#define	RATR_24M		0x00000100
    202#define	RATR_36M		0x00000200
    203#define	RATR_48M		0x00000400
    204#define	RATR_54M		0x00000800
    205//MCS 1 Spatial Stream
    206#define	RATR_MCS0		0x00001000
    207#define	RATR_MCS1		0x00002000
    208#define	RATR_MCS2		0x00004000
    209#define	RATR_MCS3		0x00008000
    210#define	RATR_MCS4		0x00010000
    211#define	RATR_MCS5		0x00020000
    212#define	RATR_MCS6		0x00040000
    213#define	RATR_MCS7		0x00080000
    214//MCS 2 Spatial Stream
    215#define	RATR_MCS8		0x00100000
    216#define	RATR_MCS9		0x00200000
    217#define	RATR_MCS10		0x00400000
    218#define	RATR_MCS11		0x00800000
    219#define	RATR_MCS12		0x01000000
    220#define	RATR_MCS13		0x02000000
    221#define	RATR_MCS14		0x04000000
    222#define	RATR_MCS15		0x08000000
    223// ALL CCK Rate
    224#define RATE_ALL_CCK		(RATR_1M | RATR_2M | RATR_55M | RATR_11M)
    225#define RATE_ALL_OFDM_AG	(RATR_6M | RATR_9M | RATR_12M | RATR_18M |\
    226				 RATR_24M | RATR_36M | RATR_48M | RATR_54M)
    227#define RATE_ALL_OFDM_1SS	(RATR_MCS0 | RATR_MCS1 | RATR_MCS2 | RATR_MCS3 |\
    228				 RATR_MCS4 | RATR_MCS5 | RATR_MCS6 | RATR_MCS7)
    229#define RATE_ALL_OFDM_2SS	(RATR_MCS8 | RATR_MCS9 | RATR_MCS10 | RATR_MCS11 |\
    230				 RATR_MCS12 | RATR_MCS13 | RATR_MCS14 | RATR_MCS15)
    231	EPROM_CMD		= 0xfe58,
    232#define Cmd9346CR_9356SEL	BIT(4)
    233#define EPROM_CMD_OPERATING_MODE_SHIFT 6
    234#define EPROM_CMD_NORMAL 0
    235#define EPROM_CMD_PROGRAM 2
    236#define EPROM_CS_BIT BIT(3)
    237#define EPROM_CK_BIT BIT(2)
    238#define EPROM_W_BIT  BIT(1)
    239#define EPROM_R_BIT  BIT(0)
    240};
    241
    242//----------------------------------------------------------------------------
    243//       818xB AnaParm & AnaParm2 Register
    244//----------------------------------------------------------------------------
    245#define GPI 0x108
    246#endif