| #ifndef __INC_FIRMWARE_H |
| #define __INC_FIRMWARE_H |
| |
| #define RTL8190_CPU_START_OFFSET 0x80 |
| /* TODO: this definition is TBD */ |
| //#define USB_HWDESC_HEADER_LEN 0 |
| |
| /* It should be double word alignment */ |
| //#if DEV_BUS_TYPE==PCI_INTERFACE |
| //#define GET_COMMAND_PACKET_FRAG_THRESHOLD(v) 4*(v/4) - 8 |
| //#else |
| #define GET_COMMAND_PACKET_FRAG_THRESHOLD(v) (4*(v/4) - 8 - USB_HWDESC_HEADER_LEN) |
| //#endif |
| |
| typedef enum _firmware_init_step{ |
| FW_INIT_STEP0_BOOT = 0, |
| FW_INIT_STEP1_MAIN = 1, |
| FW_INIT_STEP2_DATA = 2, |
| }firmware_init_step_e; |
| |
| typedef enum _opt_rst_type{ |
| OPT_SYSTEM_RESET = 0, |
| OPT_FIRMWARE_RESET = 1, |
| }opt_rst_type_e; |
| |
| /* due to rtl8192 firmware */ |
| typedef enum _desc_packet_type_e{ |
| DESC_PACKET_TYPE_INIT = 0, |
| DESC_PACKET_TYPE_NORMAL = 1, |
| }desc_packet_type_e; |
| |
| typedef enum _firmware_source{ |
| FW_SOURCE_IMG_FILE = 0, |
| FW_SOURCE_HEADER_FILE = 1, //from header file |
| }firmware_source_e, *pfirmware_source_e; |
| |
| typedef enum _firmware_status{ |
| FW_STATUS_0_INIT = 0, |
| FW_STATUS_1_MOVE_BOOT_CODE = 1, |
| FW_STATUS_2_MOVE_MAIN_CODE = 2, |
| FW_STATUS_3_TURNON_CPU = 3, |
| FW_STATUS_4_MOVE_DATA_CODE = 4, |
| FW_STATUS_5_READY = 5, |
| }firmware_status_e; |
| |
| typedef struct _rt_firmare_seg_container { |
| u16 seg_size; |
| u8 *seg_ptr; |
| }fw_seg_container, *pfw_seg_container; |
| |
| #define RTL8190_MAX_FIRMWARE_CODE_SIZE 64000 //64k |
| #define MAX_FW_INIT_STEP 3 |
| typedef struct _rt_firmware{ |
| firmware_status_e firmware_status; |
| u16 cmdpacket_frag_thresold; |
| u8 firmware_buf[MAX_FW_INIT_STEP][RTL8190_MAX_FIRMWARE_CODE_SIZE]; |
| u16 firmware_buf_size[MAX_FW_INIT_STEP]; |
| }rt_firmware, *prt_firmware; |
| |
| typedef struct _rt_firmware_info_819xUsb{ |
| u8 sz_info[16]; |
| }rt_firmware_info_819xUsb, *prt_firmware_info_819xUsb; |
| |
| #if 0 |
| /* CPU related */ |
| RT_STATUS |
| CPUCheckMainCodeOKAndTurnOnCPU( |
| IN PADAPTER Adapter |
| ); |
| |
| RT_STATUS |
| CPUCheckFirmwareReady( |
| IN PADAPTER Adapter |
| ); |
| |
| /* Firmware related */ |
| VOID |
| FWInitializeParameters( |
| IN PADAPTER Adapter |
| ); |
| |
| RT_STATUS |
| FWSendDownloadCode( |
| IN PADAPTER Adapter, |
| IN pu1Byte CodeVirtualAddrress, |
| IN u4Byte BufferLen |
| ); |
| |
| RT_STATUS |
| FWSendNullPacket( |
| IN PADAPTER Adapter, |
| IN u4Byte Length |
| ); |
| |
| RT_STATUS |
| CmdSendPacket( |
| PADAPTER Adapter, |
| PRT_TCB pTcb, |
| PRT_TX_LOCAL_BUFFER pBuf, |
| u4Byte BufferLen, |
| u4Byte PacketType, |
| BOOLEAN bLastInitPacket |
| ); |
| #endif |
| #endif |
| |