Re: [U-Boot] [PATCH] armv7:TI: Add asm/ti-common/sys_proto.h and migrate omap_hw_init_context

2014-05-18 Thread Lokesh Vutla
Hi Tom,
On Friday 16 May 2014 10:32 PM, Tom Rini wrote:
 The omap_hw_init_context function (and assorted helpers) is the same for
 all OMAP-derived parts as when CHSETTINGS are used, that's the same and
 our DDR base is also always the same.  In order to make this common we
 simply need to update the names of the define for DDR address space
 which is also common.
Reviewed-by: Lokesh Vutla lokeshvu...@ti.com

Thanks and regards,
Lokesh
 
 Cc: Sricharan R. r.sricha...@ti.com
 Cc: Lokesh Vutla lokeshvu...@ti.com
 Signed-off-by: Tom Rini tr...@ti.com

 ---
  arch/arm/cpu/armv7/omap-common/hwinit-common.c |4 +-
  arch/arm/include/asm/arch-am33xx/sys_proto.h   |1 +
  arch/arm/include/asm/arch-omap4/sys_proto.h|   51 +
  arch/arm/include/asm/arch-omap5/omap.h |5 --
  arch/arm/include/asm/arch-omap5/sys_proto.h|   50 +---
  arch/arm/include/asm/omap_common.h |6 --
  arch/arm/include/asm/ti-common/sys_proto.h |   72 
 
  7 files changed, 77 insertions(+), 112 deletions(-)
  create mode 100644 arch/arm/include/asm/ti-common/sys_proto.h
 
 diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c 
 b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
 index 8ebc0ce..132454c 100644
 --- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c
 +++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
 @@ -194,8 +194,8 @@ u32 omap_sdram_size(void)
   addr = section  EMIF_SYS_ADDR_MASK;
  
   /* See if the address is valid */
 - if ((addr = DRAM_ADDR_SPACE_START) 
 - (addr  DRAM_ADDR_SPACE_END)) {
 + if ((addr = TI_ARMV7_DRAM_ADDR_SPACE_START) 
 + (addr  TI_ARMV7_DRAM_ADDR_SPACE_END)) {
   size = ((section  EMIF_SYS_SIZE_MASK) 
  EMIF_SYS_SIZE_SHIFT);
   size = 1  size;
 diff --git a/arch/arm/include/asm/arch-am33xx/sys_proto.h 
 b/arch/arm/include/asm/arch-am33xx/sys_proto.h
 index 91ff2ad..33a82fc 100644
 --- a/arch/arm/include/asm/arch-am33xx/sys_proto.h
 +++ b/arch/arm/include/asm/arch-am33xx/sys_proto.h
 @@ -11,6 +11,7 @@
  #ifndef _SYS_PROTO_H_
  #define _SYS_PROTO_H_
  #include linux/mtd/omap_gpmc.h
 +#include asm/ti-common/sys_proto.h
  #include asm/arch/cpu.h
  
  #define BOARD_REV_ID 0x0
 diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h 
 b/arch/arm/include/asm/arch-omap4/sys_proto.h
 index 80172f3..83d858f 100644
 --- a/arch/arm/include/asm/arch-omap4/sys_proto.h
 +++ b/arch/arm/include/asm/arch-omap4/sys_proto.h
 @@ -14,6 +14,7 @@
  #include asm/omap_common.h
  #include linux/mtd/omap_gpmc.h
  #include asm/arch/mux_omap4.h
 +#include asm/ti-common/sys_proto.h
  
  DECLARE_GLOBAL_DATA_PTR;
  
 @@ -53,54 +54,4 @@ int omap_vc_bypass_send_value(u8 sa, u8 reg_addr, u8 
 reg_data);
  u32 warm_reset(void);
  void force_emif_self_refresh(void);
  void setup_warmreset_time(void);
 -
 -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)
 -{
 - /*
 -  * u-boot can be running from sdram either because of configuration
 -  * Header or by SPL. If because of CH, then the romcode sets the
 -  * CHSETTINGS executed bit to true in the boot parameter structure that
 -  * it passes to the bootloader.This parameter is stored in the ch_flags
 -  * variable by both SPL and u-boot.Check out for CHSETTINGS, which is a
 -  * mandatory section if CH is present.
 -  */
 - if ((gd-arch.omap_boot_params.ch_flags)  (CH_FLAGS_CHSETTINGS))
 - return 0;
 - else
 - 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 omap_hw_init_context(void)
 -{
 -#ifdef CONFIG_SPL_BUILD
 - return OMAP_INIT_CONTEXT_SPL;
 -#else
 - if (uboot_loaded_by_spl())
 - return OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL;
 - else if (running_from_sdram())
 - return OMAP_INIT_CONTEXT_UBOOT_AFTER_CH;
 - else
 - return OMAP_INIT_CONTEXT_UBOOT_FROM_NOR;
 -#endif
 -}
 -
  #endif
 diff --git a/arch/arm/include/asm/arch-omap5/omap.h 
 b/arch/arm/include/asm/arch-omap5/omap.h
 index 19fdece..54fc825 100644
 --- a/arch/arm/include/asm/arch-omap5/omap.h
 +++ b/arch/arm/include/asm/arch-omap5/omap.h
 @@ -23,11 +23,6 @@
  #define OMAP54XX_L4_WKUP_BASE0x4Ae0
  #define OMAP54XX_L4_PER_BASE 

[U-Boot] [PATCH] armv7:TI: Add asm/ti-common/sys_proto.h and migrate omap_hw_init_context

2014-05-16 Thread Tom Rini
The omap_hw_init_context function (and assorted helpers) is the same for
all OMAP-derived parts as when CHSETTINGS are used, that's the same and
our DDR base is also always the same.  In order to make this common we
simply need to update the names of the define for DDR address space
which is also common.

Cc: Sricharan R. r.sricha...@ti.com
Cc: Lokesh Vutla lokeshvu...@ti.com
Signed-off-by: Tom Rini tr...@ti.com
---
 arch/arm/cpu/armv7/omap-common/hwinit-common.c |4 +-
 arch/arm/include/asm/arch-am33xx/sys_proto.h   |1 +
 arch/arm/include/asm/arch-omap4/sys_proto.h|   51 +
 arch/arm/include/asm/arch-omap5/omap.h |5 --
 arch/arm/include/asm/arch-omap5/sys_proto.h|   50 +---
 arch/arm/include/asm/omap_common.h |6 --
 arch/arm/include/asm/ti-common/sys_proto.h |   72 
 7 files changed, 77 insertions(+), 112 deletions(-)
 create mode 100644 arch/arm/include/asm/ti-common/sys_proto.h

diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c 
b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
index 8ebc0ce..132454c 100644
--- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c
+++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
@@ -194,8 +194,8 @@ u32 omap_sdram_size(void)
addr = section  EMIF_SYS_ADDR_MASK;
 
/* See if the address is valid */
-   if ((addr = DRAM_ADDR_SPACE_START) 
-   (addr  DRAM_ADDR_SPACE_END)) {
+   if ((addr = TI_ARMV7_DRAM_ADDR_SPACE_START) 
+   (addr  TI_ARMV7_DRAM_ADDR_SPACE_END)) {
size = ((section  EMIF_SYS_SIZE_MASK) 
   EMIF_SYS_SIZE_SHIFT);
size = 1  size;
diff --git a/arch/arm/include/asm/arch-am33xx/sys_proto.h 
b/arch/arm/include/asm/arch-am33xx/sys_proto.h
index 91ff2ad..33a82fc 100644
--- a/arch/arm/include/asm/arch-am33xx/sys_proto.h
+++ b/arch/arm/include/asm/arch-am33xx/sys_proto.h
@@ -11,6 +11,7 @@
 #ifndef _SYS_PROTO_H_
 #define _SYS_PROTO_H_
 #include linux/mtd/omap_gpmc.h
+#include asm/ti-common/sys_proto.h
 #include asm/arch/cpu.h
 
 #define BOARD_REV_ID   0x0
diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h 
b/arch/arm/include/asm/arch-omap4/sys_proto.h
index 80172f3..83d858f 100644
--- a/arch/arm/include/asm/arch-omap4/sys_proto.h
+++ b/arch/arm/include/asm/arch-omap4/sys_proto.h
@@ -14,6 +14,7 @@
 #include asm/omap_common.h
 #include linux/mtd/omap_gpmc.h
 #include asm/arch/mux_omap4.h
+#include asm/ti-common/sys_proto.h
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -53,54 +54,4 @@ int omap_vc_bypass_send_value(u8 sa, u8 reg_addr, u8 
reg_data);
 u32 warm_reset(void);
 void force_emif_self_refresh(void);
 void setup_warmreset_time(void);
-
-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)
-{
-   /*
-* u-boot can be running from sdram either because of configuration
-* Header or by SPL. If because of CH, then the romcode sets the
-* CHSETTINGS executed bit to true in the boot parameter structure that
-* it passes to the bootloader.This parameter is stored in the ch_flags
-* variable by both SPL and u-boot.Check out for CHSETTINGS, which is a
-* mandatory section if CH is present.
-*/
-   if ((gd-arch.omap_boot_params.ch_flags)  (CH_FLAGS_CHSETTINGS))
-   return 0;
-   else
-   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 omap_hw_init_context(void)
-{
-#ifdef CONFIG_SPL_BUILD
-   return OMAP_INIT_CONTEXT_SPL;
-#else
-   if (uboot_loaded_by_spl())
-   return OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL;
-   else if (running_from_sdram())
-   return OMAP_INIT_CONTEXT_UBOOT_AFTER_CH;
-   else
-   return OMAP_INIT_CONTEXT_UBOOT_FROM_NOR;
-#endif
-}
-
 #endif
diff --git a/arch/arm/include/asm/arch-omap5/omap.h 
b/arch/arm/include/asm/arch-omap5/omap.h
index 19fdece..54fc825 100644
--- a/arch/arm/include/asm/arch-omap5/omap.h
+++ b/arch/arm/include/asm/arch-omap5/omap.h
@@ -23,11 +23,6 @@
 #define OMAP54XX_L4_WKUP_BASE  0x4Ae0
 #define OMAP54XX_L4_PER_BASE   0x4800
 
-#define OMAP54XX_DRAM_ADDR_SPACE_START 0x8000
-#define OMAP54XX_DRAM_ADDR_SPACE_END   0x
-#define DRAM_ADDR_SPACE_START  OMAP54XX_DRAM_ADDR_SPACE_START
-#define