1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. 4 * 5 * Contact Information: wlanfae <wlanfae@realtek.com> 6 */ 7 #ifndef __INC_FIRMWARE_H 8 #define __INC_FIRMWARE_H 9 10 #define RTL8192E_BOOT_IMG_FW "RTL8192E/boot.img" 11 #define RTL8192E_MAIN_IMG_FW "RTL8192E/main.img" 12 #define RTL8192E_DATA_IMG_FW "RTL8192E/data.img" 13 14 enum firmware_init_step { 15 FW_INIT_STEP0_BOOT = 0, 16 FW_INIT_STEP1_MAIN = 1, 17 FW_INIT_STEP2_DATA = 2, 18 }; 19 20 enum opt_rst_type { 21 OPT_SYSTEM_RESET = 0, 22 OPT_FIRMWARE_RESET = 1, 23 }; 24 25 enum desc_packet_type { 26 DESC_PACKET_TYPE_INIT = 0, 27 DESC_PACKET_TYPE_NORMAL = 1, 28 }; 29 30 enum firmware_status { 31 FW_STATUS_0_INIT = 0, 32 FW_STATUS_1_MOVE_BOOT_CODE = 1, 33 FW_STATUS_2_MOVE_MAIN_CODE = 2, 34 FW_STATUS_3_TURNON_CPU = 3, 35 FW_STATUS_4_MOVE_DATA_CODE = 4, 36 FW_STATUS_5_READY = 5, 37 }; 38 39 #define MAX_FW_SIZE 64000 40 struct rt_fw_blob { 41 u16 size; 42 u8 data[MAX_FW_SIZE]; 43 }; 44 45 #define FW_BLOBS 3 46 struct rt_firmware { 47 enum firmware_status status; 48 struct rt_fw_blob blobs[FW_BLOBS]; 49 }; 50 51 bool rtl92e_init_fw(struct net_device *dev); 52 #endif 53