Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
rtl8712_hal.h
Go to the documentation of this file.
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
17  *
18  * Modifications for inclusion into the Linux staging tree are
19  * Copyright(c) 2010 Larry Finger. All rights reserved.
20  *
21  * Contact information:
22  * WLAN FAE <[email protected]>
23  * Larry Finger <[email protected]>
24  *
25  ******************************************************************************/
26 #ifndef __RTL8712_HAL_H__
27 #define __RTL8712_HAL_H__
28 
31  RTL8712_1stCUT, /*A Cut (RTL8712_ASIC)*/
32  RTL8712_2ndCUT, /*B Cut*/
33  RTL8712_3rdCUT, /*C Cut*/
34 };
35 
42 };
43 
47 };
48 
53 };
54 
64 };
65 
66 struct fw_priv { /*8-bytes alignment required*/
67  /*--- long word 0 ----*/
68  unsigned char signature_0; /*0x12: CE product, 0x92: IT product*/
69  unsigned char signature_1; /*0x87: CE product, 0x81: IT product*/
70  unsigned char hci_sel; /*0x81: PCI-AP, 01:PCIe, 02: 92S-U, 0x82: USB-AP,
71  * 0x12: 72S-U, 03:SDIO*/
72  unsigned char chip_version; /*the same value as register value*/
73  unsigned char customer_ID_0; /*customer ID low byte*/
74  unsigned char customer_ID_1; /*customer ID high byte*/
75  unsigned char rf_config; /*0x11: 1T1R, 0x12: 1T2R, 0x92: 1T2R turbo,
76  * 0x22: 2T2R*/
77  unsigned char usb_ep_num; /* 4: 4EP, 6: 6EP, 11: 11EP*/
78  /*--- long word 1 ----*/
79  unsigned char regulatory_class_0; /*regulatory class bit map 0*/
80  unsigned char regulatory_class_1; /*regulatory class bit map 1*/
81  unsigned char regulatory_class_2; /*regulatory class bit map 2*/
82  unsigned char regulatory_class_3; /*regulatory class bit map 3*/
83  unsigned char rfintfs; /* 0:SWSI, 1:HWSI, 2:HWPI*/
84  unsigned char def_nettype;
85  unsigned char turboMode;
86  unsigned char lowPowerMode;/* 0: normal mode, 1: low power mode*/
87  /*--- long word 2 ----*/
88  unsigned char lbk_mode; /*0x00: normal, 0x03: MACLBK, 0x01: PHYLBK*/
89  unsigned char mp_mode; /* 1: for MP use, 0: for normal driver */
90  unsigned char vcsType; /* 0:off 1:on 2:auto */
91  unsigned char vcsMode; /* 1:RTS/CTS 2:CTS to self */
92  unsigned char rsvd022;
93  unsigned char rsvd023;
94  unsigned char rsvd024;
95  unsigned char rsvd025;
96  /*--- long word 3 ----*/
97  unsigned char qos_en; /*1: QoS enable*/
98  unsigned char bw_40MHz_en; /*1: 40MHz BW enable*/
99  unsigned char AMSDU2AMPDU_en; /*1: 4181 convert AMSDU to AMPDU,
100  * 0: disable*/
101  unsigned char AMPDU_en; /*1: 11n AMPDU enable*/
102  unsigned char rate_control_offload; /*1: FW offloads,0: driver handles*/
103  unsigned char aggregation_offload; /*1: FW offloads,0: driver handles*/
104  unsigned char rsvd030;
105  unsigned char rsvd031;
106  /*--- long word 4 ----*/
107  unsigned char beacon_offload; /* 1. FW offloads, 0: driver handles*/
108  unsigned char MLME_offload; /* 2. FW offloads, 0: driver handles*/
109  unsigned char hwpc_offload; /* 3. FW offloads, 0: driver handles*/
110  unsigned char tcp_checksum_offload; /*4. FW offloads,0: driver handles*/
111  unsigned char tcp_offload; /* 5. FW offloads, 0: driver handles*/
112  unsigned char ps_control_offload; /* 6. FW offloads, 0: driver handles*/
113  unsigned char WWLAN_offload; /* 7. FW offloads, 0: driver handles*/
114  unsigned char rsvd040;
115  /*--- long word 5 ----*/
116  unsigned char tcp_tx_frame_len_L; /*tcp tx packet length low byte*/
117  unsigned char tcp_tx_frame_len_H; /*tcp tx packet length high byte*/
118  unsigned char tcp_rx_frame_len_L; /*tcp rx packet length low byte*/
119  unsigned char tcp_rx_frame_len_H; /*tcp rx packet length high byte*/
120  unsigned char rsvd050;
121  unsigned char rsvd051;
122  unsigned char rsvd052;
123  unsigned char rsvd053;
124 };
125 
126 struct fw_hdr {/*8-byte alignment required*/
127  unsigned short signature;
128  unsigned short version; /*0x8000 ~ 0x8FFF for FPGA version,
129  *0x0000 ~ 0x7FFF for ASIC version,*/
130  unsigned int dmem_size; /*define the size of boot loader*/
131  unsigned int img_IMEM_size; /*define the size of FW in IMEM*/
132  unsigned int img_SRAM_size; /*define the size of FW in SRAM*/
133  unsigned int fw_priv_sz; /*define the size of DMEM variable*/
134  unsigned short efuse_addr;
135  unsigned short h2ccnd_resp_addr;
136  unsigned int SVNRevision;
137  unsigned int release_time; /*Mon:Day:Hr:Min*/
138  struct fw_priv fwpriv;
139 };
140 
141 struct hal_priv {
142  /*Endpoint handles*/
145 };
146 
147 uint rtl8712_hal_init(struct _adapter *padapter);
148 int rtl871x_load_fw(struct _adapter *padapter);
149 
150 #endif