]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
zynqmp: Detect silicon version based on cpu clock
authorMichal Simek <michal.simek@xilinx.com>
Thu, 4 Sep 2014 12:28:35 +0000 (14:28 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Fri, 5 Sep 2014 11:32:41 +0000 (13:32 +0200)
U-Boot with ATF can't read CSU register space because
it is in secure space that's why cpu clock freq is used.

cpu clock is setup by firmware that's why can be used
for platform detection.

Revert this patch when CSU register can be read from
non secure space.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/arm/cpu/armv8/zynqmp/cpu.c

index a9082316d2395f805f2bb70ce4fdd62b1ba6aad9..5d2c93a9cabfbc5aaef863112d41ef4f2fbc0c49 100644 (file)
 #define ZYNQ_SILICON_VER_MASK  0xF000
 #define ZYNQ_SILICON_VER_SHIFT 12
 
+DECLARE_GLOBAL_DATA_PTR;
+
 unsigned int zynqmp_get_silicon_version(void)
 {
+#if 0
        unsigned int ver;
 
        ver = (readl(&csu_base->version) & ZYNQ_SILICON_VER_MASK) >>
               ZYNQ_SILICON_VER_SHIFT;
 
        return ver;
+#endif
+
+       switch (gd->cpu_clk) {
+       case 400000:
+               return ZYNQMP_CSU_VERSION_VELOCE;
+       case 50000000:
+               return ZYNQMP_CSU_VERSION_QEMU;
+       }
+
+       return ZYNQMP_CSU_VERSION_EP108;
 }