aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-bsp/u-boot/u-boot-v2012.04.01/0018-mx53loco-Allow-to-print-CPU-information-at-a-later-s.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/u-boot/u-boot-v2012.04.01/0018-mx53loco-Allow-to-print-CPU-information-at-a-later-s.patch')
-rw-r--r--recipes-bsp/u-boot/u-boot-v2012.04.01/0018-mx53loco-Allow-to-print-CPU-information-at-a-later-s.patch93
1 files changed, 93 insertions, 0 deletions
diff --git a/recipes-bsp/u-boot/u-boot-v2012.04.01/0018-mx53loco-Allow-to-print-CPU-information-at-a-later-s.patch b/recipes-bsp/u-boot/u-boot-v2012.04.01/0018-mx53loco-Allow-to-print-CPU-information-at-a-later-s.patch
new file mode 100644
index 0000000..79fd899
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-v2012.04.01/0018-mx53loco-Allow-to-print-CPU-information-at-a-later-s.patch
@@ -0,0 +1,93 @@
+From 255fe9c082f3a409d366517bb5e92d299fdbf2ff Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <festevam@gmail.com>
+Date: Mon, 30 Apr 2012 08:12:03 +0000
+Subject: [PATCH 18/56] mx53loco: Allow to print CPU information at a later
+ stage
+
+Print CPU information within board_late_init().
+
+This is in preparation for adding 1GHz support, which requires programming a PMIC
+via I2C. As I2C is only available after relocation, print the CPU information
+later at board_late_init(), so that the CPU frequency can be printed correctly.
+
+Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
+Acked-by: Stefano Babic <sbabic@denx.de>
+---
+ arch/arm/cpu/armv7/imx-common/cpu.c | 2 +-
+ arch/arm/include/asm/arch-mx5/sys_proto.h | 1 +
+ board/freescale/mx53loco/mx53loco.c | 22 ++++++++++++++++++++++
+ include/configs/mx53loco.h | 1 -
+ 4 files changed, 24 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/cpu/armv7/imx-common/cpu.c b/arch/arm/cpu/armv7/imx-common/cpu.c
+index b96fa5b..b3195dd 100644
+--- a/arch/arm/cpu/armv7/imx-common/cpu.c
++++ b/arch/arm/cpu/armv7/imx-common/cpu.c
+@@ -35,7 +35,7 @@
+ #include <fsl_esdhc.h>
+ #endif
+
+-static char *get_reset_cause(void)
++char *get_reset_cause(void)
+ {
+ u32 cause;
+ struct src *src_regs = (struct src *)SRC_BASE_ADDR;
+diff --git a/arch/arm/include/asm/arch-mx5/sys_proto.h b/arch/arm/include/asm/arch-mx5/sys_proto.h
+index 3f10d29..7b5246e 100644
+--- a/arch/arm/include/asm/arch-mx5/sys_proto.h
++++ b/arch/arm/include/asm/arch-mx5/sys_proto.h
+@@ -37,5 +37,6 @@ void set_chipselect_size(int const);
+ int fecmxc_initialize(bd_t *bis);
+ u32 get_ahb_clk(void);
+ u32 get_periph_clk(void);
++char *get_reset_cause(void);
+
+ #endif
+diff --git a/board/freescale/mx53loco/mx53loco.c b/board/freescale/mx53loco/mx53loco.c
+index 7ea9f6e..46aaeb2 100644
+--- a/board/freescale/mx53loco/mx53loco.c
++++ b/board/freescale/mx53loco/mx53loco.c
+@@ -299,6 +299,28 @@ int board_early_init_f(void)
+ return 0;
+ }
+
++int print_cpuinfo(void)
++{
++ u32 cpurev;
++
++ cpurev = get_cpu_rev();
++ printf("CPU: Freescale i.MX%x family rev%d.%d at %d MHz\n",
++ (cpurev & 0xFF000) >> 12,
++ (cpurev & 0x000F0) >> 4,
++ (cpurev & 0x0000F) >> 0,
++ mxc_get_clock(MXC_ARM_CLK) / 1000000);
++ printf("Reset cause: %s\n", get_reset_cause());
++ return 0;
++}
++
++#ifdef CONFIG_BOARD_LATE_INIT
++int board_late_init(void)
++{
++ print_cpuinfo();
++ return 0;
++}
++#endif
++
+ int board_init(void)
+ {
+ gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
+diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h
+index af59307..0778bde 100644
+--- a/include/configs/mx53loco.h
++++ b/include/configs/mx53loco.h
+@@ -27,7 +27,6 @@
+
+ #define CONFIG_SYS_MX5_HCLK 24000000
+ #define CONFIG_SYS_MX5_CLK32 32768
+-#define CONFIG_DISPLAY_CPUINFO
+ #define CONFIG_DISPLAY_BOARDINFO
+
+ #define CONFIG_MACH_TYPE MACH_TYPE_MX53_LOCO
+--
+1.7.10
+