Commit b01a8ee9 authored by Grzegorz Daniluk's avatar Grzegorz Daniluk

pass NIC originated RTU decisions through RTU module

parent ac150620
......@@ -150,8 +150,8 @@ entity xwrsw_rtu_new is
req_i : in t_rtu_request_array(g_num_ports-1 downto 0);
req_full_o : out std_logic_vector(g_num_ports-1 downto 0);
rsp_o : out t_rtu_response_array(g_num_ports-1 downto 0);
rsp_ack_i : in std_logic_vector(g_num_ports-1 downto 0);
rsp_o : out t_rtu_response_array(g_num_ports downto 0);
rsp_ack_i : in std_logic_vector(g_num_ports downto 0);
rq_abort_i : in std_logic_vector(g_num_ports-1 downto 0);
rsp_abort_i : in std_logic_vector(g_num_ports-1 downto 0);
tru_req_o : out t_tru_request;
......@@ -160,6 +160,10 @@ entity xwrsw_rtu_new is
tru_enabled_i: in std_logic;
links_up_i : in std_logic_vector(g_port_mask_bits-1 downto 0);
rmon_events_o : out std_logic_vector(g_num_ports*g_rmon_events_bits_pp-1 downto 0);
aux_rsp_i : in t_rtu_response;
aux_rsp_ack_o : out std_logic;
wb_i : in t_wishbone_slave_in;
wb_o : out t_wishbone_slave_out;
int_o : out std_logic
......@@ -864,6 +868,18 @@ begin
end process;
end generate fw_gen;
------------------------------------------------------------
-- Port mirroring handling for NIC/CPU-originated traffic --
------------------------------------------------------------
-- 1. If a given port is in dst mask, all NIC traffic to this port is
-- suppressed
-- 2. If a given port is in dsk mask, all NIC traffic originated from ports in
-- egress mask goes also to this port.
rsp_o(g_num_ports) <= aux_rsp_i;
aux_rsp_ack_o <= rsp_ack_i(g_num_ports);
------------------------------------------------------------
-- CS_ICON : chipscope_icon
-- port map (
-- CONTROL0 => CONTROL0);
......
......@@ -438,6 +438,9 @@ architecture rtl of scb_top_bare is
signal ep_dbg_tx_pcs_wr_array : t_ep_dbg_tx_pcs_array(g_num_ports-1 downto 0);
signal ep_dbg_tx_pcs_rd_array : t_ep_dbg_tx_pcs_array(g_num_ports-1 downto 0);
signal dbg_chps_id : std_logic_vector(7 downto 0);
signal nic_rtu_rsp : t_rtu_response;
signal nic_rtu_ack : std_logic;
begin
......@@ -681,17 +684,17 @@ begin
snk_o => endpoint_snk_out(c_NUM_PORTS),
src_i => endpoint_src_in(c_NUM_PORTS),
src_o => endpoint_src_out(c_NUM_PORTS),
rtu_dst_port_mask_o => rtu_rsp(c_NUM_PORTS).port_mask(c_NUM_PORTS downto 0),
rtu_prio_o => rtu_rsp(c_NUM_PORTS).prio,
rtu_drop_o => rtu_rsp(c_NUM_PORTS).drop,
rtu_rsp_valid_o => rtu_rsp(c_NUM_PORTS).valid,
rtu_rsp_ack_i => rtu_rsp_ack(c_NUM_PORTS),
rtu_dst_port_mask_o => nic_rtu_rsp.port_mask(c_NUM_PORTS downto 0),
rtu_prio_o => nic_rtu_rsp.prio,
rtu_drop_o => nic_rtu_rsp.drop,
rtu_rsp_valid_o => nic_rtu_rsp.valid,
rtu_rsp_ack_i => nic_rtu_ack,
wb_i => cnx_master_out(c_SLAVE_NIC),
wb_o => cnx_master_in(c_SLAVE_NIC),
int_o => nic_irq,
rmon_events_o => nic_events);
rtu_rsp(c_NUM_PORTS).hp <= '0';
nic_rtu_rsp.hp <= '0';
fc_rx_pause(c_NUM_PORTS) <= c_zero_pause; -- no pause for NIC
ep_links_up(c_NUM_PORTS) <= '1'; --for RTU responses NIC is always up
......@@ -951,8 +954,8 @@ begin
rst_n_i => rst_n_sys,--rst_n_periph,
req_i => rtu_req(g_num_ports-1 downto 0),
req_full_o => rtu_full(g_num_ports-1 downto 0),
rsp_o => rtu_rsp(g_num_ports-1 downto 0),
rsp_ack_i => rtu_rsp_ack(g_num_ports-1 downto 0),
rsp_o => rtu_rsp(g_num_ports downto 0),
rsp_ack_i => rtu_rsp_ack(g_num_ports downto 0),
rsp_abort_i=> rtu_rsp_abort(g_num_ports-1 downto 0), -- this is request from response receiving node
rq_abort_i => rtu_rq_abort(g_num_ports-1 downto 0), -- this is request from requesting module
links_up_i => ep_links_up,
......@@ -963,6 +966,8 @@ begin
tru_enabled_i => tru_enabled,
-------------------------------
rmon_events_o => rtu_events,
aux_rsp_i => nic_rtu_rsp,
aux_rsp_ack_o => nic_rtu_ack,
wb_i => cnx_master_out(c_SLAVE_RTU),
wb_o => cnx_master_in(c_SLAVE_RTU),
int_o => rtu_irq);
......
......@@ -356,8 +356,8 @@ package wrsw_components_pkg is
rst_n_i : in std_logic;
req_i : in t_rtu_request_array(g_num_ports-1 downto 0);
req_full_o : out std_logic_vector(g_num_ports-1 downto 0);
rsp_o : out t_rtu_response_array(g_num_ports-1 downto 0);
rsp_ack_i : in std_logic_vector(g_num_ports-1 downto 0);
rsp_o : out t_rtu_response_array(g_num_ports downto 0);
rsp_ack_i : in std_logic_vector(g_num_ports downto 0);
rq_abort_i : in std_logic_vector(g_num_ports-1 downto 0);
rsp_abort_i : in std_logic_vector(g_num_ports-1 downto 0);
tru_req_o : out t_tru_request;
......@@ -366,6 +366,8 @@ package wrsw_components_pkg is
tru_enabled_i: in std_logic;
links_up_i : in std_logic_vector(g_port_mask_bits-1 downto 0);
rmon_events_o : out std_logic_vector(g_num_ports*g_rmon_events_bits_pp-1 downto 0);
aux_rsp_i : in t_rtu_response;
aux_rsp_ack_o : out std_logic;
wb_i : in t_wishbone_slave_in;
wb_o : out t_wishbone_slave_out;
int_o : out std_logic
......
......@@ -414,8 +414,8 @@ package wrsw_top_pkg is
rst_n_i : in std_logic;
req_i : in t_rtu_request_array(g_num_ports-1 downto 0);
req_full_o : out std_logic_vector(g_num_ports-1 downto 0);
rsp_o : out t_rtu_response_array(g_num_ports-1 downto 0);
rsp_ack_i : in std_logic_vector(g_num_ports-1 downto 0);
rsp_o : out t_rtu_response_array(g_num_ports downto 0);
rsp_ack_i : in std_logic_vector(g_num_ports downto 0);
rq_abort_i : in std_logic_vector(g_num_ports-1 downto 0);
rsp_abort_i : in std_logic_vector(g_num_ports-1 downto 0);
tru_req_o : out t_tru_request;
......@@ -424,6 +424,8 @@ package wrsw_top_pkg is
tru_enabled_i: in std_logic;
links_up_i : in std_logic_vector(g_port_mask_bits-1 downto 0);
rmon_events_o : out std_logic_vector(g_num_ports*g_rmon_events_bits_pp-1 downto 0);
aux_rsp_i : in t_rtu_response;
aux_rsp_ack_o : out std_logic;
wb_i : in t_wishbone_slave_in;
wb_o : out t_wishbone_slave_out;
int_o : out std_logic
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment