st 19. 5. 2021 v 10:45 odesÃlatel Michal Simek <michal.si...@xilinx.com> napsal: > > 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 <michal.si...@xilinx.com> > --- > > 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 >
Applied. M -- Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91 w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel - Xilinx Microblaze Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs