Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IGB AVB support #1

Open
wants to merge 4 commits into
base: v4.9.78
Choose a base branch
from
Open

IGB AVB support #1

wants to merge 4 commits into from

Conversation

twischer
Copy link
Owner

@twischer twischer commented May 27, 2020

aditpape and others added 4 commits May 27, 2020 10:39
These will be needed for external AVB streaming driver and upcoming
AVB extension of igb driver on i210 card model.
Registers are documented in i210 controller datasheet available
at intel.com

Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
This patch adds config option CONFIG_IGB_EXT_AVB which enables
AVB support in igb driver. If enabled and driver is probed on an
igb card supporting AVB (currently only i210 model) the NIC is
configured for AVB use case (in parallel to normal traffic):
-2 TX queues and 2 RX queues are reserved for AVB usage
-these queues are 'hidden' to the linux networking stack to avoid
	usage for any 'normal' network traffic
-these queues are configured to support traffic shaping (QAV)

The queues are only allocated and initialized by igb driver but
need to be driven (sending/receiving) by external component.
Igb driver allows registering external IRQ handlers on these queues
and a notification callback for link status.
Shutting down the interface will also stop/shutdown AVB queues.

Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
This patch adds a streaming driver to use the MSE (Media Streaming Engine)
provided by Renesas for RCAR3 also on intel NIC.
The driver itself is derived from the Renesas ravb_streaming driver
(version R-Car v2.7.0).
For now it hooks at the ravb streaming API as there is no full separation
between the common parts (prefix 'eavb') and the NIC dependent
(RCAR3 specific) part (prefix 'ravb').
This results in obvious 'ravb' parts also used by the igb solution
which is acceptable.
Feature set is similar to the ravb driver:
-16 tx instances, 16 rx instances
The driver comes as a separate module and attaches to the igb driver
via the optional AVB API exported with config option CONFIG_IGB_EXT_AVB.
After attaching the streaming driver directly acts on the igb
hardware queues.

Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants