mirror of
https://github.com/jialexd/sdk-ameba-v4.0c_180328.git
synced 2024-11-28 09:10:28 +00:00
160 lines
4.2 KiB
C
160 lines
4.2 KiB
C
|
/**
|
||
|
******************************************************************************
|
||
|
* @file rtl8710b_inic.h
|
||
|
* @author
|
||
|
* @version V1.0.0
|
||
|
* @date 2016-05-17
|
||
|
* @brief This file contains all the functions prototypes for the USB & SDIO INIC firmware
|
||
|
* library.
|
||
|
******************************************************************************
|
||
|
* @attention
|
||
|
*
|
||
|
* This module is a confidential and proprietary property of RealTek and
|
||
|
* possession or use of this module requires written permission of RealTek.
|
||
|
*
|
||
|
* Copyright(c) 2015, Realtek Semiconductor Corporation. All rights reserved.
|
||
|
******************************************************************************
|
||
|
*/
|
||
|
|
||
|
#ifndef _RTL8710B_INIC_H_
|
||
|
#define _RTL8710B_INIC_H_
|
||
|
|
||
|
/** @addtogroup AmebaZ_Periph_Driver
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
/** @defgroup INIC
|
||
|
* @brief INIC driver modules
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
/* Exported types ------------------------------------------------------------*/
|
||
|
|
||
|
/** @defgroup INIC_Exported_Types INIC Exported Types
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* @brief INIC TX DESC structure definition
|
||
|
* @note: Ameba1 is 6 dword, but AmebaZ is 4 dwords
|
||
|
*/
|
||
|
typedef struct {
|
||
|
/* u4Byte 0 */
|
||
|
u32 txpktsize:16; // bit[15:0]
|
||
|
u32 offset:8; // bit[23:16], store the sizeof(INIC_TX_DESC)
|
||
|
u32 bus_agg_num:8; // bit[31:24], the bus aggregation number
|
||
|
|
||
|
/* u4Byte 1 */
|
||
|
u32 type:8; // bit[7:0], the packet type
|
||
|
u32 data:8; // bit[8:15], the value to be written to the memory
|
||
|
u32 reply:1; // bit[16], request to send a reply message
|
||
|
u32 rsvd0:15;
|
||
|
|
||
|
/* u4Byte 2 */
|
||
|
u32 start_addr; // 1) memory write/read start address 2) RAM start_function address
|
||
|
|
||
|
/* u4Byte 3 */
|
||
|
u32 data_len:16; // bit[15:0], the length to write/read
|
||
|
u32 rsvd2:16; // bit[31:16]
|
||
|
} INIC_TX_DESC, *PINIC_TX_DESC;
|
||
|
|
||
|
/**
|
||
|
* @brief INIC RX DESC structure definition
|
||
|
* @note: Ameba1 is 6 dword, but AmebaZ is 4 dwords
|
||
|
*/
|
||
|
typedef struct {
|
||
|
/* u4Byte 0 */
|
||
|
u32 pkt_len:16; // bit[15:0], the packet size
|
||
|
u32 offset:8; // bit[23:16], the offset from the packet start to the buf start, also means the size of RX Desc
|
||
|
u32 rsvd0:6; // bit[29:24]
|
||
|
u32 icv:1; //icv error
|
||
|
u32 crc:1; // crc error
|
||
|
|
||
|
/* u4Byte 1 */
|
||
|
/************************************************/
|
||
|
/*****************receive packet type*********************/
|
||
|
/* 0x82: 802.3 packet */
|
||
|
/* 0x80: 802.11 packet */
|
||
|
/* 0x10: C2H command */
|
||
|
/* 0x50: Memory Read */
|
||
|
/* 0x52: Memory Write */
|
||
|
/* 0x54: Memory Set */
|
||
|
/* 0x60: Indicate the firmware is started */
|
||
|
u32 type:8; // bit[7:0], the type of this packet
|
||
|
u32 rsvd1:24; // bit[31:8]
|
||
|
|
||
|
/* u4Byte 2 */
|
||
|
u32 start_addr;
|
||
|
|
||
|
/* u4Byte 3 */
|
||
|
u32 data_len:16; // bit[15:0], the type of this packet
|
||
|
u32 result:8; // bit[23:16], the result of memory write command
|
||
|
u32 rsvd2:8; // bit[31:24]
|
||
|
} INIC_RX_DESC, *PINIC_RX_DESC;
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/* Exported constants --------------------------------------------------------*/
|
||
|
|
||
|
/** @defgroup INIC_Exported_Constants INIC Exported Constants
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
/** @defgroup INIC_packet_type_definitions
|
||
|
* @{
|
||
|
*/
|
||
|
#define TX_PACKET_802_3 (0x83)
|
||
|
#define TX_PACKET_802_11 (0x81)
|
||
|
#define TX_H2C_CMD (0x11)
|
||
|
#define TX_MEM_READ (0x51)
|
||
|
#define TX_MEM_WRITE (0x53)
|
||
|
#define TX_MEM_SET (0x55)
|
||
|
#define TX_FM_FREETOGO (0x61)
|
||
|
#define TX_PACKET_USER (0x41)
|
||
|
|
||
|
#define RX_PACKET_802_3 (0x82)
|
||
|
#define RX_PACKET_802_11 (0x80)
|
||
|
#define RX_C2H_CMD (0x10)
|
||
|
#define RX_MEM_READ (0x50)
|
||
|
#define RX_MEM_WRITE (0x52)
|
||
|
#define RX_MEM_SET (0x54)
|
||
|
#define RX_FM_FREETOGO (0x60)
|
||
|
#define RX_PACKET_USER (0x40)
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/** @defgroup INIC_DESC_Size_definitions
|
||
|
* @{
|
||
|
*/
|
||
|
#define SIZE_RX_DESC (sizeof(INIC_RX_DESC))
|
||
|
#define SIZE_TX_DESC (sizeof(INIC_TX_DESC))
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
|
||
|
/** @defgroup INIC_Exported_Functions INIC Exported Functions
|
||
|
* @{
|
||
|
*/
|
||
|
//_LONG_CALL_
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
#endif //_RTL8710B_INIC_H_
|
||
|
/******************* (C) COPYRIGHT 2016 Realtek Semiconductor *****END OF FILE****/
|