16 #include "hpm_enet_regs.h"
17 #include "hpm_soc_feature.h"
18 #include "hpm_enet_soc_drv.h"
31 #define ENET_HEADER (14U)
32 #define ENET_VLAN_TAG (4U)
34 #define ENET_MIN_PAYLOAD (46U)
35 #define ENET_MAX_PAYLOAD (1500U)
36 #define ENET_MAX_FRAME_SIZE (1526U)
37 #define ENET_JUMBO_FRAME_PAYLOAD (9000U)
39 #define ENET_ERROR (0)
40 #define ENET_SUCCESS (1)
42 #define ENET_ADJ_FREQ_BASE_ADDEND (0x80000000UL)
43 #define ENET_ONE_SEC_IN_NANOSEC (1000000000UL)
45 #define ENET_PPS_CMD_MASK (0x07UL)
46 #define ENET_PPS_CMD_OFS_FAC (3U)
48 #ifndef ENET_RETRY_CNT
49 #define ENET_RETRY_CNT (10000UL)
52 #ifndef ENET_RETRY_DMA_INIT_CNT
53 #define ENET_RETRY_DMA_INIT_CNT (10000000UL)
56 #define ENET_MAX_BUFF_SIZE ((ENET_MAX_FRAME_SIZE + (ENET_SOC_DMA_BUS_WIDTH_IN_BYTES - 1)) & ~(ENET_SOC_DMA_BUS_WIDTH_IN_BYTES - 1))
343 #if ENET_SOC_ALT_EHD_DES_LEN == ENET_SOC_ALT_EHD_DES_MAX_LEN
418 #if ENET_SOC_ALT_EHD_DES_LEN == ENET_SOC_ALT_EHD_DES_MAX_LEN
432 uint32_t reserved0 : 1;
436 uint32_t reserved1 : 3;
557 #define ENET_DMATxDesc_TBS2 ((uint32_t)0x1FFF0000)
558 #define ENET_DMATxDesc_TBS1 ((uint32_t)0x00001FFF)
560 #if defined __cplusplus
751 uint16_t frame_length, uint16_t tx_buff_size,
939 #if defined __cplusplus
#define ENET_SOC_ADDR_MAX_COUNT
Definition: hpm_soc_feature.h:117
#define ENET_DMA_INTR_EN_AIE_MASK
Definition: hpm_enet_regs.h:5609
#define ENET_INTR_MASK_RGSMIIIM_MASK
Definition: hpm_enet_regs.h:1416
#define ENET_DMA_INTR_EN_RIE_MASK
Definition: hpm_enet_regs.h:5686
#define ENET_TS_CTRL_ATSEN3_MASK
Definition: hpm_enet_regs.h:3867
#define ENET_DMA_INTR_EN_TIE_MASK
Definition: hpm_enet_regs.h:5752
#define ENET_TS_CTRL_ATSEN2_MASK
Definition: hpm_enet_regs.h:3879
#define ENET_INTR_MASK_LPIIM_MASK
Definition: hpm_enet_regs.h:1361
#define ENET_DMA_INTR_EN_NIE_MASK
Definition: hpm_enet_regs.h:5587
#define ENET_TS_CTRL_ATSEN0_MASK
Definition: hpm_enet_regs.h:3902
#define ENET_TS_CTRL_ATSEN1_MASK
Definition: hpm_enet_regs.h:3891
uint32_t hpm_stat_t
Definition: hpm_common.h:126
void enet_set_duplex_mode(ENET_Type *ptr, enet_duplex_mode_t mode)
Set duplex mode.
Definition: hpm_enet_drv.c:241
void enet_dma_rx_desc_chain_init(ENET_Type *ptr, enet_desc_t *desc)
Initialize DMA reception descriptors in chain mode.
Definition: hpm_enet_drv.c:748
enet_pbl_t
Programmable burst length selections.
Definition: hpm_enet_drv.h:78
enet_csr_clk_range_t
CSR clock range and MDC clock selections.
Definition: hpm_enet_drv.h:141
void enet_get_default_interrupt_config(ENET_Type *ptr, enet_int_config_t *config)
Get a default interrupt config.
Definition: hpm_enet_drv.c:422
void enet_set_pps0_control_output(ENET_Type *ptr, enet_pps_ctrl_t freq)
Set the pps0 control output.
Definition: hpm_enet_drv.c:906
enet_inf_type_t
enet interface selections
Definition: hpm_enet_drv.h:160
uint32_t enet_get_mmc_tx_interrupt_status(ENET_Type *ptr)
et a staus of mmc transmission interrupt events
Definition: hpm_enet_drv.c:187
enet_frame_t enet_get_received_frame_interrupt(enet_rx_desc_t **parent_rx_desc_list_cur, enet_rx_frame_info_t *rx_frame_info, uint32_t rx_desc_count)
get a received frame from interrupt
Definition: hpm_enet_drv.c:345
void enet_set_ptp_timestamp(ENET_Type *ptr, enet_ptp_ts_update_t *timestamp)
Set a timestamp to the PTP timer.
Definition: hpm_enet_drv.c:795
enet_ptp_time_update_method_t
enet timestamp update methods
Definition: hpm_enet_drv.h:180
void enet_adjust_ptp_time_freq(ENET_Type *ptr, int32_t adj)
Adjust the count frequency of the PTP timer.
Definition: hpm_enet_drv.c:827
enet_ts_rollover_control_t
PTP timer rollover modes.
Definition: hpm_enet_drv.h:211
enet_saic_insertion_replacement_control_t
SA insertion or replacement control selections for any selective frames.
Definition: hpm_enet_drv.h:104
void enet_unmask_interrupt_event(ENET_Type *ptr, uint32_t mask)
Unmask ENET interrupt events.
Definition: hpm_enet_drv.c:167
enet_ts_ss_ptp_msg_t
PTP message type for snapshots.
Definition: hpm_enet_drv.h:199
enet_pps_ctrl_t
PPS0 control for output frequency selections.
Definition: hpm_enet_drv.h:233
hpm_stat_t enet_enable_ptp_frame_type(ENET_Type *ptr, enet_ptp_frame_type_t ptp_frame_type, bool enable)
Enable the specified ptp frame type for MAC process.
Definition: hpm_enet_drv.c:844
void enet_get_ptp_auxi_timestamp(ENET_Type *ptr, enet_ptp_ts_auxi_snapshot_t *timestamp)
Get PTP auxiliary timestamp.
Definition: hpm_enet_drv.c:999
void enet_get_ptp_auxi_snapshot_status(ENET_Type *ptr, enet_ptp_auxi_snapshot_status_t *status)
Get PTP Auxiliary Snapshot Status.
Definition: hpm_enet_drv.c:990
uint32_t enet_get_interrupt_status(ENET_Type *ptr)
Get interrupt status.
Definition: hpm_enet_drv.c:157
uint32_t enet_prepare_tx_desc(ENET_Type *ptr, enet_tx_desc_t **parent_tx_desc_list_cur, enet_tx_control_config_t *config, uint16_t frame_length, uint16_t tx_buff_size)
prepare for the transmission descriptors
Definition: hpm_enet_drv.c:555
uint32_t enet_prepare_tx_desc_with_ts_record(ENET_Type *ptr, enet_tx_desc_t **parent_tx_desc_list_cur, enet_tx_control_config_t *config, uint16_t frame_length, uint16_t tx_buff_size, enet_ptp_ts_system_t *timestamp)
prepare for the transmission descriptors with a timestamp record
Definition: hpm_enet_drv.c:436
void enet_set_snapshot_ptp_message_type(ENET_Type *ptr, enet_ts_ss_ptp_msg_t ts_ss_ptp_msg)
Set the ptp message type for snapshots.
Definition: hpm_enet_drv.c:864
void enet_disable_ptp_auxiliary_snapshot(ENET_Type *ptr, enet_ptp_auxi_snapshot_trigger_idx_t idx)
Enable PTP auxiliary snapshot.
Definition: hpm_enet_drv.c:985
uint16_t enet_read_phy(ENET_Type *ptr, uint32_t phy_addr, uint32_t addr)
Read phy.
Definition: hpm_enet_drv.c:218
hpm_stat_t enet_controller_init(ENET_Type *ptr, enet_inf_type_t inf_type, enet_desc_t *desc, enet_mac_config_t *cfg, enet_int_config_t *int_config)
Initialize controller.
Definition: hpm_enet_drv.c:247
enet_ptp_frame_type_t
PTP frame types.
Definition: hpm_enet_drv.h:192
hpm_stat_t enet_set_ppsx_config(ENET_Type *ptr, enet_pps_cmd_config_t *cmd_cfg, enet_pps_idx_t idx)
Set a pps config for ppsx.
Definition: hpm_enet_drv.c:929
void enet_get_default_tx_control_config(ENET_Type *ptr, enet_tx_control_config_t *config)
Get a default control config for tranmission.
Definition: hpm_enet_drv.c:409
void enet_dma_flush(ENET_Type *ptr)
Flush DMA.
Definition: hpm_enet_drv.c:192
enet_frame_t enet_get_received_frame(enet_rx_desc_t **parent_rx_desc_list_cur, enet_rx_frame_info_t *rx_frame_info)
get a received frame
Definition: hpm_enet_drv.c:322
enet_ptp_auxi_snapshot_trigger_idx_t
ptp auxiliary snapshot trigger indexes
Definition: hpm_enet_drv.h:225
enet_pps_idx_t
PPS indexes.
Definition: hpm_enet_drv.h:217
enet_ptp_version_t
PTP versions.
Definition: hpm_enet_drv.h:186
void enet_mask_mmc_rx_interrupt_event(ENET_Type *ptr, uint32_t mask)
Mask the specified mmc interrupt evenets of received frames.
Definition: hpm_enet_drv.c:172
void enet_set_line_speed(ENET_Type *ptr, enet_line_speed_t speed)
Set port line speed.
Definition: hpm_enet_drv.c:235
enet_pps_cmd_t
PPS0 commands.
Definition: hpm_enet_drv.h:253
void enet_mask_interrupt_event(ENET_Type *ptr, uint32_t mask)
Mask Ethernet interrupt events.
Definition: hpm_enet_drv.c:162
void enet_enable_ptp_auxiliary_snapshot(ENET_Type *ptr, enet_ptp_auxi_snapshot_trigger_idx_t idx)
Disable PTP auxiliary snapshot.
Definition: hpm_enet_drv.c:975
enet_phy_op_t
PHY operation selections.
Definition: hpm_enet_drv.h:122
enet_sarc_insertion_replacement_control_t
SA insertion or replacement control selections for all transmit frames.
Definition: hpm_enet_drv.h:113
enet_gmii_status_t
PHY status.
Definition: hpm_enet_drv.h:129
void enet_write_phy(ENET_Type *ptr, uint32_t phy_addr, uint32_t addr, uint32_t data)
Write phy.
Definition: hpm_enet_drv.c:201
void enet_mask_mmc_tx_interrupt_event(ENET_Type *ptr, uint32_t mask)
Mask the specified mmc interrupt evenets of transmitted frames.
Definition: hpm_enet_drv.c:182
void enet_set_ptp_version(ENET_Type *ptr, enet_ptp_version_t ptp_ver)
Set the PTP version.
Definition: hpm_enet_drv.c:838
enet_interrupt_mask_t
interrupt mask type
Definition: hpm_enet_drv.h:71
enet_duplex_mode_t
enet duplex mode
Definition: hpm_enet_drv.h:174
uint32_t enet_check_received_frame(enet_rx_desc_t **parent_rx_desc_list_cur, enet_rx_frame_info_t *rx_frame_info)
Check if there is a received frame.
Definition: hpm_enet_drv.c:285
hpm_stat_t enet_set_ppsx_command(ENET_Type *ptr, enet_pps_cmd_t cmd, enet_pps_idx_t idx)
Set a pps command for ppsx.
Definition: hpm_enet_drv.c:912
enet_vlan_insertion_control_t
VLAN insertion control selections.
Definition: hpm_enet_drv.h:96
void enet_get_ptp_timestamp(ENET_Type *ptr, enet_ptp_ts_system_t *timestamp)
Get a timestamp from the PTP timer.
Definition: hpm_enet_drv.c:806
uint32_t enet_get_mmc_rx_interrupt_status(ENET_Type *ptr)
Get a staus of mmc receive interrupt events.
Definition: hpm_enet_drv.c:177
enet_line_speed_t
enet line speed
Definition: hpm_enet_drv.h:167
enet_cic_insertion_control_t
Checksum insertion control selections.
Definition: hpm_enet_drv.h:88
void enet_dma_tx_desc_chain_init(ENET_Type *ptr, enet_desc_t *desc)
Initialize DMA transmission descriptors in chain mode.
Definition: hpm_enet_drv.c:714
void enet_init_ptp(ENET_Type *ptr, enet_ptp_config_t *config)
Initialize a PTP timer.
Definition: hpm_enet_drv.c:873
void enet_update_ptp_timeoffset(ENET_Type *ptr, enet_ptp_ts_update_t *timeoffset)
Update a timestamp to the PTP timer.
Definition: hpm_enet_drv.c:812
enet_interrupt_enable_t
interrupt enable type
Definition: hpm_enet_drv.h:63
uint32_t enet_prepare_transmission_descriptors(ENET_Type *ptr, enet_tx_desc_t **parent_tx_desc_list_cur, uint16_t frame_length, uint16_t tx_buff_size)
prepare for the transmission descriptors (It will be deprecated.)
Definition: hpm_enet_drv.c:638
void enet_rx_resume(ENET_Type *ptr)
Resume reception process.
Definition: hpm_enet_drv.c:277
@ enet_pbl_4
Definition: hpm_enet_drv.h:81
@ enet_pbl_32
Definition: hpm_enet_drv.h:84
@ enet_pbl_16
Definition: hpm_enet_drv.h:83
@ enet_pbl_1
Definition: hpm_enet_drv.h:79
@ enet_pbl_2
Definition: hpm_enet_drv.h:80
@ enet_pbl_8
Definition: hpm_enet_drv.h:82
@ enet_csr_60m_to_100m_mdc_csr_div_18
Definition: hpm_enet_drv.h:156
@ enet_csr_250m_to_300m_mdc_csr_div_124
Definition: hpm_enet_drv.h:147
@ enet_csr_60m_to_100m_mdc_csr_div_42
Definition: hpm_enet_drv.h:142
@ enet_csr_60m_to_100m_mdc_csr_div_14
Definition: hpm_enet_drv.h:154
@ enet_csr_60m_to_100m_mdc_csr_div_12
Definition: hpm_enet_drv.h:153
@ enet_csr_100m_to_150m_mdc_csr_div_62
Definition: hpm_enet_drv.h:143
@ enet_csr_60m_to_100m_mdc_csr_div_16
Definition: hpm_enet_drv.h:155
@ enet_csr_60m_to_100m_mdc_csr_div_4
Definition: hpm_enet_drv.h:149
@ enet_csr_60m_to_100m_mdc_csr_div_6
Definition: hpm_enet_drv.h:150
@ enet_csr_60m_to_100m_mdc_csr_div_10
Definition: hpm_enet_drv.h:152
@ enet_csr_150m_to_250m_mdc_csr_div_102
Definition: hpm_enet_drv.h:146
@ enet_csr_20m_to_35m_mdc_csr_div_16
Definition: hpm_enet_drv.h:144
@ enet_csr_35m_to_60m_mdc_csr_div_26
Definition: hpm_enet_drv.h:145
@ enet_csr_60m_to_100m_mdc_csr_div_8
Definition: hpm_enet_drv.h:151
@ enet_inf_rgmii
Definition: hpm_enet_drv.h:163
@ enet_inf_mii
Definition: hpm_enet_drv.h:161
@ enet_inf_rmii
Definition: hpm_enet_drv.h:162
@ enet_ptp_time_fine_update
Definition: hpm_enet_drv.h:182
@ enet_ptp_time_coarse_update
Definition: hpm_enet_drv.h:181
@ enet_ts_dig_rollover_control
Definition: hpm_enet_drv.h:213
@ enet_ts_bin_rollover_control
Definition: hpm_enet_drv.h:212
@ enet_saic_insert_mac0
Definition: hpm_enet_drv.h:106
@ enet_saic_replace_mac1
Definition: hpm_enet_drv.h:109
@ enet_saic_disable
Definition: hpm_enet_drv.h:105
@ enet_saic_insert_mac1
Definition: hpm_enet_drv.h:108
@ enet_saic_replace_mac0
Definition: hpm_enet_drv.h:107
@ enet_ts_ss_ptp_msg_2
Definition: hpm_enet_drv.h:202
@ enet_ts_ss_ptp_msg_6
Definition: hpm_enet_drv.h:206
@ enet_ts_ss_ptp_msg_7
Definition: hpm_enet_drv.h:207
@ enet_ts_ss_ptp_msg_3
Definition: hpm_enet_drv.h:203
@ enet_ts_ss_ptp_msg_5
Definition: hpm_enet_drv.h:205
@ enet_ts_ss_ptp_msg_0
Definition: hpm_enet_drv.h:200
@ enet_ts_ss_ptp_msg_4
Definition: hpm_enet_drv.h:204
@ enet_ts_ss_ptp_msg_1
Definition: hpm_enet_drv.h:201
@ enet_pps_ctrl_bin_4hz_digital_2hz
Definition: hpm_enet_drv.h:236
@ enet_pps_ctrl_bin_2hz_digital_1hz
Definition: hpm_enet_drv.h:235
@ enet_pps_ctrl_bin_8192hz_digital_4096hz
Definition: hpm_enet_drv.h:247
@ enet_pps_ctrl_bin_32768hz_digital_16384hz
Definition: hpm_enet_drv.h:249
@ enet_pps_ctrl_bin_32hz_digital_16hz
Definition: hpm_enet_drv.h:239
@ enet_pps_ctrl_bin_256hz_digital_128hz
Definition: hpm_enet_drv.h:242
@ enet_pps_ctrl_bin_16hz_digital_8hz
Definition: hpm_enet_drv.h:238
@ enet_pps_ctrl_bin_8hz_digital_4hz
Definition: hpm_enet_drv.h:237
@ enet_pps_ctrl_bin_2048hz_digital_1024hz
Definition: hpm_enet_drv.h:245
@ enet_pps_ctrl_pps
Definition: hpm_enet_drv.h:234
@ enet_pps_ctrl_bin_4096hz_digital_2048hz
Definition: hpm_enet_drv.h:246
@ enet_pps_ctrl_bin_512hz_digital_256hz
Definition: hpm_enet_drv.h:243
@ enet_pps_ctrl_bin_16384hz_digital_8192hz
Definition: hpm_enet_drv.h:248
@ enet_pps_ctrl_bin_64hz_digital_32hz
Definition: hpm_enet_drv.h:240
@ enet_pps_ctrl_bin_1024hz_digital_512hz
Definition: hpm_enet_drv.h:244
@ enet_pps_ctrl_bin_128hz_digital_64hz
Definition: hpm_enet_drv.h:241
@ enet_ptp_frame_ipv6
Definition: hpm_enet_drv.h:194
@ enet_ptp_frame_ethernet
Definition: hpm_enet_drv.h:195
@ enet_ptp_frame_ipv4
Definition: hpm_enet_drv.h:193
@ enet_ptp_auxi_snapshot_trigger_2
Definition: hpm_enet_drv.h:228
@ enet_ptp_auxi_snapshot_trigger_1
Definition: hpm_enet_drv.h:227
@ enet_ptp_auxi_snapshot_trigger_3
Definition: hpm_enet_drv.h:229
@ enet_ptp_auxi_snapshot_trigger_0
Definition: hpm_enet_drv.h:226
@ enet_pps_1
Definition: hpm_enet_drv.h:219
@ enet_pps_2
Definition: hpm_enet_drv.h:220
@ enet_pps_3
Definition: hpm_enet_drv.h:221
@ enet_pps_0
Definition: hpm_enet_drv.h:218
@ enet_ptp_v2
Definition: hpm_enet_drv.h:188
@ enet_ptp_v1
Definition: hpm_enet_drv.h:187
@ enet_pps_cmd_stop_pulse_train_at_time
Definition: hpm_enet_drv.h:258
@ enet_pps_cmd_cancel_stop_pulse_train
Definition: hpm_enet_drv.h:260
@ enet_pps_cmd_start_single_pulse
Definition: hpm_enet_drv.h:255
@ enet_pps_cmd_no_command
Definition: hpm_enet_drv.h:254
@ enet_pps_cmd_start_pulse_train
Definition: hpm_enet_drv.h:256
@ enet_pps_cmd_stop_pulse_train_immediately
Definition: hpm_enet_drv.h:259
@ enet_pps_cmd_cancel_start
Definition: hpm_enet_drv.h:257
@ enet_phy_op_write
Definition: hpm_enet_drv.h:124
@ enet_phy_op_read
Definition: hpm_enet_drv.h:123
@ enet_sarc_disable
Definition: hpm_enet_drv.h:114
@ enet_sarc_insert_mac0
Definition: hpm_enet_drv.h:115
@ enet_sarc_insert_mac1
Definition: hpm_enet_drv.h:117
@ enet_sarc_replace_mac0
Definition: hpm_enet_drv.h:116
@ enet_sarc_replace_mac1
Definition: hpm_enet_drv.h:118
@ enet_gmii_idle
Definition: hpm_enet_drv.h:130
@ enet_gmii_busy
Definition: hpm_enet_drv.h:131
@ enet_rgsmii_int_mask
Definition: hpm_enet_drv.h:73
@ enet_lpi_int_mask
Definition: hpm_enet_drv.h:72
@ enet_full_duplex
Definition: hpm_enet_drv.h:176
@ enet_half_duplex
Definition: hpm_enet_drv.h:175
@ enet_vlic_disable
Definition: hpm_enet_drv.h:97
@ enet_vlic_insert_vlan_tag
Definition: hpm_enet_drv.h:99
@ enet_vlic_replace_vlan_tag
Definition: hpm_enet_drv.h:100
@ enet_vlic_remove_vlan_tag
Definition: hpm_enet_drv.h:98
@ enet_line_speed_1000mbps
Definition: hpm_enet_drv.h:168
@ enet_line_speed_10mbps
Definition: hpm_enet_drv.h:169
@ enet_line_speed_100mbps
Definition: hpm_enet_drv.h:170
@ enet_cic_disable
Definition: hpm_enet_drv.h:89
@ enet_cic_ip
Definition: hpm_enet_drv.h:90
@ enet_cic_ip_no_pseudoheader
Definition: hpm_enet_drv.h:91
@ enet_cic_ip_pseudoheader
Definition: hpm_enet_drv.h:92
@ enet_transmit_int_en
Definition: hpm_enet_drv.h:67
@ enet_normal_int_sum_en
Definition: hpm_enet_drv.h:64
@ enet_receive_int_en
Definition: hpm_enet_drv.h:66
@ enet_aboarmal_int_sum_en
Definition: hpm_enet_drv.h:65
Definition: hpm_enet_regs.h:12
enet buffer config struct
Definition: hpm_enet_drv.h:268
uint16_t size
Definition: hpm_enet_drv.h:271
uint32_t count
Definition: hpm_enet_drv.h:270
uint32_t buffer
Definition: hpm_enet_drv.h:269
enet description struct
Definition: hpm_enet_drv.h:485
enet_buff_config_t tx_buff_cfg
Definition: hpm_enet_drv.h:490
enet_tx_desc_t * tx_desc_list_head
Definition: hpm_enet_drv.h:486
enet_tx_control_config_t tx_control_config
Definition: hpm_enet_drv.h:493
enet_buff_config_t rx_buff_cfg
Definition: hpm_enet_drv.h:491
enet_rx_frame_info_t rx_frame_info
Definition: hpm_enet_drv.h:492
enet_tx_desc_t * tx_desc_list_cur
Definition: hpm_enet_drv.h:488
enet_rx_desc_t * rx_desc_list_head
Definition: hpm_enet_drv.h:487
enet_rx_desc_t * rx_desc_list_cur
Definition: hpm_enet_drv.h:489
enet frame struct
Definition: hpm_enet_drv.h:459
uint32_t length
Definition: hpm_enet_drv.h:460
enet_rx_desc_t * rx_desc
Definition: hpm_enet_drv.h:462
uint32_t buffer
Definition: hpm_enet_drv.h:461
Enet interrupt config struct.
Definition: hpm_enet_drv.h:545
uint32_t mmc_intr_mask_tx
Definition: hpm_enet_drv.h:551
uint32_t int_mask
Definition: hpm_enet_drv.h:547
uint32_t mmc_intr_mask_rx
Definition: hpm_enet_drv.h:549
uint32_t mmc_intr_tx
Definition: hpm_enet_drv.h:550
uint32_t mmc_intr_rx
Definition: hpm_enet_drv.h:548
uint32_t int_enable
Definition: hpm_enet_drv.h:546
enet mac config struct
Definition: hpm_enet_drv.h:275
uint8_t valid_max_count
Definition: hpm_enet_drv.h:278
uint8_t sarc
Definition: hpm_enet_drv.h:280
uint8_t dma_pbl
Definition: hpm_enet_drv.h:279
PTP PPS command output config strcut.
Definition: hpm_enet_drv.h:524
uint32_t target_nsec
Definition: hpm_enet_drv.h:528
uint32_t pps_width
Definition: hpm_enet_drv.h:526
uint32_t target_sec
Definition: hpm_enet_drv.h:527
uint32_t pps_interval
Definition: hpm_enet_drv.h:525
PTP auxiliary snapshot status struct.
Definition: hpm_enet_drv.h:538
uint8_t auxi_snapshot_count
Definition: hpm_enet_drv.h:540
bool auxi_snapshot_miss
Definition: hpm_enet_drv.h:539
uint8_t auxi_snapshot_id
Definition: hpm_enet_drv.h:541
PTP config strcut.
Definition: hpm_enet_drv.h:516
uint8_t timestamp_rollover_mode
Definition: hpm_enet_drv.h:518
uint8_t ssinc
Definition: hpm_enet_drv.h:517
uint32_t addend
Definition: hpm_enet_drv.h:520
uint8_t update_method
Definition: hpm_enet_drv.h:519
PTP auxiliary timestamp struct.
Definition: hpm_enet_drv.h:532
uint32_t nsec
Definition: hpm_enet_drv.h:534
uint32_t sec
Definition: hpm_enet_drv.h:533
PTP system timestamp struct.
Definition: hpm_enet_drv.h:497
uint32_t nsec
Definition: hpm_enet_drv.h:499
uint32_t sec
Definition: hpm_enet_drv.h:498
PTP target timestamp struct.
Definition: hpm_enet_drv.h:510
uint32_t nsec
Definition: hpm_enet_drv.h:512
uint32_t sec
Definition: hpm_enet_drv.h:511
PTP update timestamp struct.
Definition: hpm_enet_drv.h:503
uint32_t sec
Definition: hpm_enet_drv.h:504
uint32_t nsec
Definition: hpm_enet_drv.h:505
uint8_t sign
Definition: hpm_enet_drv.h:506
reception descriptor struct
Definition: hpm_enet_drv.h:363
uint32_t ip_payload_err
Definition: hpm_enet_drv.h:424
uint32_t rbs2
Definition: hpm_enet_drv.h:397
uint32_t dic
Definition: hpm_enet_drv.h:399
uint32_t fl
Definition: hpm_enet_drv.h:384
uint32_t rtsh
Definition: hpm_enet_drv.h:453
uint32_t ts_ip_gf
Definition: hpm_enet_drv.h:375
uint32_t dse
Definition: hpm_enet_drv.h:382
uint32_t ex_sta_rx_addr
Definition: hpm_enet_drv.h:368
uint32_t ipv6_pkt_received
Definition: hpm_enet_drv.h:427
uint32_t vlan_tag_pri_value
Definition: hpm_enet_drv.h:435
uint32_t dbe
Definition: hpm_enet_drv.h:370
uint32_t rdes4
Definition: hpm_enet_drv.h:420
uint32_t reserved2
Definition: hpm_enet_drv.h:440
uint32_t ls
Definition: hpm_enet_drv.h:376
uint32_t rdes0
Definition: hpm_enet_drv.h:365
uint32_t ft
Definition: hpm_enet_drv.h:373
uint32_t msg_type
Definition: hpm_enet_drv.h:428
uint32_t rwt
Definition: hpm_enet_drv.h:372
uint32_t vlan
Definition: hpm_enet_drv.h:378
uint32_t ip_header_err
Definition: hpm_enet_drv.h:423
uint32_t rer
Definition: hpm_enet_drv.h:396
uint32_t av_tagged_pkt_recv
Definition: hpm_enet_drv.h:434
uint32_t oe
Definition: hpm_enet_drv.h:379
uint32_t reserved0
Definition: hpm_enet_drv.h:394
uint32_t saf
Definition: hpm_enet_drv.h:381
uint32_t rdes3
Definition: hpm_enet_drv.h:411
uint32_t l3_fm
Definition: hpm_enet_drv.h:437
uint32_t ts_dp
Definition: hpm_enet_drv.h:431
uint32_t own
Definition: hpm_enet_drv.h:386
uint32_t lc
Definition: hpm_enet_drv.h:374
uint32_t rtsl
Definition: hpm_enet_drv.h:449
uint32_t l3_l4_fnl
Definition: hpm_enet_drv.h:439
uint32_t re
Definition: hpm_enet_drv.h:371
uint32_t ipv4_pkt_received
Definition: hpm_enet_drv.h:426
uint32_t rdes2
Definition: hpm_enet_drv.h:404
uint32_t reserved
Definition: hpm_enet_drv.h:445
uint32_t reserved1
Definition: hpm_enet_drv.h:398
uint32_t rdes1
Definition: hpm_enet_drv.h:391
uint32_t ip_chksum_bypassed
Definition: hpm_enet_drv.h:425
uint32_t rbs1
Definition: hpm_enet_drv.h:393
uint32_t rch
Definition: hpm_enet_drv.h:395
uint32_t buffer1
Definition: hpm_enet_drv.h:406
uint32_t l4_fm
Definition: hpm_enet_drv.h:438
uint32_t buffer2
Definition: hpm_enet_drv.h:413
uint32_t afm
Definition: hpm_enet_drv.h:385
uint32_t ip_payload_type
Definition: hpm_enet_drv.h:422
uint32_t es
Definition: hpm_enet_drv.h:383
uint32_t ptp_version
Definition: hpm_enet_drv.h:430
uint32_t ce
Definition: hpm_enet_drv.h:369
uint32_t next_desc
Definition: hpm_enet_drv.h:414
uint32_t le
Definition: hpm_enet_drv.h:380
uint32_t ptp_frame_type
Definition: hpm_enet_drv.h:429
uint32_t fs
Definition: hpm_enet_drv.h:377
uint32_t av_pkt_recv
Definition: hpm_enet_drv.h:433
enet reception frame info struct
Definition: hpm_enet_drv.h:466
uint32_t seg_count
Definition: hpm_enet_drv.h:469
enet_rx_desc_t * ls_rx_desc
Definition: hpm_enet_drv.h:468
enet_rx_desc_t * fs_rx_desc
Definition: hpm_enet_drv.h:467
enet control config struct for transmission
Definition: hpm_enet_drv.h:473
bool disable_crc
Definition: hpm_enet_drv.h:475
bool enable_crcr
Definition: hpm_enet_drv.h:478
bool enable_ioc
Definition: hpm_enet_drv.h:474
bool disable_pad
Definition: hpm_enet_drv.h:476
uint8_t saic
Definition: hpm_enet_drv.h:481
uint8_t vlic
Definition: hpm_enet_drv.h:480
bool enable_ttse
Definition: hpm_enet_drv.h:477
uint8_t cic
Definition: hpm_enet_drv.h:479
transmission descriptor struct
Definition: hpm_enet_drv.h:284
uint32_t reserved
Definition: hpm_enet_drv.h:322
uint32_t crcr
Definition: hpm_enet_drv.h:307
uint32_t cic
Definition: hpm_enet_drv.h:306
uint32_t db
Definition: hpm_enet_drv.h:288
uint32_t tbs2
Definition: hpm_enet_drv.h:323
uint32_t vlic
Definition: hpm_enet_drv.h:303
uint32_t ihe
Definition: hpm_enet_drv.h:301
uint32_t tbs1
Definition: hpm_enet_drv.h:321
uint32_t tch
Definition: hpm_enet_drv.h:304
uint32_t fs
Definition: hpm_enet_drv.h:311
uint32_t ff
Definition: hpm_enet_drv.h:298
uint32_t tdes2
Definition: hpm_enet_drv.h:329
uint32_t ed
Definition: hpm_enet_drv.h:290
uint32_t tdes1
Definition: hpm_enet_drv.h:319
uint32_t ec
Definition: hpm_enet_drv.h:293
uint32_t es
Definition: hpm_enet_drv.h:300
uint32_t lc
Definition: hpm_enet_drv.h:294
uint32_t nc
Definition: hpm_enet_drv.h:295
uint32_t dp
Definition: hpm_enet_drv.h:309
uint32_t ter
Definition: hpm_enet_drv.h:305
uint32_t dc
Definition: hpm_enet_drv.h:310
uint32_t next_desc
Definition: hpm_enet_drv.h:339
uint32_t ttss
Definition: hpm_enet_drv.h:302
uint32_t ls
Definition: hpm_enet_drv.h:312
uint32_t vf
Definition: hpm_enet_drv.h:292
uint32_t buffer1
Definition: hpm_enet_drv.h:331
uint32_t cc
Definition: hpm_enet_drv.h:291
uint32_t jt
Definition: hpm_enet_drv.h:299
uint32_t own
Definition: hpm_enet_drv.h:314
uint32_t tdes3
Definition: hpm_enet_drv.h:336
uint32_t ipe
Definition: hpm_enet_drv.h:297
uint32_t loc
Definition: hpm_enet_drv.h:296
uint32_t buffer2
Definition: hpm_enet_drv.h:338
uint32_t ttsh
Definition: hpm_enet_drv.h:357
uint32_t saic
Definition: hpm_enet_drv.h:324
uint32_t ic
Definition: hpm_enet_drv.h:313
uint32_t ttse
Definition: hpm_enet_drv.h:308
uint32_t tdes0
Definition: hpm_enet_drv.h:286
uint32_t ttsl
Definition: hpm_enet_drv.h:353
uint32_t uf
Definition: hpm_enet_drv.h:289