Microchip® Advanced Software Framework

winc3400/wifi_drv/driver/source/m2m_hif.h File Reference

This module contains M2M host interface APIs implementation.

Copyright (c) 2017-2019 Microchip Technology Inc. and its subsidiaries.

#include "common/include/nm_common.h"

Data Structures

struct  tstrHifHdr
 Structure to hold HIF header. More...
 

Macros

#define M2M_HIF_HDR_OFFSET   (sizeof(tstrHifHdr) + 4)
 
#define M2M_HIF_MAX_PACKET_SIZE   (1600 - 4)
 

Typedefs

typedef void(* tpfHifCallBack )(uint8 u8OpCode, uint16 u16DataSize, uint32 u32Addr)
 used to point to Wi-Fi call back function depend on Arduino project or other projects. More...
 

Functions

sint8 hif_check_code (uint8 u8Gid, uint8 u8OpCode)
 
        To check that a particular hif message is supported with the current driver/firmware pair.
More...
 
sint8 hif_check_compatibility (uint16 u16HifInfo)
 
        To check the compatibility of an image with the current driver.
More...
 
NMI_API sint8 hif_chip_sleep (void)
 To make the chip sleep. More...
 
NMI_API sint8 hif_chip_wake (void)
 To Wakeup the chip. More...
 
NMI_API sint8 hif_deinit (void *arg)
 To Deinitialize HIF layer. More...
 
sint8 hif_enable_access (void)
 
        To enable access to HIF layer, based on HIF level of Firmware.
More...
 
NMI_API uint8 hif_get_sleep_mode (void)
 Get the sleep mode of the HIF layer. More...
 
NMI_API sint8 hif_handle_isr (void)
 
    Handle interrupt received from NMC1500 firmware.
More...
 
NMI_API sint8 hif_init (void *arg)
 To initialize HIF layer. More...
 
NMI_API sint8 hif_receive (uint32 u32Addr, uint8 *pu8Buf, uint16 u16Sz, uint8 isDone)
 
NMI_API sint8 hif_register_cb (uint8 u8Grp, tpfHifCallBack fn)
 
NMI_API sint8 hif_send (uint8 u8Gid, uint8 u8Opcode, uint8 *pu8CtrlBuf, uint16 u16CtrlBufSize, uint8 *pu8DataBuf, uint16 u16DataSize, uint16 u16DataOffset)
 Send packet using host interface. More...
 
NMI_API void hif_set_sleep_mode (uint8 u8Pstype)
 Set the sleep mode of the HIF layer. More...
 
NMI_API void hif_yield (void)
 Yields control from interrupt event handler. More...
 

#define M2M_HIF_HDR_OFFSET   (sizeof(tstrHifHdr) + 4)
#define M2M_HIF_MAX_PACKET_SIZE   (1600 - 4)

< Include depends on UNO Board is used or not Maximum size of the buffer could be transferred between Host and Firmware.

Referenced by hif_send(), m2m_wifi_prng_get_random_bytes(), and sendto().

typedef void(* tpfHifCallBack)(uint8 u8OpCode, uint16 u16DataSize, uint32 u32Addr)

used to point to Wi-Fi call back function depend on Arduino project or other projects.

Parameters
[in]u8OpCodeHIF Opcode type.
[in]u16DataSizeHIF data length.
[in]u32AddrHIF address.
[in]grpHIF group type.

sint8 hif_check_code ( uint8  u8Gid,
uint8  u8OpCode 
)

        To check that a particular hif message is supported with the current driver/firmware pair.

Parameters
[in]u8GidGroup ID.
[in]u8OpcodeOperation ID.
Returns
The function shall return M2M_SUCCESS for success and a negative value otherwise.
Parameters
[in]u8GidGroup ID.
[in]u8OpcodeOperation ID.
Returns
The function shall return ZERO for support and a negative value otherwise.

References gau16HifBlacklist, gu8HifBlOffset, HIF_BLACKLIST_SZ, HIFCODE_OTA_RB, HIFCODE_OTA_SW, M2M_ERR, M2M_ERR_SEND, and M2M_SUCCESS.

Referenced by hif_send().

sint8 hif_check_compatibility ( uint16  u16HifInfo)

        To check the compatibility of an image with the current driver.

Parameters
[in]u16HifInfoHIF info of image to be checked.
Returns
The function shall return ZERO for compatible image and a negative value otherwise.

References M2M_ERR_FW_VER_MISMATCH, M2M_GET_HIF_BLOCK, M2M_GET_HIF_MAJOR, M2M_HIF_BLOCK_VALUE, M2M_HIF_MAJOR_VALUE, M2M_SUCCESS, and ret.

Referenced by hif_enable_access(), and m2m_wifi_check_ota_rb().

NMI_API sint8 hif_chip_sleep ( void  )

To make the chip sleep.

        To make the chip sleep.
Returns
The function shall return ZERO for successful operation and a negative value otherwise.
NMI_API sint8 hif_chip_wake ( void  )

To Wakeup the chip.

    To Wakeup the chip.
Returns
The function shall return ZERO for successful operation and a negative value otherwise.
NMI_API sint8 hif_deinit ( void *  arg)

To Deinitialize HIF layer.

To De-initialize HIF layer.

        To Deinitialize HIF layer.
Parameters
[in]argPointer to the arguments.
Returns
The function shall return ZERO for successful operation and a negative value otherwise.
Parameters
[in]argPointer to the arguments.
Returns
The function shall return ZERO for successful operation and a negative value otherwise.
sint8 hif_enable_access ( void  )

        To enable access to HIF layer, based on HIF level of Firmware.

        This function reads HIF level directly from a register written by Firmware.
Returns
The function shall return ZERO for full match operation and a negative value if operation is restricted.

References gu8HifBlOffset, HIF_BLACKLIST_SZ, hif_check_compatibility(), M2M_ERR, M2M_GET_HIF_MINOR, M2M_SUCCESS, nm_get_hif_info(), NULL, and ret.

Referenced by m2m_wifi_init_start().

NMI_API uint8 hif_get_sleep_mode ( void  )

Get the sleep mode of the HIF layer.

Returns
The function SHALL return the sleep mode of the HIF layer.
NMI_API sint8 hif_handle_isr ( void  )

    Handle interrupt received from NMC1500 firmware.

Handle interrupt received from NMC1500 firmware.

Returns
The function SHALL return 0 for success and a negative value otherwise.
NMI_API sint8 hif_init ( void *  arg)

To initialize HIF layer.

        To initialize HIF layer.
Parameters
[in]argPointer to the arguments.
Returns
The function shall return ZERO for successful operation and a negative value otherwise.
Parameters
[in]argPointer to the arguments.
Returns
The function shall return ZERO for successful operation and a negative value otherwise.
NMI_API sint8 hif_receive ( uint32  u32Addr,
uint8 pu8Buf,
uint16  u16Sz,
uint8  isDone 
)
NMI_API sint8 hif_register_cb ( uint8  u8Grp,
tpfHifCallBack  fn 
)
NMI_API sint8 hif_send ( uint8  u8Gid,
uint8  u8Opcode,
uint8 pu8CtrlBuf,
uint16  u16CtrlBufSize,
uint8 pu8DataBuf,
uint16  u16DataSize,
uint16  u16DataOffset 
)

Send packet using host interface.

Parameters
[in]u8GidGroup ID.
[in]u8OpcodeOperation ID.
[in]pu8CtrlBufPointer to the Control buffer.
[in]u16CtrlBufSizeControl buffer size.
[in]u16DataOffsetPacket Data offset.
[in]pu8DataBufPacket buffer Allocated by the caller.
[in]u16DataSizePacket buffer size (including the HIF header).
Returns
The function shall return M2M_SUCCESS for successful operation and a negative value otherwise.
Parameters
[in]u8GidGroup ID.
[in]u8OpcodeOperation ID.
[in]pu8CtrlBufPointer to the Control buffer.
[in]u16CtrlBufSizeControl buffer size.
[in]u16DataOffsetPacket Data offset.
[in]pu8DataBufPacket buffer Allocated by the caller.
[in]u16DataSizePacket buffer size (including the HIF header).
Returns
The function shall return ZERO for successful operation and a negative value otherwise.
NMI_API void hif_set_sleep_mode ( uint8  u8Pstype)

Set the sleep mode of the HIF layer.

Parameters
[in]u8PstypeSleep mode.
Returns
The function SHALL return 0 for success and a negative value otherwise.
NMI_API void hif_yield ( void  )

Yields control from interrupt event handler.

    Yields control from interrupt event handler.