<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div class="gmail_quote"><div class="gmail_attr">Overall, this looks like great work! Thanks for contributing!</div><div class="gmail_attr"><br></div><div class="gmail_attr">Just a couple of addons to Joel's comments below.<br></div><div dir="ltr" class="gmail_attr"><br></div><div dir="ltr" class="gmail_attr">On Wed, Jun 14, 2023 at 8:49 AM Joel Sherrill <<a href="mailto:joel@rtems.org">joel@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 14, 2023 at 3:08 AM Philip Kirkpatrick <<a href="mailto:p.kirkpatrick@reflexaerospace.com" target="_blank">p.kirkpatrick@reflexaerospace.com</a>> wrote:<br></div><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>diff --git a/bsps/arm/xilinx-zynqmp/include/bsp/xttcps_hw.h b/bsps/arm/xilinx-zynqmp/include/bsp/xttcps_hw.h<br>new file mode 100644<br>index 0000000000..ba0d559b07<br>--- /dev/null<br>+++ b/bsps/arm/xilinx-zynqmp/include/bsp/xttcps_hw.h<br>@@ -0,0 +1,223 @@<br>+/******************************************************************************<br>+* Copyright (C) 2010 - 2021 Xilinx, Inc.  All rights reserved.<br>+* SPDX-License-Identifier: MIT<br>+******************************************************************************/<br></div></div></blockquote><div><br></div><div>Someone else should comment on whether this Xilinx file should be in </div><div>a location where it is shareable by other BSPs.</div></div></div></blockquote><div><br></div><div>This should definitely be moved into a shared location. It's theoretically usable by ARM, AArch64, and Microblaze on this platform. <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div><br></div><div>Is this file unmodified from the Xilinx provided version? Changes for </div><div>RTEMS should be inside conditional like "#ifdef __rtems__" or </div><div>"#ifndef __rtems__"</div><div>  <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>+#ifndef LIBBSP_ARM_ZYNQMP<br>+#define LIBBSP_ARM_ZYNQMP<br>+<br>+/* Data derived from <a href="https://docs.xilinx.com/r/en-US/ug1085-zynq-ultrascale-trm/PS-I/O-Peripherals-Registers" target="_blank">https://docs.xilinx.com/r/en-US/ug1085-zynq-ultrascale-trm/PS-I/O-Peripherals-Registers</a> */<br>+<br>+/* LPD IO Peripherals */<br>+#define ZYNQMP_UART0 (0xFF000000)<br></div></div></blockquote><div><br></div><div>I'm assuming that these constants do not need to be marked as unsigned.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>+#define ZYNQMP_UART1 (0xFF010000)<br>+#define ZYNQMP_I2C0 (0xFF020000)<br>+#define ZYNQMP_I2C1 (0xFF030000)<br>+#define ZYNQMP_SPI0 (0xFF040000)<br>+#define ZYNQMP_SPI1 (0xFF050000)<br>+#define ZYNQMP_CAN0 (0xFF060000)<br>+#define ZYNQMP_CAN1 (0xFF070000)<br>+#define ZYNQMP_GPIO (0xFF0A0000)<br>+#define ZYNQMP_GEM0 (0xFF0B0000)<br>+#define ZYNQMP_GEM1 (0xFF0C0000)<br>+#define ZYNQMP_GEM2 (0xFF0D0000)<br>+#define ZYNQMP_GEM3 (0xFF0E0000)<br>+#define ZYNQMP_QSPI (0xFF0F0000)<br>+#define ZYNQMP_NAND (0xFF100000)<br>+#define ZYNQMP_SD0 (0xFF160000)<br>+#define ZYNQMP_SD1 (0xFF170000)<br>+#define ZYNQMP_IPI_MSG (0xFF990000)<br>+#define ZYNQMP_USB0 (0xFF9D0000)<br>+#define ZYNQMP_USB1 (0xFF9E0000)<br>+#define ZYNQMP_AMS (0xFFA50000)<br>+#define ZYNQMP_PSSYSMON (0xFFA50800)<br>+#define ZYNQMP_PLSYSMON (0xFFA50C00)<br>+#define ZYNQMP_CSU_SWDT (0xFFCB0000)<br>+<br>+/* FPD IO Peripherals */<br>+#define ZYNQMP_SATA (0xFD0C0000)<br>+#define ZYNQMP_PCIE (0xFD0E0000)<br>+#define ZYNQMP_PCIE_IN (0xFD0E0800)<br>+#define ZYNQMP_PCIE_EG (0xFD0E0C00)<br>+#define ZYNQMP_PCIE_DMA (0xFD0F0000)<br>+#define ZYNQMP_SIOU (0xFD3D0000)<br>+#define ZYNQMP_GTR (0xFD400000)<br>+#define ZYNQMP_PCIE_ATTR (0xFD480000)<br>+#define ZYNQMP_DP (0xFD4A0000)<br>+#define ZYNQMP_GPU (0xFD4B0000)<br>+#define ZYNQMP_DP_DMA (0xFD4C0000)<br>+<br>+/* LPD System Registers */<br>+#define ZYNQMP_IPI (0xFF300000)<br>+#define ZYNQMP_TTC0 (0xFF110000)<br>+#define ZYNQMP_TTC1 (0xFF120000)<br>+#define ZYNQMP_TTC2 (0xFF130000)<br>+#define ZYNQMP_TTC3 (0xFF140000)<br>+#define ZYNQMP_LPD_SWDT (0xFF150000)<br>+#define ZYNQMP_XPPU (0xFF980000)<br>+#define ZYNQMP_XPPU_SINK (0xFF9C0000)<br>+#define ZYNQMP_PL_LPD (0xFF9B0000)<br>+#define ZYNQMP_OCM (0xFFA00000)<br>+#define ZYNQMP_LPD_FPD (0xFFA10000)<br>+#define ZYNQMP_RTC (0xFFA60000)<br>+#define ZYNQMP_OCM_XMPU (0xFFA70000)<br>+#define ZYNQMP_LPD_DMA (0xFFA80000)<br>+#define ZYNQMP_CSU_DMA (0xFFC80000)<br>+#define ZYNQMP_CSU (0xFFCA0000)<br>+#define ZYNQMP_BBRAM (0xFFCD0000)<br>+<br>+#endif /* LIBBSP_ARM_ZYNQMP */</div></div></blockquote><br></div></div></blockquote><div>If we're going to have a list of peripheral addresses for the platform, it might be useful to have in a shared space for the same reason as the TTC.</div></div></div>