From 1d9f93cbaa771282cd0c9499d7a762ab3868cea1 Mon Sep 17 00:00:00 2001 From: Kinsey Moore Date: Mon, 1 Feb 2021 10:07:50 -0600 Subject: nexus: Switch ZynqMP platforms to CGEM3 Similar to the UARTs, ZynqMP hardware platforms use the highest memory-mapped CGEM peripheral as the primary instance of that peripheral. This change allows operation on hardware as well as QEMU. --- rtemsbsd/include/bsp/nexus-devices.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rtemsbsd/include/bsp/nexus-devices.h b/rtemsbsd/include/bsp/nexus-devices.h index c3c43dc9..7cdd5428 100644 --- a/rtemsbsd/include/bsp/nexus-devices.h +++ b/rtemsbsd/include/bsp/nexus-devices.h @@ -107,7 +107,14 @@ RTEMS_BSD_DRIVER_MMC; #include -RTEMS_BSD_DRIVER_XILINX_ZYNQMP_CGEM0(ZYNQMP_IRQ_ETHERNET_0); +/* Qemu only applies user-mode networking to the first interface by default, so + * all 4 CGEM instances must be configured in the Qemu arguments using + * "-nic user,model=cadence_gem" for each nic. + * + * CGEM3 is used for LibBSD because all Zynq Ultrascale+ MPSoC dev boards treat + * the highest-mapped CGEM as the primary interface. + */ +RTEMS_BSD_DRIVER_XILINX_ZYNQMP_CGEM3(ZYNQMP_IRQ_ETHERNET_3); RTEMS_BSD_DRIVER_E1000PHY; #elif defined(LIBBSP_ARM_ATSAM_BSP_H) -- cgit v1.2.3