Microchip® Advanced Software Framework

winc1500/host_drv/driver/source/nmdrv.c File Reference

This module contains NMC1000 M2M driver APIs implementation.

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

#include "common/include/nm_common.h"
#include "driver/source/nmbus.h"
#include "bsp/include/nm_bsp.h"
#include "driver/source/nmdrv.h"
#include "driver/source/nmasic.h"
#include "driver/include/m2m_types.h"
#include "spi_flash/include/spi_flash.h"

Functions

sint8 nm_drv_deinit (void *arg)
 
sint8 nm_drv_init (void *arg)
 
sint8 nm_drv_init_download_mode (void)
 Initialize NMC1000 driver in download mode. More...
 
sint8 nm_drv_init_hold (void)
 First part of nm_drv_init, up to the point of initializing spi for flash access. More...
 
sint8 nm_drv_init_start (void *arg)
 
sint8 nm_get_firmware_full_info (tstrM2mRev *pstrRev)
 Get Firmware version info. More...
 
sint8 nm_get_firmware_info (tstrM2mRev *M2mRev)
 Get Firmware version info. More...
 
sint8 nm_get_ota_firmware_info (tstrM2mRev *pstrRev)
 Get Firmware version info. More...
 

sint8 nm_drv_init ( void *  arg)
nm_drv_init_download_mode ( void  )

Initialize NMC1000 driver in download mode.

Parameters
[in]req_serial_numberChip serial number
Returns
M2M_SUCCESS in case of success and Negative error code in case of failure

TODO:reset the chip and halt the cpu in case of no wait efuse is set (add the no wait effuse check)

References chip_reset_and_cpu_halt(), GET_CHIPID, ISNMC3000, M2M_ERR, M2M_INFO, M2M_SUCCESS, nm_bus_iface_init(), nm_spi_init(), nm_write_reg(), nmi_get_chipid(), and NULL.

nm_drv_init_hold ( void  )

First part of nm_drv_init, up to the point of initializing spi for flash access.

See Also
nm_drv_init
Parameters
[in]req_serial_numberParameter inherited from nm_drv_init
Returns
M2M_SUCCESS in case of success and Negative error code in case of failure

References chip_reset(), chip_wake(), M2M_ERR, M2M_INFO, M2M_SUCCESS, nm_bus_iface_deinit(), nm_bus_iface_init(), nm_spi_init(), nmi_get_chipid(), and NULL.

sint8 nm_get_firmware_full_info ( tstrM2mRev pstrRev)

Get Firmware version info.

Parameters
[out]M2mRevPointer holds address of structure tstrM2mRev that contains the firmware version parameters
[out]pstrRevPointer holds address of structure tstrM2mRev that contains the version parameters of image in the active partition.
Returns
M2M_SUCCESS in case of success and Negative error code in case of failure
Parameters
[out]M2mRevpointer holds address of structure "tstrM2mRev" that contains the firmware version parameters
Version
1.0

References tstrM2mRev::BuildDate, tstrM2mRev::BuildTime, M2M_ERR, M2M_ERR_FAIL, M2M_ERR_FW_VER_MISMATCH, M2M_GET_HIF_BLOCK, M2M_GET_HIF_MAJOR, M2M_GET_HIF_MINOR, M2M_HIF_BLOCK_VALUE, M2M_INFO, M2M_MAKE_VERSION, m2m_memset(), M2M_RELEASE_VERSION_MAJOR_NO, M2M_RELEASE_VERSION_MINOR_NO, M2M_RELEASE_VERSION_PATCH_NO, M2M_SUCCESS, nm_get_hif_info(), nm_read_block(), nm_read_reg_with_ret(), NULL, rNMI_GP_REG_0, rNMI_GP_REG_2, tstrM2mRev::u16FirmwareHifInfo, tstrGpRegs::u32Firmware_Ota_rev, tstrM2mRev::u8DriverMajor, tstrM2mRev::u8DriverMinor, tstrM2mRev::u8DriverPatch, tstrM2mRev::u8FirmwareMajor, tstrM2mRev::u8FirmwareMinor, and tstrM2mRev::u8FirmwarePatch.

sint8 nm_get_ota_firmware_info ( tstrM2mRev pstrRev)

Get Firmware version info.

Parameters
[out]M2mRevPointer holds address of structure tstrM2mRev that contains the firmware version parameters
[out]pstrRevPointer holds address of structure tstrM2mRev that contains the version parameters of image in the inactive partition.
Returns
M2M_SUCCESS in case of success and Negative error code in case of failure
Parameters
[out]M2mRevpointer holds address of structure "tstrM2mRev" that contains the firmware version parameters
Version
1.0

References tstrM2mRev::BuildDate, tstrM2mRev::BuildTime, M2M_ERR, M2M_ERR_FAIL, M2M_ERR_FW_VER_MISMATCH, M2M_ERR_INVALID, M2M_ERR_INVALID_ARG, M2M_GET_HIF_BLOCK, M2M_GET_HIF_MAJOR, M2M_GET_HIF_MINOR, M2M_HIF_BLOCK_VALUE, M2M_INFO, M2M_MAKE_VERSION, m2m_memset(), M2M_RELEASE_VERSION_MAJOR_NO, M2M_RELEASE_VERSION_MINOR_NO, M2M_RELEASE_VERSION_PATCH_NO, M2M_SUCCESS, nm_get_hif_info(), nm_read_block(), nm_read_reg_with_ret(), NULL, rNMI_GP_REG_0, rNMI_GP_REG_2, tstrM2mRev::u16FirmwareHifInfo, tstrGpRegs::u32Firmware_Ota_rev, tstrM2mRev::u8DriverMajor, tstrM2mRev::u8DriverMinor, tstrM2mRev::u8DriverPatch, tstrM2mRev::u8FirmwareMajor, tstrM2mRev::u8FirmwareMinor, and tstrM2mRev::u8FirmwarePatch.