Commits
Murali Karicheri committed 463b0392190
net: prueth: update to support 2 queues per port at ingress/egress One of the issue present in the current version of the firmware is that there is a collision queue that can hold at the max one MTU sized frame. In the case of HSR/PRP, the chances of two frames arriving simultaneously at two ingress ports is high which results in one frame getting dropped when the Host is still not read the previous frames in the Host interface FIFO. Also same FIFO is shared by both PRUs making collision theoretically possible. Instead the new design in firmware allocates 2 queues per PRU per priority that is used exclusively by the PRU thereby avoiding collision scenario. Tests have shown that this helps in eliminating collision as long as the Host driver is able to drain the packet from the queue fast enough to avoid buffer overflow. Additional buffers freed from the collision queue is allocated to Q0-Q3 at host receive interface. This patch makes update to the driver to use two separate interrupts per port for switch case similar to of EMAC case. The Ingress/Egress queue usage is also made similar to EMAC. i.e 2 queues per priority per port at Ingress. At the Egress, 4 queues used as in EMAC case plus a collision queue. The existing pcp to queue map is changed to map a group of PCPs to a queue. Since two priority levels are supported at the ingress, 0-3 are mapped to one queue and 4-7 to another queue for each PRU. sw_pcp_rx_priority_queue_map[] provides this map and is written to shared memory for firmware use. Note that, this version of the driver is not compatible with prior version (1.2) of the PRU firmware and will work only with PRU firmware version 1.3. So this change has to go in sync with firmware version 1.3. Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>