From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Simek Date: Wed, 19 May 2021 10:44:57 +0200 Subject: [PATCH] arm64: zynqmp: Add support for SVD devices Message-ID: <606cc8f52ac42b3030cc3675ec75f9374ca74932.1621413896.git.michal.simek@xilinx.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de SVD (Software Virtual Devices) are using different name which can't be handled via zynqmp_devices structure. That's why introduce zynqmp_detect_svd_name() which checks ID code for these devices and show proper name for them. Signed-off-by: Michal Simek --- board/xilinx/zynqmp/zynqmp.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c index d05f0b2e1202..6e353e3b0a57 100644 --- a/board/xilinx/zynqmp/zynqmp.c +++ b/board/xilinx/zynqmp/zynqmp.c @@ -185,6 +185,32 @@ static const struct { }, }; +static const struct { + u32 id; + char *name; +} zynqmp_svd_devices[] = { + { + .id = 0x04714093, + .name = "xck24" + }, + { + .id = 0x04724093, + .name = "xck26", + }, +}; + +static char *zynqmp_detect_svd_name(u32 idcode) +{ + u32 i; + + for (i = 0; i < ARRAY_SIZE(zynqmp_svd_devices); i++) { + if (zynqmp_svd_devices[i].id == (idcode & 0x0FFFFFFF)) + return zynqmp_svd_devices[i].name; + } + + return "unknown"; +} + static char *zynqmp_get_silicon_idcode_name(void) { u32 i; @@ -219,7 +245,7 @@ static char *zynqmp_get_silicon_idcode_name(void) } if (i >= ARRAY_SIZE(zynqmp_devices)) - return "unknown"; + return zynqmp_detect_svd_name(idcode); /* Add device prefix to the name */ ret = snprintf(name, ZYNQMP_VERSION_SIZE, "zu%d", -- 2.31.1