/*****************************************************************************/ /** * Description: Physical layer register definitions * * Author: Fan Hao * Date: 2021-11-16 00:08 * LastEditors: Fan Hao * LastEditTime: 2022-06-18 17:32 * Revisions: Rev 0.0 * History: * [2021-11-16]: Initial version. * [2022-06-18]: New branch for glink control purpose: * -Add poll modephysical layer will start Tx/Rx procedure * at specific time stamp. * * Copyright(c) 2021 Beijing Institute of Technology. * Lab of Communication and Networking * ******************************************************************************/ #ifndef PHY_REG_H_ #define PHY_REG_H_ /***************************** Include Files *********************************/ #include "../util/util.h" /***************** Macros (Inline Functions) Definitions *********************/ #define PhyRead(instPtr, addr) IO_In32(instPtr->phyCofig.baseAddr + addr) #define PhyWrite(instPtr, addr, value) IO_Out32(instPtr->phyCofig.baseAddr + addr, value) /************************** Constant Definitions *****************************/ /** * Register: PHY_MAIN_CTRL */ #define PHY_MAIN_CTRL 0X00000000U #define PHY_MAIN_CTRL_EN_SHIFT 0 #define PHY_MAIN_CTRL_EN_WIDTH 1 #define PHY_MAIN_CTRL_EN_MASK 0x00000001U #define PHY_MAIN_CTRL_MODE_SHIFT 8 #define PHY_MAIN_CTRL_MODE_WIDTH 8 #define PHY_MAIN_CTRL_MODE_MASK 0x0000FF00U #define PHY_MAIN_CTRL_EN_EN 0x00000001U #define PHY_MAIN_CTRL_EN_DSBL 0x00000000U #define PHY_MAIN_CTRL_MODE_NONE 0x00000000U #define PHY_MAIN_CTRL_MODE_LISTEN 0x00000100U #define PHY_MAIN_CTRL_MODE_SCHEDULE 0x00000200U #define PHY_MAIN_CTRL_MODE_PULL 0x00000300U /** * Register: TXRX_CTRL */ #define PHY_MODE_CTRL 0x00000004U #define PHY_MODE_CTRL_TOR_SHIFT 0 #define PHY_MODE_CTRL_TOR_WIDTH 8 #define PHY_MODE_CTRL_TOR_MASK 0x000000FFU #define PHY_MODE_CTRL_FRAME_SHIFT 8 #define PHY_MODE_CTRL_FRAME_WIDTH 8 #define PHY_MODE_CTRL_FRAME_MASK 0x0000FF00U #define PHY_MODE_CTRL_CRC_SHIFT 8 #define PHY_MODE_CTRL_CRC_WIDTH 16 #define PHY_MODE_CTRL_CRC_MASK 0x00FF0000U #define PHY_MODE_CTRL_TOR_SUSPEND 0x00000000U #define PHY_MODE_CTRL_TOR_TX 0x00000001U #define PHY_MODE_CTRL_TOR_RX 0x00000002U #define PHY_MODE_CTRL_FRAME_NONE 0x00000000U #define PHY_MODE_CTRL_FRAME_2KBPS_20MS 0x00000100U #define PHY_MODE_CTRL_FRAME_2KBPS_100MS 0x00000200U #define PHY_MODE_CTRL_FRAME_10KBPS_10MS 0x00000300U // Initial Scan Frame #define PHY_MODE_CTRL_FRAME_10KBPS_20MS 0x00000400U // Benchmark Frame #define PHY_MODE_CTRL_FRAME_40KBPS_20MS 0x00000500U #define PHY_MODE_CTRL_FRAME_40KBPS_10MS 0x00000600U #define PHY_MODE_CTRL_FRAME_200KBPS_5MS 0x00000700U // 2-Way ACQ Frame, Management Frame, Service Frame #define PHY_MODE_CTRL_FRAME_1M2BPS_5MS 0x00000800U // Bistatic Synthetic Aperture Radar Frame #define PHY_MODE_CTRL_CRC_EN 0x00010000U #define PHY_MODE_CTRL_CRC_DSBL 0x00000000U /** * Register: POLLTIME_L */ #define POLLTIME_L 0x00000008U #define POLLTIME_L_SHIFT 0 #define POLLTIME_L_WIDTH 32 #define POLLTIME_L_MASK 0xFFFFFFFFU /** * Register: POLLTIME_H */ #define POLLTIME_H 0x0000000CU #define POLLTIME_H_SHIFT 0 #define POLLTIME_H_WIDTH 32 #define POLLTIME_H_MASK 0xFFFFFFFFU /** * Register: TIMEOUT_L */ #define LISTENTIMEOUT_L 0x00000010U #define LISTENTIMEOUT_L_SHIFT 0 #define LISTENTIMEOUT_L_WIDTH 32 #define LISTENTIMEOUT_L_MASK 0xFFFFFFFFU /** * Register: TIMEOUT_H */ #define LISTENTIMEOUT_H 0x00000014U #define LISTENTIMEOUT_H_SHIFT 0 #define LISTENTIMEOUT_H_WIDTH 32 #define LISTENTIMEOUT_H_MASK 0xFFFFFFFFU /** * Register: ANT_CTRL */ #define ANT_CONFIG 0x00000018U #define ANT_CONFIG_OFFSET_SHIFT 0 #define ANT_CONFIG_OFFSET_WIDTH 16 #define ANT_CONFIG_OFFSET_MASK 0x0000FFFFU #define ANT_CONFIG_LEN_SHIFT 16 #define ANT_CONFIG_LEN_WIDTH 8 #define ANT_CONFIG_LEN_MASK 0x00FF0000U #define ANT_CONFIG_NUM_SHIFT 24 #define ANT_CONFIG_NUM_WIDTH 8 #define ANT_CONFIG_NUM_MASK 0xFF000000U /** * Register: SEND_DATA_CMD */ #define SEND_DATA_CMD 0x0000001CU #define SEND_DATA_CMD_SHIFT 0 #define SEND_DATA_CMD_WIDTH 32 #define SEND_DATA_CMD_MASK 0xFFFFFFFFU #define SEND_DATA_CMD_LEN_SHIFT 0 #define SEND_DATA_CMD_LEN_WIDTH 16 #define SEND_DATA_CMD_LEN_MASK 0x0000FFFFU #define SEND_DATA_CMD_OFFSET_SHIFT 16 #define SEND_DATA_CMD_OFFSET_WIDTH 16 #define SEND_DATA_CMD_OFFSET_MASK 0xFFFF0000U /** * Register: SLOT_CONFIG_CMD */ #define SLOT_CMD 0x00000020U #define SLOT_CMD_SHIFT 0 #define SLOT_CMD_WIDTH 32 #define SLOT_CMD_MASK 0xFFFFFFFFU #define SLOT_CMD_KEY 0x434D442EU /** * Register: TXRX_STATE */ #define TXRX_STATE 0x00000024U #define TXRX_STATE_ACQ_SHIFT 0 #define TXRX_STATE_ACQ_WIDTH 8 #define TXRX_STATE_ACQ_MASK 0x000000FFU #define TXRX_STATE_ACQ_SUCCESS 0x00000001U #define TXRX_STATE_ACQ_FAIL 0x00000002U #define TXRX_STATE_FSYNC_SHIFT 8 #define TXRX_STATE_FSYNC_WIDTH 8 #define TXRX_STATE_FSYNC_MASK 0x0000FF00U #define TXRX_STATE_FSYNC_SUCCESS 0x00000100U #define TXRX_STATE_FSYNC_FAIL 0x00000200U #define TXRX_STATE_DECODE_SHIFT 16 #define TXRX_STATE_DECODE_WIDTH 8 #define TXRX_STATE_DECODE_MASK 0x00FF0000U #define TXRX_STATE_DECODE_SUCCESS 0x00010000U #define TXRX_STATE_DECODE_FAIL 0x00020000U #define TXRX_STATE_CRC_SHIFT 24 #define TXRX_STATE_CRC_WIDTH 8 #define TXRX_STATE_CRC_MASK 0xFF000000U #define TXRX_STATE_CRC_OK 0x01000000U #define TXRX_STATE_CRC_ERROR 0x02000000U /** * Register: RECVDATA_STATE */ #define RECVDATA_STATE 0x00000028U #define RECVDATA_STATE_LEN_SHIFT 0 #define RECVDATA_STATE_LEN_WIDTH 16 #define RECVDATA_STATE_LEN_MASK 0x0000FFFFU #define RECVDATA_STATE_OFFSET_SHIFT 16 #define RECVDATA_STATE_OFFSET_WIDTH 16 #define RECVDATA_STATE_OFFSET_MASK 0xFFFF0000U /** * Register: FSTIME_L */ #define FSTIME_L 0x0000002CU #define FSTIME_L_SHIFT 0 #define FSTIME_L_WIDTH 32 #define FSTIME_L_MASK 0xFFFFFFFFU /** * Register: FSTIME_INT1 */ #define FSTIME_H 0x00000030U #define FSTIME_H_SHIFT 0 #define FSTIME_H_WIDTH 32 #define FSTIME_H_MASK 0xFFFFFFFFU /** * Register: TM_TARGET_L */ #define TM_TARGET_L 0x00000064U #define TM_TARGET_L_SHIFT 0 #define TM_TARGET_L_WIDTH 32 #define TM_TARGET_L_MASK 0xFFFFFFFFU /** * Register: TM_TARGET_H */ #define TM_TARGET_H 0x00000038U #define TM_TARGET_H_SHIFT 0 #define TM_TARGET_H_WIDTH 32 #define TM_TARGET_H_MASK 0xFFFFFFFFU /** * Register: COASEFREQEST */ #define COASE_FREQEST 0x0000003CU #define COASE_FREQEST_ACQ_SHIFT 0 #define COASE_FREQEST_ACQ_WIDTH 8 #define COASE_FREQEST_ACQ_MASK 0x000000FFU #define COASE_FREQEST_SYNC_SHIFT 8 #define COASE_FREQEST_SYNC_WIDTH 8 #define COASE_FREQEST_SYNC_MASK 0x0000FF00U #define COASE_TYPE_SHIFT 16 #define COASE_TYPE_WIDTH 8 #define COASE_TYPE_MASK 0x00FF0000U #define COASE_TYPE_2KBPS_20MS 0x00010000U #define COASE_TYPE_2KBPS_100MS 0x00020000U #define COASE_TYPE_10KBPS_10MS 0x00030000U #define COASE_TYPE_10KBPS_20MS 0x00040000U #define COASE_TYPE_40KBPS_20MS 0x00050000U #define COASE_TYPE_40KBPS_10MS 0x00060000U #define COASE_TYPE_200KBPS_5MS 0x00070000U #define COASE_TYPE_1M2BPS_5MS 0x00080000U /** * Register: FINE_FREQEST */ #define FINE_FREQEST 0x00000040U #define FINE_FREQEST_VAL_SHIFT 0 #define FINE_FREQEST_VAL_WIDTH 24 #define FINE_FREQEST_VAL_MASK 0x00FFFFFFU #define FINE_FREQEST_SIGN_SHIFT 24 #define FINE_FREQEST_SIGN_WIDTH 8 #define FINE_FREQEST_SIGN_MASK 0xFF000000U #define FINE_FREQEST_SIGN_POS 0x00000000U #define FINE_FREQEST_SIGN_NEG 0x01000000U /** * Register: BEAM_SELECT */ #define BEAM_SELECT_INDEX 0x00000044U #define BEAM_SELECT_INDEX_SHIFT 0 #define BEAM_SELECT_INDEX_WIDTH 32 #define BEAM_SELECT_INDEX_MASK 0xFFFFFFFFU /** * Register: BEAM_AXIS */ #define BEAM_AXIS 0x00000044U #define BEAM_AXIS_EL_SHIFT 0 #define BEAM_AXIS_EL_WIDTH 16 #define BEAM_AXIS_EL_MASK 0x0000FFFFU #define BEAM_AXIS_AZ_SHIFT 16 #define BEAM_AXIS_AZ_WIDTH 16 #define BEAM_AXIS_AZ_MASK 0xFFFF0000U // Reserved. #endif /* PHY_REG_H_ */