1 /****************************************************************************** 2 * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. 3 * 4 * This program is distributed in the hope that it will be useful, but WITHOUT 5 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 6 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 7 * more details. 8 * 9 * The full GNU General Public License is included in this distribution in the 10 * file called LICENSE. 11 * 12 * Contact Information: 13 * wlanfae <wlanfae@realtek.com> 14 *****************************************************************************/ 15 #ifndef __INC_FIRMWARE_H 16 #define __INC_FIRMWARE_H 17 18 #define RTL8192E_BOOT_IMG_FW "RTL8192E/boot.img" 19 #define RTL8192E_MAIN_IMG_FW "RTL8192E/main.img" 20 #define RTL8192E_DATA_IMG_FW "RTL8192E/data.img" 21 22 enum firmware_init_step { 23 FW_INIT_STEP0_BOOT = 0, 24 FW_INIT_STEP1_MAIN = 1, 25 FW_INIT_STEP2_DATA = 2, 26 }; 27 28 enum opt_rst_type { 29 OPT_SYSTEM_RESET = 0, 30 OPT_FIRMWARE_RESET = 1, 31 }; 32 33 enum desc_packet_type { 34 DESC_PACKET_TYPE_INIT = 0, 35 DESC_PACKET_TYPE_NORMAL = 1, 36 }; 37 38 enum firmware_status { 39 FW_STATUS_0_INIT = 0, 40 FW_STATUS_1_MOVE_BOOT_CODE = 1, 41 FW_STATUS_2_MOVE_MAIN_CODE = 2, 42 FW_STATUS_3_TURNON_CPU = 3, 43 FW_STATUS_4_MOVE_DATA_CODE = 4, 44 FW_STATUS_5_READY = 5, 45 }; 46 47 #define MAX_FW_SIZE 64000 48 struct rt_fw_blob { 49 u16 size; 50 u8 data[MAX_FW_SIZE]; 51 }; 52 53 #define FW_BLOBS 3 54 struct rt_firmware { 55 enum firmware_status status; 56 struct rt_fw_blob blobs[FW_BLOBS]; 57 }; 58 59 bool rtl92e_init_fw(struct net_device *dev); 60 #endif 61