This is v2.0 update to SatCat5, including several changes that break backwards compatibility.
Description
Added a large number of auxiliary ConfigBus peripherals, with cross-platform software drivers.
Added I2C peripherals and Ethernet-over-I2C ports.
Added the "MailMap" port, a higher-performance analogue to original MailBox port.
Created an embedded cross-platform C++ driver framework, including a IP and UDP network stack.
Replaced all prior MAC-lookup systems with a flexible high-performance TCAM.
Replaced various ad-hoc control and configuration functions with "ConfigBus".
Reworked switch-core to allow higher maximum throughput, max one full packet per clock.
Reworked switch-core to allow rudimentary IGMP snooping.
Reworked switch-core to allow traffic prioritization based on EtherType.
Motivation and Context
The largest technical change is to the core MAC pipeline, which was previously limited to a maximum datapath of 48-bit datapaths. The new design, which supersedes all seven previous MAC-lookup systems, has better caching and removes this limit completely. (It also adds preliminary support for packet prioritization and IGMP snooping.) It has been tested with datapaths up to 512-bits wide, and can handle an entire packet every clock cycle. This change will allow 10-GbE support in a future release.
The other major addition is the "SatCatOS" software framework, designed for control of managed Ethernet switches and various SatCat5 I/O peripherals. It includes a lightweight IP/UDP stack with ARP and ICMP support.
Other changes include reorganization of the project folders, such as renaming certain files for better regularity and moving example designs into a separate folder from platform-specific shared libraries.
How Has This Been Tested?
This release has been tested internally through our normal Jenkins pipeline, as well as hardware testing of the Arty-A7 and Arty-Managed designs. (Up to and including UDP-echo and Ping requests sent over the Arty's RMII port.)
Types of changes
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document and signed a CLA, if applicable.
This is v2.0 update to SatCat5, including several changes that break backwards compatibility.
Description
Motivation and Context
The largest technical change is to the core MAC pipeline, which was previously limited to a maximum datapath of 48-bit datapaths. The new design, which supersedes all seven previous MAC-lookup systems, has better caching and removes this limit completely. (It also adds preliminary support for packet prioritization and IGMP snooping.) It has been tested with datapaths up to 512-bits wide, and can handle an entire packet every clock cycle. This change will allow 10-GbE support in a future release.
The other major addition is the "SatCatOS" software framework, designed for control of managed Ethernet switches and various SatCat5 I/O peripherals. It includes a lightweight IP/UDP stack with ARP and ICMP support.
Other changes include reorganization of the project folders, such as renaming certain files for better regularity and moving example designs into a separate folder from platform-specific shared libraries.
How Has This Been Tested?
This release has been tested internally through our normal Jenkins pipeline, as well as hardware testing of the Arty-A7 and Arty-Managed designs. (Up to and including UDP-echo and Ping requests sent over the Arty's RMII port.)
Types of changes
Checklist: