blob: 3ee42e9b8030f2f859be1633f02740e8f6ae5763 [file] [log] [blame]
/** ----------------------------------------------------------------------
*
* 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_ */