]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - arch/arm/cpu/armv7/omap3/sys_info.c
Merge branch 'u-boot/master'
[karo-tx-uboot.git] / arch / arm / cpu / armv7 / omap3 / sys_info.c
index 8d0496cb6c03ef2b7f0d0de717837a9f21657a16..bef5f05eaa71e36e0323f12e82c2377435c2421e 100644 (file)
@@ -9,20 +9,7 @@
  *      Richard Woodruff <r-woodruff2@ti.com>
  *      Syed Mohammed Khasim <khasim@ti.com>
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR /PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
+ * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -30,6 +17,7 @@
 #include <asm/arch/mem.h>      /* get mem tables */
 #include <asm/arch/sys_proto.h>
 #include <i2c.h>
+#include <linux/compiler.h>
 
 extern omap3_sysinfo sysinfo;
 static struct ctrl *ctrl_base = (struct ctrl *)OMAP34XX_CTRL_BASE;
@@ -44,14 +32,32 @@ static char *rev_s[CPU_3XX_MAX_REV] = {
                                "UNKNOWN",
                                "UNKNOWN",
                                "3.1.2"};
+
+/* this is the revision table for 37xx CPUs */
+static char *rev_s_37xx[CPU_37XX_MAX_REV] = {
+                               "1.0",
+                               "1.1",
+                               "1.2"};
 #endif /* CONFIG_DISPLAY_CPUINFO */
 
+/*****************************************************************
+ * get_dieid(u32 *id) - read die ID
+ *****************************************************************/
+void get_dieid(u32 *id)
+{
+       struct ctrl_id *id_base = (struct ctrl_id *)OMAP34XX_ID_L4_IO_BASE;
+
+       id[3] = readl(&id_base->die_id_0);
+       id[2] = readl(&id_base->die_id_1);
+       id[1] = readl(&id_base->die_id_2);
+       id[0] = readl(&id_base->die_id_3);
+}
+
 /*****************************************************************
  * dieid_num_r(void) - read and set die ID
  *****************************************************************/
 void dieid_num_r(void)
 {
-       struct ctrl_id *id_base = (struct ctrl_id *)OMAP34XX_ID_L4_IO_BASE;
        char *uid_s, die_id[34];
        u32 id[4];
 
@@ -60,10 +66,7 @@ void dieid_num_r(void)
        uid_s = getenv("dieid#");
 
        if (uid_s == NULL) {
-               id[3] = readl(&id_base->die_id_0);
-               id[2] = readl(&id_base->die_id_1);
-               id[1] = readl(&id_base->die_id_2);
-               id[0] = readl(&id_base->die_id_3);
+               get_dieid(id);
                sprintf(die_id, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]);
                setenv("dieid#", die_id);
                uid_s = die_id;
@@ -191,7 +194,7 @@ u32 get_gpmc0_width(void)
  * get_board_rev() - setup to pass kernel board revision information
  * returns:(bit[0-3] sub version, higher bit[7-4] is higher version)
  *************************************************************************/
-u32 get_board_rev(void)
+u32 __weak get_board_rev(void)
 {
        return 0x20;
 }
@@ -292,9 +295,9 @@ int print_cpuinfo (void)
                }
                if ((get_cpu_rev() >= CPU_3XX_ES31) &&
                    (get_sku_id() == SKUID_CLK_720MHZ))
-                       max_clk = "720 mHz";
+                       max_clk = "720 MHz";
                else
-                       max_clk = "600 mHz";
+                       max_clk = "600 MHz";
 
                break;
        case CPU_AM35XX:
@@ -347,7 +350,12 @@ int print_cpuinfo (void)
                sec_s = "?";
        }
 
-       printf("%s%s-%s ES%s, CPU-OPP2, L3-165MHz, Max CPU Clock %s\n",
+       if (CPU_OMAP36XX == get_cpu_family())
+               printf("%s%s-%s ES%s, CPU-OPP2, L3-200MHz, Max CPU Clock %s\n",
+                      cpu_family_s, cpu_s, sec_s,
+                      rev_s_37xx[get_cpu_rev()], max_clk);
+       else
+               printf("%s%s-%s ES%s, CPU-OPP2, L3-165MHz, Max CPU Clock %s\n",
                        cpu_family_s, cpu_s, sec_s,
                        rev_s[get_cpu_rev()], max_clk);