3.1. Architecture

The Mango 802.11 MAC/PHY design supports operation as a Linux wireless NIC on Zynq-7000 and Zynq UltraScale+ MPSoC devices. The hardware architecture for each platform is illustrated below.

Linux design hardware architecture

Fig. 3.1 Linux design hardware architecture

On both platforms the 802.11 PHY and radio interface are implemented in the PL (FPGA fabric). On Zynq-7000 devices the MAC software runs in two MicroBlaze CPUs also in the PL. On MPSoC the MAC runs in the hard ARM R5 CPUs in the PS RPU subsystem. No MicroBlaze CPUs are used in the MPSoC design.

The software architecture is the same on both platforms, illustrated below.

Linux design software architecture

Fig. 3.2 Linux design software architecture

The Upper MAC and Lower MAC are implemented as bare-metal applications. The mango_wlan module implements the SoftMAC 802.11 driver which interfaces to the kernel’s mac80211 framework. The mango_wlan driver communicates with the Upper MAC application via the msg_fifo module. This abstraction simplifies using the mango_wlan driver on different hardware platforms.