Re: [U-Boot] [PATCH v2 1/2] ARM: HYP/non-sec: Make variable gic_dist_addr as a local one

2015-01-24 Thread York Sun


On 12/16/2014 10:58 PM, Tang Yuantian wrote:
 Defining variable gic_dist_addr as a globe one prevents some
 functions, which use it, from being used before relocation
 which is the case in the deep sleep resume process on Freescale
 SoC platforms.
 Besides, we can always get the GIC base address by calling
 get_gicd_base_address() without referring gic_dist_addr.
 
 Signed-off-by: Tang Yuantian yuantian.t...@freescale.com
 ---
 v2:
   - change variable gic_dist_addr back as local
 

Applied to u-boot-fsl-qoriq master branch, awaiting upstream.

York

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v2 1/2] ARM: HYP/non-sec: Make variable gic_dist_addr as a local one

2015-01-14 Thread York Sun
Albert,

On 12/16/2014 08:58 PM, Tang Yuantian wrote:
 Defining variable gic_dist_addr as a globe one prevents some
 functions, which use it, from being used before relocation
 which is the case in the deep sleep resume process on Freescale
 SoC platforms.
 Besides, we can always get the GIC base address by calling
 get_gicd_base_address() without referring gic_dist_addr.
 
 Signed-off-by: Tang Yuantian yuantian.t...@freescale.com
 ---
 v2:
   - change variable gic_dist_addr back as local
 
  arch/arm/cpu/armv7/virt-v7.c | 9 +++--
  1 file changed, 7 insertions(+), 2 deletions(-)
 
 diff --git a/arch/arm/cpu/armv7/virt-v7.c b/arch/arm/cpu/armv7/virt-v7.c
 index 651ca40..b69fd37 100644
 --- a/arch/arm/cpu/armv7/virt-v7.c
 +++ b/arch/arm/cpu/armv7/virt-v7.c
 @@ -15,8 +15,6 @@
  #include asm/io.h
  #include asm/secure.h
  
 -unsigned long gic_dist_addr;
 -
  static unsigned int read_id_pfr1(void)
  {
   unsigned int reg;
 @@ -68,6 +66,12 @@ static void kick_secondary_cpus_gic(unsigned long gicdaddr)
  
  void __weak smp_kick_all_cpus(void)
  {
 + unsigned long gic_dist_addr;
 +
 + gic_dist_addr = get_gicd_base_address();
 + if (gic_dist_addr == -1)
 + return;
 +
   kick_secondary_cpus_gic(gic_dist_addr);
  }
  
 @@ -75,6 +79,7 @@ int armv7_init_nonsec(void)
  {
   unsigned int reg;
   unsigned itlinesnr, i;
 + unsigned long gic_dist_addr;
  
   /* check whether the CPU supports the security extensions */
   reg = read_id_pfr1();
 

I think this patch is OK. If you don't have objection, I will bring it in.

York
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v2 1/2] ARM: HYP/non-sec: Make variable gic_dist_addr as a local one

2014-12-16 Thread Tang Yuantian
Defining variable gic_dist_addr as a globe one prevents some
functions, which use it, from being used before relocation
which is the case in the deep sleep resume process on Freescale
SoC platforms.
Besides, we can always get the GIC base address by calling
get_gicd_base_address() without referring gic_dist_addr.

Signed-off-by: Tang Yuantian yuantian.t...@freescale.com
---
v2:
- change variable gic_dist_addr back as local

 arch/arm/cpu/armv7/virt-v7.c | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/arm/cpu/armv7/virt-v7.c b/arch/arm/cpu/armv7/virt-v7.c
index 651ca40..b69fd37 100644
--- a/arch/arm/cpu/armv7/virt-v7.c
+++ b/arch/arm/cpu/armv7/virt-v7.c
@@ -15,8 +15,6 @@
 #include asm/io.h
 #include asm/secure.h
 
-unsigned long gic_dist_addr;
-
 static unsigned int read_id_pfr1(void)
 {
unsigned int reg;
@@ -68,6 +66,12 @@ static void kick_secondary_cpus_gic(unsigned long gicdaddr)
 
 void __weak smp_kick_all_cpus(void)
 {
+   unsigned long gic_dist_addr;
+
+   gic_dist_addr = get_gicd_base_address();
+   if (gic_dist_addr == -1)
+   return;
+
kick_secondary_cpus_gic(gic_dist_addr);
 }
 
@@ -75,6 +79,7 @@ int armv7_init_nonsec(void)
 {
unsigned int reg;
unsigned itlinesnr, i;
+   unsigned long gic_dist_addr;
 
/* check whether the CPU supports the security extensions */
reg = read_id_pfr1();
-- 
2.1.0.27.g96db324

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot