MCU Communication Coordinator for IST Client

The IST client MCU communication coordinator (ist_client_mcc) provides APIs enabling the IST client to communicate with IST manager.

Functionalities

  • Provide an interface for communication between the IST client running on NVIDIA DRIVE Orin™ SoC and IST manager running on MCU.
  • Communication frame format and protocol to pass messages between MCU and IST client are defined in this module.

APIs

The following APIs must be implemented and exported in libist_client_mcc.so:
/**
 * Do everything needed for MCC and send KIST result
 *
 * @param [in] result: KIST result data
 * @returns 0 on success
 */
extern int ISTClient_mcc_send_results(ist_client_result_t result);

Types

Types defined in ist_client_mcc.h:
/**
 * IST diagnostic result structure
 */
typedef struct ist_client_result {
	uint8_t hw_result;        /**< hw_result value (opaque to mcc) */
	uint8_t reserved_0;       /**< reserved_0 value (opaque to mcc) */
	uint8_t sw_rpl_status;    /**< sw_rpl_status value (opaque to mcc) */
	uint8_t sw_preist_status; /**< sw_preist_status value (opaque to mcc) */
} ist_client_result_t;

Usage

The following pseudo code is provided to illustrate how the ist_client uses the APIs provided by the ist_client_mcc library.
static ist_client_result_t g_ist_client_keyist_result = {0};

int ist_client_main(int argc, char *argv[])
{
  /* Store result in g_ist_client_keyist_result */

  /* Send results to MCU */
  ISTClient_mcc_send_results(g_ist_client_keyist_result);

  return 0;
}