]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
rockchip: Separate the reset cause from display cpuinfo
authorJagan Teki <jagan@amarulasolutions.com>
Tue, 21 Jul 2020 15:06:03 +0000 (20:36 +0530)
committerKever Yang <kever.yang@rock-chips.com>
Wed, 22 Jul 2020 12:55:13 +0000 (20:55 +0800)
reset cause is a generic functionality based on the soc
cru registers in rockchip. This can be used for printing
the cause of reset in cpuinfo or some other place where
reset cause is needed. 

Other than cpuinfo, reset cause can also be using during
bootcount for checking the specific reset cause and glow
the led based on the reset cause.

So, let's separate the reset cause code from cpuinfo, and
add a check to build it for rk3399, rk3288 since these two
soc are supporting reset cause as of now.

Tested-by: Suniel Mahesh <sunil@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
arch/arm/include/asm/arch-rockchip/cru.h
arch/arm/mach-rockchip/Makefile
arch/arm/mach-rockchip/cpu-info.c

index d2057cb7384e1e2038b95edd37f8d0cc160d18ac..13ea4aba8eb92e8a3dfc5c0a5a63ea1e7fb6f7bb 100644 (file)
@@ -30,4 +30,6 @@ enum {
 
 #define MHz            1000000
 
+char *get_reset_cause(void);
+
 #endif /* _ROCKCHIP_CLOCK_H */
index 5b38526fe05ebd3ef02082597dfa02ed1027077d..121f23a563e0f3376e29a36d6d407379b4c94660 100644 (file)
@@ -22,11 +22,14 @@ ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),)
 # we can have the preprocessor correctly recognise both 0x0 and 0
 # meaning "turn it off".
 obj-y += boot_mode.o
-obj-$(CONFIG_DISPLAY_CPUINFO) += cpu-info.o
 obj-$(CONFIG_ROCKCHIP_COMMON_BOARD) += board.o
 obj-$(CONFIG_MISC_INIT_R) += misc.o
 endif
 
+ifeq ($(CONFIG_TPL_BUILD),)
+obj-$(CONFIG_DISPLAY_CPUINFO) += cpu-info.o
+endif
+
 obj-$(CONFIG_$(SPL_TPL_)RAM) += sdram.o
 
 obj-$(CONFIG_ROCKCHIP_PX30) += px30/
index bb5a19803950eff8b9dbd33e312265023cb24e56..d0f030109f45782daef7cfd5a1208f1ebe1288f7 100644 (file)
@@ -13,7 +13,7 @@
 #include <asm/arch-rockchip/hardware.h>
 #include <linux/err.h>
 
-static char *get_reset_cause(void)
+char *get_reset_cause(void)
 {
        struct rockchip_cru *cru = rockchip_get_cru();
        char *cause = NULL;
@@ -41,21 +41,25 @@ static char *get_reset_cause(void)
                cause = "unknown reset";
        }
 
-       /**
-        * reset_reason env is used by rk3288, due to special use case
-        * to figure it the boot behavior. so keep this as it is.
-        */
-       env_set("reset_reason", cause);
-
        return cause;
 }
 
+#if CONFIG_IS_ENABLED(DISPLAY_CPUINFO)
 int print_cpuinfo(void)
 {
+       char *cause = get_reset_cause();
+
        printf("SoC: Rockchip %s\n", CONFIG_SYS_SOC);
-       printf("Reset cause: %s\n", get_reset_cause());
+       printf("Reset cause: %s\n", cause);
+
+       /**
+        * reset_reason env is used by rk3288, due to special use case
+        * to figure it the boot behavior. so keep this as it is.
+        */
+       env_set("reset_reason", cause);
 
        /* TODO print operating temparature and clock */
 
        return 0;
 }
+#endif