We provide two lwip configurations, bare and xilinx_eth. If the cmake option ROMEO_Z7_USE_XIL_ETH is selected, the xilinx_eth variant is used, otherwise the bare variant is used.

Bare is the bare-metal minimal implementation. It tries to reduce code size and system complexity, using the bare API and a custom networking thread, handling all networking aspects. This configuration is meant to be run on the satellite obsw.

Xilinx_eth supports the xilinx ethernet core of the Zynq PS, inlcuding DMA. Unfortunately, the xilinx drivers require a custom sys_arch port. The xilinx_eth configuration is meant to be used with posix compatible calls, using the lwip sockets api and multiple threads running in the background. This configuration is meant to be run on debugging configurations or support equipment.