]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: mach-k3: Use SOC driver for device identification
authorDave Gerlach <d-gerlach@ti.com>
Thu, 16 Jul 2020 04:40:04 +0000 (23:40 -0500)
committerSimon Glass <sjg@chromium.org>
Sat, 25 Jul 2020 20:46:57 +0000 (14:46 -0600)
Make use of UCLASS_SOC to find device family and revision for
print_cpuinfo.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
arch/arm/mach-k3/common.c
arch/arm/mach-k3/common.h
arch/arm/mach-k3/include/mach/hardware.h

index 63bf0606166622265d0cbc4db4cd402e64e38ab2..4335f2877b8d8c17030a3f77cc6a323888378093 100644 (file)
@@ -25,6 +25,7 @@
 #include <fs.h>
 #include <env.h>
 #include <elf.h>
+#include <soc.h>
 
 struct ti_sci_handle *get_ti_sci_handle(void)
 {
@@ -308,38 +309,27 @@ void reset_cpu(ulong ignored)
 #if defined(CONFIG_DISPLAY_CPUINFO)
 int print_cpuinfo(void)
 {
-       u32 soc, rev;
-       char *name;
-
-       soc = (readl(CTRLMMR_WKUP_JTAG_ID) &
-               JTAG_ID_PARTNO_MASK) >> JTAG_ID_PARTNO_SHIFT;
-       rev = (readl(CTRLMMR_WKUP_JTAG_ID) &
-               JTAG_ID_VARIANT_MASK) >> JTAG_ID_VARIANT_SHIFT;
+       struct udevice *soc;
+       char name[64];
+       int ret;
 
        printf("SoC:   ");
-       switch (soc) {
-       case AM65X:
-               name = "AM65x";
-               break;
-       case J721E:
-               name = "J721E";
-               break;
-       default:
-               name = "Unknown Silicon";
-       };
 
-       printf("%s SR ", name);
-       switch (rev) {
-       case REV_PG1_0:
-               name = "1.0";
-               break;
-       case REV_PG2_0:
-               name = "2.0";
-               break;
-       default:
-               name = "Unknown Revision";
-       };
-       printf("%s\n", name);
+       ret = soc_get(&soc);
+       if (ret) {
+               printf("UNKNOWN\n");
+               return 0;
+       }
+
+       ret = soc_get_family(soc, name, 64);
+       if (!ret) {
+               printf("%s ", name);
+       }
+
+       ret = soc_get_revision(soc, name, 64);
+       if (!ret) {
+               printf("%s\n", name);
+       }
 
        return 0;
 }
index 94cdcb56adedbee68c3c87b72b1cb682b05d9f0f..ba344c5bc9dd72c4e6ab2d100a40b432c250d9ab 100644 (file)
@@ -8,12 +8,6 @@
 
 #include <asm/armv7_mpu.h>
 
-#define AM65X  0xbb5a
-#define J721E  0xbb64
-
-#define REV_PG1_0      0
-#define REV_PG2_0      1
-
 struct fwl_data {
        const char *name;
        u16 fwl_id;
index 0ad761418bb7e04b157a4b5b421b3b025cc8a574..f2ca80af1a9b2ca49bbd1e1e0ce8b28914964109 100644 (file)
@@ -15,7 +15,6 @@
 #endif
 
 /* Assuming these addresses and definitions stay common across K3 devices */
-#define CTRLMMR_WKUP_JTAG_ID   0x43000014
 #define JTAG_ID_VARIANT_SHIFT  28
 #define JTAG_ID_VARIANT_MASK   (0xf << 28)
 #define JTAG_ID_PARTNO_SHIFT   12