Skip to content

Commit b173d24

Browse files
Baze, AmandaKopparapu,Mounika
authored andcommitted
xilpm: versal: server: Add XRAM AXI-lite workaround for ES1 devices
XRAM AXI-lite configuration is not supported in Vivado for VE2302 and VM1102 ES1 devices. Add a workaround to skip AXI-lite enablement on these devices. Signed-off-by: Nicole Baze <[email protected]> Acked-by:Trung Tran<[email protected]>
1 parent f18acde commit b173d24

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

lib/sw_services/xilpm/src/versal/server/xpm_common_plat.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,12 @@ extern "C" {
126126
/* VP1902 */
127127
#define PMC_TAP_IDCODE_DEV_VP1902 ((u32)0x0U << XPM_PMC_TAP_IDCODE_DEV_SHIFT)
128128
#define PMC_TAP_IDCODE_DEV_SBFMLY_VP1902 (XPM_PMC_TAP_IDCODE_SBFMLY_P_HS | PMC_TAP_IDCODE_DEV_VP1902)
129+
/* VE2302 */
130+
#define PMC_TAP_IDCODE_DEV_VE2302 ((u32)0x8U << XPM_PMC_TAP_IDCODE_DEV_SHIFT)
131+
#define PMC_TAP_IDCODE_DEV_SBFMLY_VE2302 (XPM_PMC_TAP_IDCODE_SBFMLY_SV | PMC_TAP_IDCODE_DEV_VE2302)
132+
/* VM1102 */
133+
#define PMC_TAP_IDCODE_DEV_VM1102 ((u32)0xAU << XPM_PMC_TAP_IDCODE_DEV_SHIFT)
134+
#define PMC_TAP_IDCODE_DEV_SBFMLY_VM1102 (XPM_PMC_TAP_IDCODE_SBFMLY_SV | PMC_TAP_IDCODE_DEV_VM1102)
129135

130136
#define SLR_TYPE_MONOLITHIC_DEV (0x7U)
131137
#define SLR_TYPE_SSIT_DEV_MASTER_SLR (0x6U)

lib/sw_services/xilpm/src/versal/server/xpm_domain_iso.c

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -654,10 +654,20 @@ XStatus XPmDomainIso_Control(u32 IsoIdx, u32 Enable)
654654
}
655655

656656
if ((u32)XPM_NODEIDX_ISO_XRAM_PL_AXILITE == IsoIdx) {
657-
/* Select AXI lite clock from PL */
658-
XPm_RMW32(XRAM_SLCR_BASEADDR + XRAM_SLCR_APB_CLK_OFFSET,
659-
XRAM_SLCR_APB_CLK_SRC_AXI_LITE_CLK_MASK,
660-
XRAM_SLCR_APB_CLK_SRC_AXI_LITE_CLK_MASK);
657+
/*
658+
* Vivado does not support XRAM AXI-lite for VE2302/VM1102 ES1 devices.
659+
* Skip AXI-lite clock source selection for these devices.
660+
*/
661+
if (!((((u32)PLATFORM_VERSION_SILICON_ES1 == XPm_GetPlatformVersion()) &&
662+
(PMC_TAP_IDCODE_DEV_SBFMLY_VE2302 == (XPm_GetIdCode() & PMC_TAP_IDCODE_DEV_SBFMLY_MASK))) ||
663+
(((u32)PLATFORM_VERSION_SILICON_ES1 == XPm_GetPlatformVersion()) &&
664+
(PMC_TAP_IDCODE_DEV_SBFMLY_VM1102 == (XPm_GetIdCode() & PMC_TAP_IDCODE_DEV_SBFMLY_MASK))))) {
665+
666+
/* Select AXI lite clock from PL */
667+
XPm_RMW32(XRAM_SLCR_BASEADDR + XRAM_SLCR_APB_CLK_OFFSET,
668+
XRAM_SLCR_APB_CLK_SRC_AXI_LITE_CLK_MASK,
669+
XRAM_SLCR_APB_CLK_SRC_AXI_LITE_CLK_MASK);
670+
}
661671
}
662672
} else {
663673
if (((u32)XPM_NODEIDX_ISO_XRAM_PL_AXI0 <= IsoIdx) &&

0 commit comments

Comments
 (0)