Files
kunlun/driver/inc/system.h
2024-09-28 14:24:04 +08:00

110 lines
3.1 KiB
C

/****************************************************************************
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
be copied by any method or incorporated into another program without
the express written consent of Aerospace C.Power. This Information or any portion
thereof remains the property of Aerospace C.Power. The Information contained herein
is believed to be accurate and Aerospace C.Power assumes no responsibility or
liability for its use in any way and conveys no license or title under
any patent or copyright and makes no representation or warranty that this
Information is free from patent or copyright infringement.
****************************************************************************/
#ifndef _SYSTEM_H
#define _SYSTEM_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
int fw_mode; /* fw mode select */
int print_ena; /* enable iot_printf */
int flash_size; /* virtual flash size */
int run_in_psram; /* fw run in psram or not */
} sbl_param_input_t;
/**
* @brief system_get_mac_addr: get internal mac address information.
* @param mac: pointer of mac address buffer.
* @return 0: succeed, 0xffffffff: failed.
*/
uint32_t system_get_mac_addr(uint8_t *mac);
/**
* @brief system_get_chip_info: get internal chip id information.
* @return chip id.
*/
uint32_t system_get_chip_info();
/**
* @brief system_get_chip_subid_info: get internal chip sub id information.
* @return sub id.
*/
uint32_t system_get_chip_subid_info();
/**
* @brief system_get_chip_efuse_check_status:
* get internal chip efuse check status.
* @return chip efuse check status.
* 0x00: check succeed; other: the corresponding item fails to be verified.
* bit 0: chip id check result;
* bit 1: mac address check result;
* bit 2: ate calibration check result;
* bit 3: sadc meter check result.
*/
uint8_t system_get_chip_efuse_check_status();
/**
* @brief system_check_lic: check license status
* @return 1->internal pa, 0->external pa.
*/
uint8_t system_check_lic();
/**
* @brief system_set_restart_reason: set restart reason.
* @param reason: restart reason.
* @return none.
*/
void system_set_restart_reason(uint8_t reason);
/**
* @brief scratch_p_set_fast_boot: set fast boot.
* @param en: set enable or disable.
* @return none.
*/
void scratch_p_set_fast_boot(bool_t en);
/**
* @brief scratch_p_get_fast_boot: get fast boot stat.
* @return true->fast boot enable; false->fast boot disable.
*/
bool_t scratch_p_get_fast_boot(void);
/**
* @brief system_get_fw_boot_param - get firmware boot parameter.
* @param ptr: pointer of parameter that sbl load firmware.
* @return none.
*/
void system_get_fw_boot_param(sbl_param_input_t *ptr);
/**
* @brief system_restart_chip_by_soft - restart chip by software.
* @return none.
*/
void system_restart_chip_by_soft();
/**
* @brief system_get_rst_flag_reg - get rest flag in register set by hardware.
* @return reset flag.
*/
uint32_t system_get_rst_flag_reg();
#ifdef __cplusplus
}
#endif
#endif //_SYSTEM_H