Files
kunlun/dtest/ate_test/ate_main.h
2024-09-28 14:24:04 +08:00

133 lines
4.4 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 __ATE_MAIN_H
#define __ATE_MAIN_H
#include "os_types.h"
#include "phy_cal.h"
#pragma pack(push) /* save the pack status */
#pragma pack(1) /* 1 byte align */
/* case branch */
// 6: ana&&flash 1:efuse
#define ATE_TEST_CASE_ID (6)
#define ATE_DEBUG_LEVEL (0)
#define ATE_FUSE_INFO_EN (0)
#define ATE_SADC_SUPPORT (1)
// 1 geode only
#define ATE_GEODE_ONLY (0)
#define ATE_EFUSE_PROG_DONE (1)
#define ATE_TONE_3M (41)
#define SFC_ATE_TEST_READ_ID_ERR (1 << 0)
#define SFC_ATE_TEST_SET_QUAD_ERR (1 << 1)
#define SFC_ATE_TEST_ERASE_SECTOR_ERR (1 << 2)
#define SFC_ATE_TEST_WRITE_SERIAL_ERR (1 << 3)
#define SFC_ATE_TEST_WRITE_QUAD_ERR (1 << 4)
#define SFC_ATE_TEST_READ_SERIAL_ERR (1 << 5)
#define SFC_ATE_TEST_READ_QUAD_ERR (1 << 6)
#define SFC_ATE_TEST_EFUSE_ZERO_ERR (1 << 7)
#define SFC_ATE_TEST_OK (0)
#define PHY_NF_RST_VAL (121)
#define PHY_NF_RTY_CNT (10)
/* ATE software version */
#define ATE_SW_VER ("SW_V1.4_20180411")
#define REG8(a) (*((volatile uint8_t *)(a)))
#define REG32(a) (*((volatile uint32_t *)(a)))
#define ERR_BIT(a) (0x00000001<<(a)) // | 0x00000002)
typedef enum _iot_ftm_result {
ATE_TEST_OK = 0x01,
ATE_TEST_FAIL = 0xFF,
} iot_ftm_result_t;
/* ate total info structure:512byte start from 0xff8000 */
typedef struct _ate_info {
uint8_t result;
uint32_t ret_flag;
uint8_t sw_version[20];
uint8_t mac[6];
uint8_t version;/* bit0-3:pkg, bit4-7:wafer */
uint8_t efuse_checksum;
uint8_t efuse_1st_pg[4];
uint8_t gain;
uint8_t rssi;
uint8_t est_dc;
int8_t est_ppm;
int8_t avg_snr;
uint16_t tx_dc[4]; //ff802a(offset = 42)
uint16_t rx_dc[PHY_GAIN_STEP_MAX];
int8_t csi_snr[16];
int8_t csi_amp[16];
uint8_t spur;
uint8_t rx_band_filter[8];
uint8_t granite_bg;
uint32_t geode_bg;//ff8106(offset = 262)
uint8_t adc_cfg_dly;
uint8_t adc_f_h;
int32_t sadc_dc[4];
int32_t sadc_ref[4];
uint8_t sadc_ical_code;
uint8_t sadc_adcref_code;
uint8_t sadc_dcdc_code;
int16_t sadc_vtemp; //ff812f(offset = 303)
uint32_t sync_ok_cnt;
uint32_t fc_crc_ok_cnt;
uint32_t fc_crc_fail_cnt;
uint32_t pld_crc_ok_cnt;
uint32_t pld_crc_fail_cnt;
uint8_t version_wafer;
uint8_t version_reserve;
uint8_t flash_init_ret;//ff8147(offset = 327)
uint8_t flash_read_id;
uint8_t flash_reg_sts;
uint8_t flash_erase_ret;
uint8_t flash_write_ret;
uint8_t flash_read_ret;
uint8_t efuse_check_ret;
uint32_t flash_init_cost;
uint32_t flash_id_cost;
uint32_t flash_reg_cost;
uint32_t flash_erase_cost;
uint32_t flash_write_cost;
uint32_t flash_read_cost;
uint32_t ana_wdg_cost_cnt;
uint32_t flash_wdg_cost_cnt;
uint8_t flash_device_id;
uint32_t nf; //ff816f(offset = 367)
uint32_t rsv[4];
} ate_info_t;
typedef struct _ate_loop_back_gain_list {
int8_t tx_tone_att;
int8_t tx_factor;
uint8_t tx_pga_gain;
uint8_t rx_pgf_gain;
uint8_t rx_bq_gain;
uint8_t rx_pga_gain;
int8_t rx_gain_shift;
uint8_t rx_lna_gain;
} ate_loop_back_gain_list_t;
#pragma pack(pop) /* restore the pack status */
#endif // !__ATE_MAIN_H