Microchip® Advanced Software Framework

wilc/common/include/nm_common.h File Reference

This module contains WILC common APIs declarations.

Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.

#include "bsp/include/nm_bsp.h"

Macros

#define BOOT_START   0x12345678UL
 
#define BOOT_SUCCESS   0x10add09eUL
 
#define BYTE_0(word)   ((uint8)(((word) >> 0 ) & 0x000000FFUL))
 
#define BYTE_1(word)   ((uint8)(((word) >> 8 ) & 0x000000FFUL))
 
#define BYTE_2(word)   ((uint8)(((word) >> 16) & 0x000000FFUL))
 
#define BYTE_3(word)   ((uint8)(((word) >> 24) & 0x000000FFUL))
 
#define DATA_PKT_OFFSET   4
 
#define ERR_FIRMEWARE_EXCEED_SIZE   0xE5UL /*Total size of firmware exxed the max size 256k*/
 
#define ERR_PREFIX_NMIS   0xE4UL /*wrong first four byte in flash NMIS*/
 
#define I2C_ERR_LARGE_ADDRESS   0xE1UL /*the address exceed the max addressing mode in i2c flash*/
 
#define I2C_ERR_OVER_SIZE   0xE3UL
 
#define I2C_ERR_TX_ABRT   0xE2UL /*NO ack from slave*/
 
#define M2M_ACK   ((sint8)-11)
 
#define M2M_DBG(...)
 
#define M2M_DBG(...)
 
#define M2M_ERR(...)
 
#define M2M_ERR(...)
 
#define M2M_ERR_BUS_FAIL   ((sint8)-6)
 
#define M2M_ERR_FAIL   ((sint8)-12)
 
#define M2M_ERR_FIRMWARE   ((sint8)-8)
 
#define M2M_ERR_FIRMWARE_bURN   ((sint8)-10)
 
#define M2M_ERR_FW_VER_MISMATCH   ((sint8)-13)
 
#define M2M_ERR_INIT   ((sint8)-5)
 
#define M2M_ERR_MEM_ALLOC   ((sint8)-3)
 
#define M2M_ERR_RCV   ((sint8)-2)
 
#define M2M_ERR_SCAN_IN_PROGRESS   ((sint8)-14)
 
#define M2M_ERR_SEND   ((sint8)-1)
 
#define M2M_ERR_TIME_OUT   ((sint8)-4)
 
#define M2M_INFO(...)
 
#define M2M_INFO(...)
 
#define M2M_LOG_DBG   4
 
#define M2M_LOG_ERROR   1
 
#define M2M_LOG_INFO   2
 
#define M2M_LOG_LEVEL   M2M_LOG_DBG
 
#define M2M_LOG_NONE   0
 
#define M2M_LOG_REQ   3
 
#define M2M_MAX(A, B)   ((A) > (B) ? (A) : (B))
 
#define M2M_NOT_YET   ((sint8)-7)
 
#define M2M_PRINT(...)
 
#define M2M_REQ(...)
 
#define M2M_SEL(x, m1, m2, m3)   ((x>1)?((x>2)?(m3):(m2)):(m1))
 
#define M2M_SPI_FAIL   ((sint8)-9)
 
#define M2M_SUCCESS   ((sint8)0)
 
#define M2M_TIME_OUT_DELAY   10000
 
#define NBIT0   (0x00000001)
 
#define NBIT1   (0x00000002)
 
#define NBIT10   (0x00000400)
 
#define NBIT11   (0x00000800)
 
#define NBIT12   (0x00001000)
 
#define NBIT13   (0x00002000)
 
#define NBIT14   (0x00004000)
 
#define NBIT15   (0x00008000)
 
#define NBIT16   (0x00010000)
 
#define NBIT17   (0x00020000)
 
#define NBIT18   (0x00040000)
 
#define NBIT19   (0x00080000)
 
#define NBIT2   (0x00000004)
 
#define NBIT20   (0x00100000)
 
#define NBIT21   (0x00200000)
 
#define NBIT22   (0x00400000)
 
#define NBIT23   (0x00800000)
 
#define NBIT24   (0x01000000)
 
#define NBIT25   (0x02000000)
 
#define NBIT26   (0x04000000)
 
#define NBIT27   (0x08000000)
 
#define NBIT28   (0x10000000)
 
#define NBIT29   (0x20000000)
 
#define NBIT3   (0x00000008)
 
#define NBIT30   (0x40000000)
 
#define NBIT31   (0x80000000)
 
#define NBIT4   (0x00000010)
 
#define NBIT5   (0x00000020)
 
#define NBIT6   (0x00000040)
 
#define NBIT7   (0x00000080)
 
#define NBIT8   (0x00000100)
 
#define NBIT9   (0x00000200)
 
#define PROGRAM_START   0x26961735UL
 
#define WORD_ALIGN(val)   (((val) & 0x03) ? ((val) + 4 - ((val) & 0x03)) : (val))
 

Enumerations

enum  tenuM2mReqGrp {
  M2M_REQ_GRP_MAIN = 0,
  M2M_REQ_GRP_WIFI,
  M2M_REQ_GRP_HIF
}
 
enum  tenuM2mReqPkt {
  M2M_REQ_CONFIG_PKT,
  M2M_REQ_DATA_PKT = NBIT7
}
 

Functions

NMI_API uint8 m2m_checksum (uint8 *buf, int sz)
 Calculates checksum for the specified number of data bytes in specified data buffer. More...
 
NMI_API sint8 m2m_memcmp (uint8 *pu8Buff1, uint8 *pu8Buff2, uint32 u32Size)
 Compare specified number of data bytes in pu8Buff1 and pu8Buff2 and decide if they all match. More...
 
NMI_API void m2m_memcpy (uint8 *pDst, uint8 *pSrc, uint32 sz)
 Copy specified number of bytes from source buffer to destination buffer. More...
 
NMI_API void m2m_memset (uint8 *pBuf, uint8 val, uint32 sz)
 Set specified number of data bytes in specified data buffer to specified value. More...
 
NMI_API uint16 m2m_strlen (uint8 *pcStr)
 Returns the length of a null terminated string buffer. More...
 
NMI_API uint8 m2m_strncmp (uint8 *pcS1, uint8 *pcS2, uint16 u16Len)
 Compare specified number of data bytes in string buffers pcS1 and pcS2. More...
 
NMI_API uint8m2m_strstr (uint8 *pcIn, uint8 *pcStr)
 Find the occurrence of pcStr string in pcIn string. More...
 

#define BOOT_START   0x12345678UL
#define BOOT_SUCCESS   0x10add09eUL
#define BYTE_0 (   word)    ((uint8)(((word) >> 0 ) & 0x000000FFUL))

Referenced by m2m_wifi_cb(), MD4_Hash(), and MD5_HashSW().

#define BYTE_1 (   word)    ((uint8)(((word) >> 8 ) & 0x000000FFUL))

Referenced by m2m_wifi_cb(), MD4_Hash(), and MD5_HashSW().

#define BYTE_2 (   word)    ((uint8)(((word) >> 16) & 0x000000FFUL))

Referenced by m2m_wifi_cb(), MD4_Hash(), and MD5_HashSW().

#define BYTE_3 (   word)    ((uint8)(((word) >> 24) & 0x000000FFUL))

Referenced by m2m_wifi_cb(), MD4_Hash(), and MD5_HashSW().

#define DATA_PKT_OFFSET   4
#define ERR_FIRMEWARE_EXCEED_SIZE   0xE5UL /*Total size of firmware exxed the max size 256k*/
#define ERR_PREFIX_NMIS   0xE4UL /*wrong first four byte in flash NMIS*/
#define I2C_ERR_LARGE_ADDRESS   0xE1UL /*the address exceed the max addressing mode in i2c flash*/
#define I2C_ERR_OVER_SIZE   0xE3UL
#define I2C_ERR_TX_ABRT   0xE2UL /*NO ack from slave*/
#define M2M_ACK   ((sint8)-11)
#define M2M_DBG (   ...)
#define M2M_ERR (   ...)

Referenced by app_wifi_handle_event(), app_wifi_init(), atCmd_Ping(), ble_prov_init(), ble_prov_start(), chip_deinit(), chip_reset_and_cpu_halt(), chip_sleep(), chip_wake(), cmd_handler(), cpu_start(), EcdsaBuildServerX509CertChain(), GROWL_APPSocketEventHandler(), hif_check_code(), hif_enable_access(), hif_handle_isr(), hif_isr(), hif_receive(), hif_register_cb(), hif_send(), hif_send_optimized(), hif_set_receive_buffer(), IperfDecrementTimerUse(), IperfSocketEventHandler(), IperfTCP_SendTestPacket(), IperfUDP_SendTestPacket(), m2m_ble_init(), m2m_ota_cb(), m2m_ota_host_file_get(), m2m_ota_host_file_read_spi(), m2m_ota_init(), m2m_ssl_cb(), m2m_ssl_init(), m2m_validate_ap_parameters(), m2m_validate_scan_options(), m2m_wifi_cb(), m2m_wifi_connect(), m2m_wifi_download_cert(), m2m_wifi_init_start(), m2m_wifi_p2p(), m2m_wifi_prng_get_random_bytes(), m2m_wifi_req_client_ctrl(), m2m_wifi_req_server_init(), m2m_wifi_request_scan(), m2m_wifi_request_scan_ssid(), m2m_wifi_send_ethernet_pkt(), m2m_wifi_set_antenna_mode(), m2m_wifi_set_cust_InfoElement(), m2m_wifi_set_receive_buffer(), m2m_wifi_set_scan_list(), m2m_wifi_set_scan_options(), m2m_wifi_start_provision_mode_ext(), main(), nm_bus_ioctl(), nm_drv_deinit(), nm_drv_init(), nm_drv_init_download_mode(), nm_drv_init_hold(), nm_drv_init_start(), nm_get_firmware_full_info(), nm_get_ota_firmware_info(), NMI_GrowlSendNotification(), ParseRsaPrivKey(), print_Handle_status(), pullup_ctrl(), read_efuse_struct(), RsaBuildServerX509CertChain(), Socket_ReadSocketData(), spi_flash_get_size(), spi_flash_write(), sslSetSockOpt(), start_m2m_app(), and ValidateKeyMaterial().

#define M2M_ERR (   ...)
#define M2M_ERR_BUS_FAIL   ((sint8)-6)
#define M2M_ERR_FAIL   ((sint8)-12)

Referenced by atCmd_Connect_Handler(), atCmd_IsParameterNumericOnly(), atCmd_MonEn_Handler(), atCmd_Ping(), BuildServerX509CertChain(), burn_firmware(), CryptoDecodeRsaPrivKey(), CryptoX509CertDecode(), DecodeBase64File(), dump_firmware_section(), EcdsaBuildServerX509CertChain(), func_uint_imp(), func_void_imp(), hif_receive(), hif_register_cb(), IperfCreate(), IperfSocketClose(), IperfStop(), IperfTCP_ClientStart(), IperfTCP_ServerStart(), IperfUDP_ClientStart(), IperfUDP_SendTestPacket(), IperfUDP_ServerStart(), legacy_connect_prepare_msg(), m2m_flash_erase_sector(), m2m_flash_read(), m2m_flash_switch_firmware(), m2m_flash_write(), m2m_ota_host_file_get(), m2m_ota_host_file_read_spi(), m2m_ota_rollback(), m2m_ota_switch_firmware(), m2m_ssl_retrieve_hash(), m2m_ssl_retrieve_next_for_verifying(), m2m_validate_ap_parameters(), m2m_validate_scan_options(), m2m_wifi_ble_set_gain_table(), m2m_wifi_conf_auto_rate(), m2m_wifi_configure_sntp(), m2m_wifi_connect(), m2m_wifi_connect_prepare_msg(), m2m_wifi_enable_ap_ext(), m2m_wifi_enable_mac_mcast(), m2m_wifi_init_hold(), m2m_wifi_init_start(), m2m_wifi_p2p(), m2m_wifi_prng_get_random_bytes(), m2m_wifi_reinit(), m2m_wifi_send_crl(), m2m_wifi_set_antenna_mode(), m2m_wifi_set_cust_InfoElement(), m2m_wifi_set_gains(), m2m_wifi_set_ht_enable(), m2m_wifi_set_max_tx_rate(), m2m_wifi_set_receive_buffer(), m2m_wifi_set_scan_list(), m2m_wifi_set_scan_options(), m2m_wifi_set_scan_region(), m2m_wifi_set_stop_scan_on_first(), m2m_wifi_start_provision_mode_ext(), nm_get_firmware_full_info(), nm_get_ota_firmware_info(), NMI_GrowlSendNotification(), ParsePrivKey(), ParseRsaPrivKey(), RsaBuildServerX509CertChain(), spi_flash_erase(), spi_flash_pp(), spi_flash_write(), spi_flexible_flash_find_section(), StrMac2Bin(), TlsSrvSecFwrite(), TlsSrvSecWriteCertChain(), update_control_structure(), ValidateKeyMaterial(), verify_control_structure(), winc_flash_write_verify(), and WriteTlsServerKeyMaterial().

#define M2M_ERR_FIRMWARE   ((sint8)-8)
#define M2M_ERR_FIRMWARE_bURN   ((sint8)-10)
#define M2M_ERR_RCV   ((sint8)-2)

Referenced by hif_isr().

#define M2M_INFO (   ...)
#define M2M_LOG_DBG   4
#define M2M_LOG_ERROR   1
#define M2M_LOG_INFO   2
#define M2M_LOG_LEVEL   M2M_LOG_DBG
#define M2M_LOG_NONE   0
#define M2M_LOG_REQ   3
#define M2M_MAX (   A,
 
)    ((A) > (B) ? (A) : (B))

Referenced by TlsSrvSecFopen().

#define M2M_NOT_YET   ((sint8)-7)
#define M2M_REQ (   ...)
#define M2M_SEL (   x,
  m1,
  m2,
  m3 
)    ((x>1)?((x>2)?(m3):(m2)):(m1))
#define M2M_SPI_FAIL   ((sint8)-9)
#define M2M_SUCCESS   ((sint8)0)

Referenced by app_wifi_init(), atCmd_AntDiversity_Handler(), atCmd_ApDisable_Handler(), atCmd_ApEnable_Handler(), atCmd_CurRSSI_Handler(), atCmd_DisConnect_Handler(), atCmd_HTTPCon_Handler(), atCmd_IPCon_Handler(), atCmd_IsParameterNumericOnly(), atCmd_MonDis_Handler(), atCmd_MonEn_Handler(), atCmd_P2pDisable_Handler(), atCmd_P2pEnable_Handler(), atCmd_SetStaticIP_Handler(), atCmd_WpsConnect_Handler(), atCmd_WpsDisable_Handler(), BuildServerX509CertChain(), burn_firmware(), Cert_DecodeValidity(), certificate_download(), chip_apply_conf(), chip_deinit(), chip_reset(), chip_reset_and_cpu_halt(), chip_sleep(), chip_wake(), cmd_handler(), cpu_start(), CryptoDecodeRsaPrivKey(), CryptoX509CertDecode(), DecodeBase64File(), dump_firmware_section(), EcdsaBuildServerX509CertChain(), enable_disable_ap_mode(), enable_interrupts(), enter_wifi_firmware_download(), find_flash_section(), firmware_download(), get_gpio_val(), GetRootCertificate(), gpio_ioctl(), hexstr_2_bytes(), hif_check_code(), hif_check_compatibility(), hif_chip_sleep(), hif_chip_sleep_sc(), hif_chip_wake(), hif_deinit(), hif_enable_access(), hif_handle_isr(), hif_init(), hif_isr(), hif_receive(), hif_register_cb(), hif_send(), hif_send_optimized(), hif_set_rx_done(), init_m2m_app(), iperf_tcp_task(), iperf_udp_send(), IperfSocketEventHandler(), IperfSocketStop(), IperfStart(), IperfStop(), IperfTCP_ClientStart(), IperfTCP_ServerStart(), IperfUDP_ClientStart(), IperfUDP_SendTestPacket(), IperfUDP_ServerStart(), IperfUpdate(), legacy_connect_prepare_msg(), m2m_ble_event_get(), m2m_ble_init(), m2m_ble_plf_wait_func(), m2m_flash_erase_sector(), m2m_flash_read(), m2m_flash_switch_firmware(), m2m_flash_write(), m2m_ip_cb(), m2m_ota_abort(), m2m_ota_cb(), m2m_ota_get_firmware_version(), m2m_ota_host_file_get(), m2m_ota_host_file_read_hif(), m2m_ota_host_file_read_spi(), m2m_ota_init(), m2m_ota_notif_check_for_update(), m2m_ota_notif_sched(), m2m_ota_notif_set_url(), m2m_ota_rollback(), m2m_ota_start_update(), m2m_ota_switch_firmware(), m2m_periph_gpio_pullup_ctrl(), m2m_periph_i2c_master_init(), m2m_periph_i2c_master_read(), m2m_periph_i2c_master_write(), m2m_periph_init(), m2m_ssl_cb(), m2m_ssl_handshake_rsp(), m2m_ssl_init(), m2m_ssl_retrieve_hash(), m2m_ssl_retrieve_next_for_verifying(), m2m_ssl_send_certs_to_winc(), m2m_ssl_set_active_ciphersuites(), m2m_validate_ap_parameters(), m2m_validate_scan_options(), m2m_wifi_1x_get_option(), m2m_wifi_1x_set_option(), m2m_wifi_ap_add_black_list(), m2m_wifi_ap_get_assoc_info(), m2m_wifi_cb(), m2m_wifi_check_ota_rb(), m2m_wifi_connect(), m2m_wifi_connect_1x_mschap2(), m2m_wifi_connect_1x_tls(), m2m_wifi_connect_open(), m2m_wifi_connect_prepare_msg(), m2m_wifi_connect_psk(), m2m_wifi_connect_wep(), m2m_wifi_deinit(), m2m_wifi_disable_ap(), m2m_wifi_download_mode(), m2m_wifi_enable_ap(), m2m_wifi_enable_ap_ext(), m2m_wifi_enable_firmware_logs(), m2m_wifi_get_firmware_version(), m2m_wifi_get_mac_address(), m2m_wifi_get_otp_mac_address(), m2m_wifi_handle_events(), m2m_wifi_init(), m2m_wifi_init_hold(), m2m_wifi_init_start(), m2m_wifi_p2p(), m2m_wifi_p2p_disconnect(), m2m_wifi_reinit(), m2m_wifi_req_client_ctrl(), m2m_wifi_req_curr_rssi(), m2m_wifi_req_restrict_ble(), m2m_wifi_req_scan_result(), m2m_wifi_req_server_init(), m2m_wifi_req_unrestrict_ble(), m2m_wifi_request_scan(), m2m_wifi_request_scan_passive(), m2m_wifi_request_scan_ssid(), m2m_wifi_request_scan_ssid_list(), m2m_wifi_request_sleep(), m2m_wifi_set_battery_voltage(), m2m_wifi_set_gain_table_idx(), m2m_wifi_set_power_profile(), m2m_wifi_set_receive_buffer(), m2m_wifi_set_scan_list(), m2m_wifi_set_scan_options(), m2m_wifi_set_sleep_mode(), m2m_wifi_set_tx_power(), m2m_wifi_start_provision_mode_ext(), m2m_wifi_wps_disable(), main(), nm_bsp_app_deinit(), nm_bsp_app_init(), nm_bsp_deinit(), nm_bus_deinit(), nm_bus_iface_deinit(), nm_bus_iface_init(), nm_bus_iface_reconfigure(), nm_bus_init(), nm_bus_reset(), nm_drv_deinit(), nm_drv_init(), nm_drv_init_download_mode(), nm_drv_init_hold(), nm_drv_init_start(), nm_get_firmware_full_info(), nm_get_firmware_info(), nm_get_hif_info(), nm_get_ota_firmware_info(), nm_read_block(), nm_write_block(), nmi_get_chipid(), nmi_get_mac_address(), nmi_get_otp_mac_address(), nmi_get_rfrevid(), os_m2m_wifi_init_imp(), ParseRsaPrivKey(), pullup_ctrl(), read_control_structure(), ReadServerX509Chain(), RsaBuildServerX509CertChain(), serial_bridge(), set_gpio_dir(), set_gpio_val(), Socket_ReadSocketData(), spi_flash_enable(), spi_flash_erase(), spi_flash_get_size(), spi_flash_load_to_cortus_mem(), spi_flash_page_program(), spi_flash_pp(), spi_flash_probe(), spi_flash_rdid(), spi_flash_read(), spi_flash_read_internal(), spi_flash_read_status_reg(), spi_flash_sector_erase(), spi_flash_write(), spi_flash_write_disable(), spi_flash_write_enable(), spi_flexible_flash_find_section(), start_m2m_app(), StrMac2Bin(), TlsSrvSecFwrite(), update_control_structure(), ValidateKeyMaterial(), verify_control_structure(), wait_for_bootrom(), wait_for_firmware_start(), wifi_ap_provision(), wifi_cb(), wifi_provision_app_scanning_handler(), wilc_netif_tx_from_queue(), winc_flash_compare(), winc_flash_write_verify(), winc_netif_tx_from_queue(), WriteRootCertificate(), WriteTlsCertificate(), and WriteTlsServerKeyMaterial().

#define M2M_TIME_OUT_DELAY   10000
#define NBIT0   (0x00000001)
#define NBIT1   (0x00000002)
#define NBIT10   (0x00000400)
#define NBIT11   (0x00000800)
#define NBIT12   (0x00001000)
#define NBIT13   (0x00002000)
#define NBIT14   (0x00004000)
#define NBIT15   (0x00008000)
#define NBIT16   (0x00010000)
#define NBIT17   (0x00020000)
#define NBIT18   (0x00040000)
#define NBIT19   (0x00080000)
#define NBIT2   (0x00000004)

Referenced by chip_wake(), and hif_send().

#define NBIT20   (0x00100000)

Referenced by wait_for_bootrom().

#define NBIT21   (0x00200000)
#define NBIT22   (0x00400000)
#define NBIT23   (0x00800000)
#define NBIT24   (0x01000000)
#define NBIT25   (0x02000000)
#define NBIT26   (0x04000000)
#define NBIT27   (0x08000000)
#define NBIT28   (0x10000000)
#define NBIT29   (0x20000000)
#define NBIT3   (0x00000008)

Referenced by hif_send().

#define NBIT30   (0x40000000)
#define NBIT31   (0x80000000)

Referenced by IperfSocketEventHandler().

#define NBIT4   (0x00000010)
#define NBIT5   (0x00000020)
#define NBIT6   (0x00000040)
#define NBIT7   (0x00000080)

Referenced by hif_send(), and hif_send_optimized().

#define NBIT8   (0x00000100)
#define NBIT9   (0x00000200)
#define PROGRAM_START   0x26961735UL
#define WORD_ALIGN (   val)    (((val) & 0x03) ? ((val) + 4 - ((val) & 0x03)) : (val))

Enumerator
M2M_REQ_GRP_MAIN 
M2M_REQ_GRP_WIFI 
M2M_REQ_GRP_HIF 
Enumerator
M2M_REQ_CONFIG_PKT 
M2M_REQ_DATA_PKT