You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.2 KiB
79 lines
2.2 KiB
/** ----------------------------------------------------------------------
|
|
*
|
|
* Copyright (C) 2018 ST Microelectronics S.A.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
*
|
|
----------------------------------------------------------------------*/
|
|
|
|
#ifndef HAL_FD_H_
|
|
#define HAL_FD_H_
|
|
|
|
#include "halcore.h"
|
|
|
|
#define STFLASHTOOL_VERSION 0x0503
|
|
/*
|
|
*Structure containing fw version info
|
|
*/
|
|
typedef struct FWInfo {
|
|
uint32_t patchVersion;
|
|
uint32_t fwVersion;
|
|
uint8_t hwVersion;
|
|
uint32_t loaderVersion;
|
|
uint16_t custVersion;
|
|
uint16_t confVersion;
|
|
uint16_t uwbFwVersion;
|
|
uint16_t uwbVersion;
|
|
bool hibernate_exited;
|
|
} FWInfo;
|
|
|
|
typedef enum {
|
|
// HAL_FD_STATE_GET_ATR,
|
|
HAL_FD_STATE_AUTHENTICATE,
|
|
HAL_FD_STATE_ERASE_FLASH,
|
|
HAL_FD_STATE_SEND_RAW_APDU,
|
|
HAL_FD_STATE_EXIT_APDU,
|
|
} hal_fd_state_e;
|
|
|
|
#define FT_CLF_MODE_ERROR 0
|
|
#define FT_CLF_MODE_LOADER 1
|
|
#define FT_CLF_MODE_ROUTER 2
|
|
|
|
#define FW_TIMER_DURATION 3000
|
|
|
|
#define FW_PATCH_AVAILABLE 1
|
|
#define FW_CUSTOM_PARAM_AVAILABLE 2
|
|
#define FW_UWB_PARAM_AVAILABLE 4
|
|
|
|
#define FW_UPDATE_NEEDED 1
|
|
#define CONF_UPDATE_NEEDED 2
|
|
#define UWB_CONF_UPDATE_NEEDED 4
|
|
|
|
#define MAX_BUFFER_SIZE 300
|
|
|
|
/* Function declarations */
|
|
int hal_fd_init();
|
|
void hal_fd_close();
|
|
uint8_t ft_cmd_HwReset(uint8_t* pdata, uint8_t* clf_mode);
|
|
void ExitHibernateHandler(HALHANDLE mHalHandle, uint16_t data_len,
|
|
uint8_t* p_data);
|
|
void UpdateHandler(HALHANDLE mHalHandle, uint16_t data_len, uint8_t* p_data);
|
|
void ApplyCustomParamHandler(HALHANDLE mHalHandle, uint16_t data_len,
|
|
uint8_t* p_data);
|
|
void ApplyUwbParamHandler(HALHANDLE mHalHandle, uint16_t data_len,
|
|
uint8_t* p_data);
|
|
void resetHandlerState();
|
|
bool ft_CheckUWBConf() ;
|
|
#endif /* HAL_FD_H_ */
|