Core#

Functions#

sl_status_t

Get the saved thread specific firmware status value.

sl_status_t
sl_si91x_set_rtc_timer(const sl_si91x_module_rtc_time_t *timer)

Sets the Real Time Clock (RTC) of the module.This is a blocking API.

sl_status_t
sl_si91x_get_rtc_timer(sl_si91x_module_rtc_time_t *response)

Retrieves the current time from the module's Real Time Clock (RTC).This is a blocking API.

sl_status_t
sl_si91x_m4_ta_secure_handshake(uint8_t sub_cmd_type, uint8_t input_len, const uint8_t *input_data, uint8_t output_len, const uint8_t *output_data)

Secure handshake.

sl_status_t
sl_si91x_set_join_configuration(sl_wifi_interface_t interface, uint8_t join_feature_bitmap)

Si91X specific set join feature bitmap configuration.

sl_status_t
sl_si91x_get_join_configuration(sl_wifi_interface_t interface, uint8_t *join_feature_bitmap)

Si91X specific get join feature bitmap configuration.

sl_status_t
sl_si91x_configure_timeout(sl_si91x_timeout_type_t timeout_type, uint16_t timeout_value)

This API is used to set different module timeouts.

void
sl_si91x_set_timeout(const sl_si91x_timeout_t *timeout_config)

Si91x specific set timeout.

sl_status_t
sl_si91x_command_to_write_common_flash(uint32_t write_address, const uint8_t *write_data, uint16_t write_data_length, uint8_t flash_sector_erase_enable)

This function allows the Network Processor (NWP) to write content to the common flash from M4.

sl_status_t
sl_si91x_command_to_read_common_flash(uint32_t read_address, size_t length, uint8_t *output_buffer)

Sends a command to read data from the NWP flash memory of the SI91x wireless device.

sl_status_t

Signals the occurrence of an assertion in the firmware.

sl_status_t
sl_si91x_get_ram_log(uint32_t address, uint32_t length)


Retrieves TA RAM log/dump via Si91x UART/UART2.

sl_status_t
sl_si91x_get_firmware_version(sl_si91x_firmware_version_t *version)

Get/retrieve the firmware version currently available on the SiWx91x device.

sl_status_t
sl_si91x_get_firmware_size(void *buffer, uint32_t *fw_image_size)

Return the firmware image size from firmware image file, this is a non-blocking API.

sl_status_t
sl_si91x_set_nwp_config_request(sl_si91x_nwp_configuration_t nwp_config)

Set configuration to NWP.

Function Documentation#

sl_si91x_get_saved_firmware_status#

static sl_status_t sl_si91x_get_saved_firmware_status (void )

Get the saved thread specific firmware status value.

Parameters
N/A

Returns


Definition at line 85 of file components/device/silabs/si91x/wireless/inc/sl_si91x_core_utilities.h

sl_si91x_set_rtc_timer#

sl_status_t sl_si91x_set_rtc_timer (const sl_si91x_module_rtc_time_t * timer)

Sets the Real Time Clock (RTC) of the module.This is a blocking API.

Parameters
[in]timer

Pointer to an sl_si91x_module_rtc_time_t structure that contains the RTC time to be set.

Returns

Note

  • Ensure that the Real-Time Clock (RTC) timer is configured to enable certificate validation.


Definition at line 260 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_get_rtc_timer#

sl_status_t sl_si91x_get_rtc_timer (sl_si91x_module_rtc_time_t * response)

Retrieves the current time from the module's Real Time Clock (RTC).This is a blocking API.

Parameters
[out]response

Pointer to an sl_si91x_module_rtc_time_t structure where the RTC's current time will be stored.

Returns


Definition at line 273 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_m4_ta_secure_handshake#

sl_status_t sl_si91x_m4_ta_secure_handshake (uint8_t sub_cmd_type, uint8_t input_len, const uint8_t * input_data, uint8_t output_len, const uint8_t * output_data)

Secure handshake.

Parameters
[in]sub_cmd_type

Specifies the Sub command type for the secure handshake.

[in]input_len

Input data is a pointer that contains the information used during a secure handshake.

[in]input_data

Specifies the length of input data.

[in]output_len

Specifies the length of output data.

[in]output_data

Pointer to store the response data after the secure handshake process.

This is a blocking API.

Returns


Definition at line 588 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_set_join_configuration#

sl_status_t sl_si91x_set_join_configuration (sl_wifi_interface_t interface, uint8_t join_feature_bitmap)

Si91X specific set join feature bitmap configuration.

Parameters
[in]interface

sl_wifi_interface_t Selected interface.

[in]join_feature_bitmap

Join feature bitmap configuration. One of values from Join Feature Bitmap

Returns

Note


Definition at line 608 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_get_join_configuration#

sl_status_t sl_si91x_get_join_configuration (sl_wifi_interface_t interface, uint8_t * join_feature_bitmap)

Si91X specific get join feature bitmap configuration.

Parameters
[in]interface

sl_wifi_interface_t Selected interface.

[out]join_feature_bitmap

join feature bitmap configuration. One of values from Join Feature Bitmap

Returns

Note

  • By default SL_SI91X_JOIN_FEAT_LISTEN_INTERVAL_VALID bitmap is enabled.


Definition at line 622 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_configure_timeout#

sl_status_t sl_si91x_configure_timeout (sl_si91x_timeout_type_t timeout_type, uint16_t timeout_value)

This API is used to set different module timeouts.

Parameters
[in]timeout_type

It is used to identify which timeout type to be set. The possible values can be sl_si91x_timeout_type_t

[in]timeout_value

timeout value to be set. The time resolution depends on timeout_type.

Note

  • After a successful IP configuration, Gratuitous ARP is used as the periodic WLAN Keep-Alive packet with the configured keep_alive_timeout interval.

    • If there is no IP configuration, the NULL Data Packets is used as the WLAN Keep-Alive packet.

Returns


Definition at line 643 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_set_timeout#

void sl_si91x_set_timeout (const sl_si91x_timeout_t * timeout_config)

Si91x specific set timeout.

Parameters
[in]timeout_config

Timeout configuration of type sl_si91x_timeout_t.

This function is used to set active channel scan timeout, authentication association timeout and keep alive timeout of module. Returns

  • None

Note

  • This API should ONLY be called before sl_wifi_init and repeated call to this API will overwrite timeout values stored in SDK, will be applied on next call to sl_wifi_init.


Definition at line 654 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_command_to_write_common_flash#

sl_status_t sl_si91x_command_to_write_common_flash (uint32_t write_address, const uint8_t * write_data, uint16_t write_data_length, uint8_t flash_sector_erase_enable)

This function allows the Network Processor (NWP) to write content to the common flash from M4.

Parameters
[in]write_address


The address in the common flash memory where the write operation should begin. For the M4 region, the write address should start from 0x8000000. Possible values range from the M4 image end address to the M4 region end address. For the NWP region, the write address should range from 0 to (20K-1).

[in]write_data


The data to be written. For sector erase it should be multiples of 4K.

[in]write_data_length


The total length of the data, which should be multiples of 4K for sector erase.

[in]flash_sector_erase_enable


Enable or disable sector erase. 1 - Erases multiples of 4 KB of data. 0 - Disable, allows to write data onto flash.

It's a blocking API. Returns


Definition at line 716 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_command_to_read_common_flash#

sl_status_t sl_si91x_command_to_read_common_flash (uint32_t read_address, size_t length, uint8_t * output_buffer)

Sends a command to read data from the NWP flash memory of the SI91x wireless device.

Parameters
[in]read_address

The address in the NWP flash memory to read from. The address should range from 0 to (20K-1).

[in]length

The number of bytes to read from the NWP flash memory.

[out]output_buffer

Pointer to the buffer where the data will be.

This is a blocking API. This function is a command to the SI91x wireless device to read data from the NWP flash memory at the specified address. The read data is stored in the provider's output_data buffer. Returns


Definition at line 733 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_assert#

sl_status_t sl_si91x_assert (void )

Signals the occurrence of an assertion in the firmware.

Parameters
N/A

Returns


Definition at line 761 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_get_ram_log#

sl_status_t sl_si91x_get_ram_log (uint32_t address, uint32_t length)


Retrieves TA RAM log/dump via Si91x UART/UART2.

Parameters
[in]address

Address in Si91x module.

[in]length


Chunk length to read from Si91x module.

Returns


Definition at line 773 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_get_firmware_version#

sl_status_t sl_si91x_get_firmware_version (sl_si91x_firmware_version_t * version)

Get/retrieve the firmware version currently available on the SiWx91x device.

Parameters
[out]version

sl_si91x_firmware_version_t object that contains the version string.

This is a blocking API.

  • Pre-conditions:

    • sl_wifi_init should be called before this API.

Returns


Definition at line 904 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_get_firmware_size#

sl_status_t sl_si91x_get_firmware_size (void * buffer, uint32_t * fw_image_size)

Return the firmware image size from firmware image file, this is a non-blocking API.

Parameters
[in]buffer

Buffer pointing to firmware image file.

[out]fw_image_size

Size of the firmware image passed in the input buffer param. The value returned in this param is valid only if this API returns SL_STATUS_OK(0).

Returns


Definition at line 916 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_set_nwp_config_request#

sl_status_t sl_si91x_set_nwp_config_request (sl_si91x_nwp_configuration_t nwp_config)

Set configuration to NWP.

Parameters
[in]nwp_config

Configuration as identified by sl_si91x_nwp_configuration_t. Possible values for config.code are defined below:

  • For SL_SI91X_XO_CTUNE_FROM_HOST:

    • nwp_config.values.config_val is used to configure NWP's XO Ctune value.

  • For SL_SI91X_ENABLE_NWP_WDT_FROM_HOST:

    • nwp_config.values.wdt_timer_val is used to configure the NWP WDT ISR timer. Currently, the value for this timer is set to 32 seconds.

    • nwp_config.values.wdt_enable_in_ps is used to enable WDT in powersave.

  • For SL_SI91X_DISABLE_NWP_WDT_FROM_HOST:

    • Disables NWP WDT ISR timer. nwp_config.values.config_val is not utilized by the NWP.

  • All other values are NOT SUPPORTED.

The configuration value can be set based on the code element of sl_si91x_nwp_configuration_t structure.

  • Pre-conditions:

    • sl_wifi_init should be called before this API.

Returns


Definition at line 938 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h