@@ -127,6 +127,7 @@ struct prueth_rx_chn {
/* data for each emac port */
struct prueth_emac {
+ bool is_sr1;
bool fw_running;
struct prueth *prueth;
struct net_device *ndev;
@@ -155,6 +156,10 @@ struct prueth_emac {
int rx_flow_id_base;
int tx_ch_num;
+ /* SR1.0 Management channel */
+ struct prueth_rx_chn rx_mgm_chn;
+ int rx_mgm_flow_id_base;
+
spinlock_t lock; /* serialize access */
/* TX HW Timestamping */
@@ -182,10 +187,12 @@ struct prueth_emac {
* struct prueth_pdata - PRUeth platform data
* @fdqring_mode: Free desc queue mode
* @quirk_10m_link_issue: 10M link detect errata
+ * @is_sr1: device is SR1.0
*/
struct prueth_pdata {
enum k3_ring_mode fdqring_mode;
u32 quirk_10m_link_issue:1;
+ u32 is_sr1:1;
};
/**
@@ -224,6 +231,7 @@ struct prueth {
struct device_node *eth_node[PRUETH_NUM_MACS];
struct prueth_emac *emac[PRUETH_NUM_MACS];
struct net_device *registered_netdevs[PRUETH_NUM_MACS];
+ struct icssg_config_sr1 config[PRUSS_NUM_PRUS];
struct regmap *miig_rt;
struct regmap *mii_rt;
@@ -236,6 +244,13 @@ struct prueth {
struct icss_iep *iep1;
};
+struct emac_tx_ts_response_sr1 {
+ u32 lo_ts;
+ u32 hi_ts;
+ u32 reserved;
+ u32 cookie;
+};
+
struct emac_tx_ts_response {
u32 reserved[2];
u32 cookie;