[rtems-libbsd commit] nexus: Switch ZynqMP platforms to CGEM3

Joel Sherrill joel at rtems.org
Wed Mar 10 14:58:05 UTC 2021


Module:    rtems-libbsd
Branch:    6-freebsd-12
Commit:    1d9f93cbaa771282cd0c9499d7a762ab3868cea1
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=1d9f93cbaa771282cd0c9499d7a762ab3868cea1

Author:    Kinsey Moore <kinsey.moore at oarcorp.com>
Date:      Mon Feb  1 10:07:50 2021 -0600

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 c3c43dc..7cdd542 100644
--- a/rtemsbsd/include/bsp/nexus-devices.h
+++ b/rtemsbsd/include/bsp/nexus-devices.h
@@ -107,7 +107,14 @@ RTEMS_BSD_DRIVER_MMC;
 
 #include <bsp/irq.h>
 
-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)



More information about the vc mailing list