From: Aneesh V <aneesh@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 12/22] omap4: utility function to identify the context of hw init
Date: Mon, 28 Feb 2011 17:16:21 +0530 [thread overview]
Message-ID: <1298893591-17636-13-git-send-email-aneesh@ti.com> (raw)
In-Reply-To: <1298893591-17636-1-git-send-email-aneesh@ti.com>
The basic hardware init of OMAP4(s_init()) can happen in 4
different contexts:
1. SPL running from SRAM
2. U-Boot running from FLASH
3. Non-XIP U-Boot loaded to SDRAM by SPL
4. Non-XIP U-Boot loaded to SDRAM by ROM code using the
Configuration Header feature
What level of hw initialization gets done depends on this
context. Add a utility function to find this context.
Signed-off-by: Aneesh V <aneesh@ti.com>
---
arch/arm/include/asm/arch-omap4/sys_proto.h | 47 +++++++++++++++++++++++++++
arch/arm/include/asm/omap_common.h | 6 +++
2 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h b/arch/arm/include/asm/arch-omap4/sys_proto.h
index ce86b36..19da2e1 100644
--- a/arch/arm/include/asm/arch-omap4/sys_proto.h
+++ b/arch/arm/include/asm/arch-omap4/sys_proto.h
@@ -38,6 +38,53 @@ void sr32(void *, u32, u32, u32);
u32 wait_on_value(u32, u32, void *, u32);
void sdelay(unsigned long);
+static inline u32 running_from_sdram(void)
+{
+ u32 pc;
+ asm volatile ("mov %0, pc" : "=r" (pc));
+ return ((pc >= OMAP44XX_DRAM_ADDR_SPACE_START) &&
+ (pc < OMAP44XX_DRAM_ADDR_SPACE_END));
+}
+
+static inline u8 uboot_loaded_by_spl(void)
+{
+ /*
+ * Configuration Header is not supported yet, so u-boot init running
+ * from SDRAM implies that it was loaded by SPL. When this situation
+ * changes one of these approaches could be taken:
+ * i. Pass a magic from SPL to U-Boot and U-Boot save it at a known
+ * location.
+ * ii. Check the OPP. CH can support only 50% OPP while SPL initializes
+ * the DPLLs@100% OPP.
+ */
+ return running_from_sdram();
+}
+/*
+ * The basic hardware init of OMAP(s_init()) can happen in 4
+ * different contexts:
+ * 1. SPL running from SRAM
+ * 2. U-Boot running from FLASH
+ * 3. Non-XIP U-Boot loaded to SDRAM by SPL
+ * 4. Non-XIP U-Boot loaded to SDRAM by ROM code using the
+ * Configuration Header feature
+ *
+ * This function finds this context.
+ * Defining as inline may help in compiling out unused functions in SPL
+ */
+static inline u32 omap4_hw_init_context(void)
+{
+#ifdef CONFIG_PRELOADER
+ return OMAP_INIT_CONTEXT_SPL;
+#else
+ if (uboot_loaded_by_spl())
+ return OMAP_INIT_CONTEXT_UBOOT_LOADED_BY_SPL;
+ else if (running_from_sdram())
+ return OMAP_INIT_CONTEXT_UBOOT_LOADED_BY_CH;
+ else
+ return OMAP_INIT_CONTEXT_XIP_UBOOT;
+#endif
+}
+
extern const struct omap_sysinfo sysinfo;
#endif
diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
index 95116f4..50247af 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -65,6 +65,12 @@
/* Magic number passed from SPL to U-Boot */
#define OMAP_SPL_TO_UBOOT_MAGIC_NUMBER 0xDEADBEEF
+/* HW Init Context */
+#define OMAP_INIT_CONTEXT_SPL 0
+#define OMAP_INIT_CONTEXT_XIP_UBOOT 1
+#define OMAP_INIT_CONTEXT_UBOOT_LOADED_BY_SPL 2
+#define OMAP_INIT_CONTEXT_UBOOT_LOADED_BY_CH 3
+
u32 omap_boot_device(void);
u32 omap_boot_mode(void);
void preloader_console_init(void);
--
1.7.0.4
next prev parent reply other threads:[~2011-02-28 11:46 UTC|newest]
Thread overview: 244+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-28 11:46 [U-Boot] [PATCH 00/22] U-Boot MMC SPL for OMAP4 Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 01/22] mkimage: Add OMAP boot image support Aneesh V
2011-03-01 14:24 ` Bedia, Vaibhav
2011-03-01 14:45 ` John Rigby
2011-03-01 14:49 ` Aneesh V
2011-03-02 4:51 ` Bedia, Vaibhav
[not found] ` <FCCFB4CDC6E5564B9182F639FC356087037077712B@dbde02.ent.ti.com>
2011-03-04 5:27 ` Bedia, Vaibhav
2011-03-04 8:49 ` Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 02/22] omap: add miscellaneous utility macros for bit-field operations Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 03/22] omap4: add OMAP4430 revision check Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 04/22] armv7: start.S: provide a hook for saving boot params Aneesh V
2011-03-01 14:27 ` Bedia, Vaibhav
2011-02-28 11:46 ` [U-Boot] [PATCH 05/22] omap4: save parameters passed by ROM code to SPL Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 06/22] arm: new labels in the linker script file Aneesh V
2011-03-08 10:12 ` Po-Yu Chuang
2011-03-08 11:20 ` Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 07/22] Add generic spl infrastructure Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 08/22] armv7: start.S: add SPL support Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 09/22] omap: add spl support Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 10/22] omap4: add spl support for OMAP4 SDP Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 11/22] omap4: add serial console support to SPL Aneesh V
2011-02-28 11:46 ` Aneesh V [this message]
2011-02-28 11:46 ` [U-Boot] [PATCH 13/22] omap4: separate mux settings into essential and non essential parts Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 14/22] omap4: correct mux data for sdp4430 Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 15/22] omap4: add clock support Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 16/22] omap4: add sdram init support Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 17/22] omap4: calculate EMIF register values Aneesh V
2011-03-09 4:46 ` John Rigby
2011-03-09 5:08 ` Aneesh V
2011-03-09 6:02 ` John Rigby
2011-03-09 9:26 ` Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 18/22] omap4: automatic sdram detection Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 19/22] armv7: embed u-boot size within u-boot for use from SPL Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 20/22] omap: add MMC support to SPL Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 21/22] omap: spl: add FAT support over MMC Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 22/22] omap4: add spl support for OMAP4 Panda Aneesh V
2011-03-21 8:21 ` [U-Boot] [PATCH 00/22] U-Boot MMC SPL for OMAP4 Aneesh V
2011-03-22 8:50 ` Chander M. Kashyap
2011-03-22 9:20 ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 " Aneesh V
2011-07-03 9:06 ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 01/22] mkimage: Add OMAP boot image support Aneesh V
2011-05-15 19:06 ` Wolfgang Denk
2011-05-16 10:16 ` Aneesh V
2011-05-16 11:48 ` Wolfgang Denk
2011-05-17 10:24 ` Aneesh V
2011-05-17 11:15 ` Wolfgang Denk
2011-05-17 12:09 ` Aneesh V
2011-05-17 12:32 ` Wolfgang Denk
2011-05-16 1:52 ` Mike Frysinger
2011-05-16 2:55 ` Mike Frysinger
2011-05-16 10:28 ` Aneesh V
2011-05-16 18:42 ` Mike Frysinger
2011-05-17 6:30 ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 02/22] omap4: add OMAP4430 revision check Aneesh V
2011-05-15 19:09 ` Wolfgang Denk
2011-05-16 12:14 ` Aneesh V
2011-05-16 15:35 ` Wolfgang Denk
2011-05-17 6:40 ` Aneesh V
2011-05-17 8:10 ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 03/22] armv7: start.S: provide a hook for saving boot params Aneesh V
2011-05-15 19:10 ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 04/22] omap4: save parameters passed by ROM code to SPL Aneesh V
2011-05-15 19:14 ` Wolfgang Denk
2011-05-16 12:29 ` Aneesh V
2011-05-16 15:37 ` Wolfgang Denk
2011-05-17 6:44 ` Aneesh V
2011-05-17 8:11 ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 05/22] arm: new labels in the linker script file Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 06/22] Add generic spl infrastructure Aneesh V
2011-05-15 19:48 ` Wolfgang Denk
2011-05-16 12:48 ` Aneesh V
2011-05-16 15:41 ` Wolfgang Denk
2011-05-16 18:32 ` Scott Wood
2011-05-17 6:54 ` Aneesh V
2011-05-17 8:15 ` Wolfgang Denk
2011-05-17 10:30 ` Aneesh V
2011-05-17 11:17 ` Wolfgang Denk
2011-05-17 12:16 ` Aneesh V
2011-05-17 12:33 ` Wolfgang Denk
2011-05-17 14:01 ` Aneesh V
2011-05-17 16:50 ` Scott Wood
2011-05-18 3:35 ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 07/22] armv7: start.S: add SPL support Aneesh V
2011-05-15 19:49 ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 08/22] omap: add spl support Aneesh V
2011-05-15 19:52 ` Wolfgang Denk
2011-05-16 14:10 ` Aneesh V
2011-05-16 15:43 ` Wolfgang Denk
2011-05-17 6:59 ` Aneesh V
2011-05-17 8:16 ` Wolfgang Denk
2011-05-26 13:51 ` Aneesh V
2011-06-02 15:54 ` Aneesh V
2011-06-07 9:15 ` Aneesh V
2011-06-15 10:13 ` Wolfgang Denk
2011-06-15 10:53 ` Aneesh V
2011-06-15 12:04 ` Wolfgang Denk
2011-06-15 12:08 ` Aneesh V
2011-06-15 12:44 ` Wolfgang Denk
2011-05-16 18:39 ` Scott Wood
2011-05-18 5:05 ` Aneesh V
2011-05-18 15:51 ` Scott Wood
2011-05-15 19:53 ` Wolfgang Denk
2011-05-16 14:17 ` Aneesh V
2011-05-16 9:48 ` Simon Schwarz
2011-05-16 14:20 ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 09/22] omap4: add spl support for OMAP4 SDP Aneesh V
2011-05-15 18:33 ` Wolfgang Denk
2011-05-16 14:29 ` Aneesh V
2011-05-16 15:48 ` Wolfgang Denk
2011-05-17 7:11 ` Aneesh V
2011-05-17 8:19 ` Wolfgang Denk
2011-05-17 12:33 ` Aneesh V
2011-05-17 12:53 ` Wolfgang Denk
2011-05-26 13:25 ` Aneesh V
2011-06-02 15:33 ` Aneesh V
2011-06-07 9:09 ` Aneesh V
2011-06-15 10:07 ` Wolfgang Denk
2011-05-15 19:54 ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 10/22] omap4: utility function to identify the context of hw init Aneesh V
2011-05-15 19:59 ` Wolfgang Denk
[not found] ` <4DD135D0.8070805@ti.com>
2011-05-16 15:50 ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 11/22] omap4: separate mux settings into essential and non essential parts Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 12/22] omap4: correct mux data for sdp4430 Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 13/22] omap4: add clock support Aneesh V
2011-05-15 19:00 ` Wolfgang Denk
2011-05-17 13:30 ` Aneesh V
2011-05-17 21:44 ` Wolfgang Denk
2011-06-25 12:05 ` Aneesh V
2011-06-25 13:05 ` Wolfgang Denk
2011-06-21 5:49 ` Aneesh V
2011-06-21 6:25 ` Aneesh V
2011-06-21 7:12 ` Aneesh V
2011-06-21 8:20 ` Wolfgang Denk
2011-06-21 9:08 ` Aneesh V
2011-06-21 10:22 ` Wolfgang Denk
2011-06-21 11:10 ` Aneesh V
2011-06-21 11:22 ` Aneesh V
2011-06-21 7:05 ` Wolfgang Denk
2011-06-21 7:05 ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 14/22] omap4: add serial console support to SPL Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 15/22] omap4: add sdram init support Aneesh V
2011-05-15 20:01 ` Wolfgang Denk
2011-05-17 14:13 ` Aneesh V
2011-05-17 21:46 ` Wolfgang Denk
2011-05-15 20:02 ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 16/22] omap4: calculate EMIF register values Aneesh V
2011-05-15 20:05 ` Wolfgang Denk
2011-05-15 20:42 ` Måns Rullgård
2011-05-17 14:30 ` Aneesh V
2011-05-17 14:26 ` Aneesh V
2011-05-17 21:54 ` Wolfgang Denk
2011-05-18 3:49 ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 17/22] omap4: automatic sdram detection Aneesh V
2011-05-15 20:06 ` Wolfgang Denk
2011-05-17 14:33 ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 18/22] armv7: embed u-boot size within u-boot for use from SPL Aneesh V
2011-05-15 20:09 ` Wolfgang Denk
2011-05-18 5:02 ` Aneesh V
2011-05-18 6:06 ` Wolfgang Denk
2011-05-26 11:08 ` Aneesh V
2011-05-26 17:21 ` Wolfgang Denk
2011-05-16 18:56 ` Scott Wood
2011-05-18 4:49 ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 19/22] omap: add MMC support to SPL Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 20/22] omap: spl: add FAT support over MMC Aneesh V
2011-05-15 20:12 ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 21/22] omap4: add spl support for OMAP4 Panda Aneesh V
2011-05-15 20:14 ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 22/22] omap: spl: add more debug traces Aneesh V
2011-05-15 20:21 ` Wolfgang Denk
2011-06-13 13:59 ` Aneesh V
2011-06-14 4:17 ` Aneesh V
2011-06-15 10:18 ` Wolfgang Denk
2011-07-03 9:35 ` Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 00/12] U-Boot MMC SPL for OMAP4 Aneesh V
2011-07-18 13:38 ` Aneesh V
2011-07-18 13:50 ` Wolfgang Denk
2011-07-18 14:05 ` Aneesh V
2011-07-18 14:15 ` Wolfgang Denk
2011-07-16 12:53 ` [U-Boot] [PATCH v3 01/12] omap4: utility function to identify the context of hw init Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 02/12] omap4: cleanup pin mux data Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 03/12] omap4: add OMAP4430 revision check Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 04/12] omap4: add clock support Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 05/12] omap4: add sdram init support Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 06/12] omap4: calculate EMIF register values Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 07/12] omap4: automatic sdram detection Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 08/12] armv7: start.S: fixes and enhancements for SPL Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 09/12] omap: add basic SPL support Aneesh V
2011-07-16 13:36 ` Daniel Schwierzeck
2011-07-16 14:24 ` Aneesh V
2011-07-16 14:30 ` Aneesh V
2011-07-16 15:02 ` Wolfgang Denk
2011-07-18 9:42 ` Daniel Schwierzeck
2011-07-18 9:44 ` Aneesh V
2011-07-18 12:04 ` Wolfgang Denk
2011-07-18 13:21 ` Simon Schwarz
2011-07-18 13:26 ` Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 10/12] Correct ih_os for u-boot.img Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 11/12] omap: add MMC and FAT support to SPL Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 12/12] mkimage: Add OMAP boot image support Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 00/12] U-Boot MMC SPL for OMAP4 Aneesh V
2011-07-20 21:31 ` Paulraj, Sandeep
2011-07-21 5:48 ` V, Aneesh
2011-07-21 14:04 ` Paulraj, Sandeep
2011-07-21 7:15 ` V, Aneesh
2011-07-18 15:46 ` [U-Boot] [PATCH v4 01/12] omap4: utility function to identify the context of hw init Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 02/12] omap4: cleanup pin mux data Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 03/12] omap4: add OMAP4430 revision check Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 04/12] omap4: add clock support Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 05/12] omap4: add sdram init support Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 06/12] omap4: calculate EMIF register values Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 07/12] omap4: automatic sdram detection Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 08/12] armv7: start.S: fixes and enhancements for SPL Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 09/12] omap: add basic SPL support Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 10/12] Correct ih_os for u-boot.img Aneesh V
2011-07-28 15:17 ` Wolfgang Denk
2011-07-18 15:46 ` [U-Boot] [PATCH v4 11/12] omap: add MMC and FAT support to SPL Aneesh V
2011-07-19 9:16 ` Simon Schwarz
2011-07-19 11:16 ` Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 12/12] mkimage: Add OMAP boot image support Aneesh V
2011-07-28 15:21 ` Wolfgang Denk
2011-08-02 9:08 ` Reinhard Meyer
2011-08-02 11:29 ` Albert ARIBAUD
2011-08-02 11:58 ` Reinhard Meyer
2011-07-21 7:28 ` [U-Boot] [PATCH v4 00/12] U-Boot MMC SPL for OMAP4 Aneesh V
2011-07-21 13:12 ` Paulraj, Sandeep
2011-07-21 7:28 ` [U-Boot] [PATCH v4 01/12] omap4: utility function to identify the context of hw init Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 02/12] omap4: cleanup pin mux data Aneesh V
2011-07-28 19:26 ` Wolfgang Denk
2011-07-29 8:41 ` Aneesh V
2011-07-29 8:56 ` Wolfgang Denk
2011-07-29 10:41 ` Aneesh V
2011-07-29 11:45 ` Wolfgang Denk
2011-07-21 7:28 ` [U-Boot] [PATCH v4 03/12] omap4: add OMAP4430 revision check Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 04/12] omap4: add clock support Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 05/12] omap4: add sdram init support Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 06/12] omap4: calculate EMIF register values Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 07/12] omap4: automatic sdram detection Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 08/12] armv7: start.S: fixes and enhancements for SPL Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 09/12] omap: add basic SPL support Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 10/12] Correct ih_os for u-boot.img Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 11/12] omap: add MMC and FAT support to SPL Aneesh V
2011-07-21 7:28 ` [U-Boot] [PATCH v4 12/12] mkimage: Add OMAP boot image support Aneesh V
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1298893591-17636-13-git-send-email-aneesh@ti.com \
--to=aneesh@ti.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox