Re: [U-Boot] [PATCH 1/4] ARM: socfpga: Factor out handoff register configuration

2019-04-22 Thread Simon Goldschmidt

Am 22.04.2019 um 19:59 schrieb Marek Vasut:

On 4/19/19 9:47 PM, Simon Goldschmidt wrote:



On 17.04.19 22:15, Marek Vasut wrote:

Factor out the code for programming preloader handoff register values,
the ISWGRP Handoff 0 and 1. These registers later control which bridges
are enabled by the "bridge" command on Gen5 devices.

Signed-off-by: Marek Vasut 
Cc: Chin Liang See 
Cc: Dinh Nguyen 
Cc: Simon Goldschmidt 
Cc: Tien Fong Chee 
---
   .../include/mach/reset_manager_gen5.h |  1 +
   arch/arm/mach-socfpga/reset_manager_gen5.c    | 25 +--
   2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
b/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
index dd58922cec..5e490d182e 100644
--- a/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
+++ b/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
@@ -9,6 +9,7 @@
   #include 
     void reset_deassert_peripherals_handoff(void);
+void socfpga_bridges_set_handoff_regs(bool h2f, bool lwh2f, bool f2h);
   void socfpga_bridges_reset(int enable);
     struct socfpga_reset_manager {
diff --git a/arch/arm/mach-socfpga/reset_manager_gen5.c
b/arch/arm/mach-socfpga/reset_manager_gen5.c
index 25baef79bc..66af924485 100644
--- a/arch/arm/mach-socfpga/reset_manager_gen5.c
+++ b/arch/arm/mach-socfpga/reset_manager_gen5.c
@@ -73,6 +73,28 @@ void reset_deassert_peripherals_handoff(void)
   #define L3REGS_REMAP_HPS2FPGA_MASK    0x08
   #define L3REGS_REMAP_OCRAM_MASK    0x01
   +void socfpga_bridges_set_handoff_regs(bool h2f, bool lwh2f, bool f2h)
+{
+    u32 brgmask = 0x0;
+    u32 l3rmask = L3REGS_REMAP_OCRAM_MASK;
+
+    if (h2f)
+    brgmask |= BIT(0);
+    else
+    l3rmask |= L3REGS_REMAP_HPS2FPGA_MASK;
+
+    if (lwh2f)
+    brgmask |= BIT(1);
+    else
+    l3rmask |= L3REGS_REMAP_LWHPS2FPGA_MASK;
+
+    if (f2h)
+    brgmask |= BIT(2);
+
+    writel(brgmask, _regs->iswgrp_handoff[0]);
+    writel(l3rmask, _regs->iswgrp_handoff[1]);
+}
+
   void socfpga_bridges_reset(int enable)
   {
   const u32 l3mask = L3REGS_REMAP_LWHPS2FPGA_MASK |


'l3mask' seems unused after this change, no?


Nope, it's still used in the else {} branch of the conditional below.


Oops, missed that. In that case:

Reviewed-by: Simon Goldschmidt 



[...]


@@ -83,8 +105,7 @@ void socfpga_bridges_reset(int enable)
   /* brdmodrst */
   writel(0x, _manager_base->brg_mod_reset);
   } else {
-    writel(0, _regs->iswgrp_handoff[0]);
-    writel(l3mask, _regs->iswgrp_handoff[1]);
+    socfpga_bridges_set_handoff_regs(false, false, false);
     /* Check signal from FPGA. */
   if (!fpgamgr_test_fpga_ready()) {






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


Re: [U-Boot] [PATCH 1/4] ARM: socfpga: Factor out handoff register configuration

2019-04-22 Thread Marek Vasut
On 4/19/19 9:47 PM, Simon Goldschmidt wrote:
> 
> 
> On 17.04.19 22:15, Marek Vasut wrote:
>> Factor out the code for programming preloader handoff register values,
>> the ISWGRP Handoff 0 and 1. These registers later control which bridges
>> are enabled by the "bridge" command on Gen5 devices.
>>
>> Signed-off-by: Marek Vasut 
>> Cc: Chin Liang See 
>> Cc: Dinh Nguyen 
>> Cc: Simon Goldschmidt 
>> Cc: Tien Fong Chee 
>> ---
>>   .../include/mach/reset_manager_gen5.h |  1 +
>>   arch/arm/mach-socfpga/reset_manager_gen5.c    | 25 +--
>>   2 files changed, 24 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
>> b/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
>> index dd58922cec..5e490d182e 100644
>> --- a/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
>> +++ b/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
>> @@ -9,6 +9,7 @@
>>   #include 
>>     void reset_deassert_peripherals_handoff(void);
>> +void socfpga_bridges_set_handoff_regs(bool h2f, bool lwh2f, bool f2h);
>>   void socfpga_bridges_reset(int enable);
>>     struct socfpga_reset_manager {
>> diff --git a/arch/arm/mach-socfpga/reset_manager_gen5.c
>> b/arch/arm/mach-socfpga/reset_manager_gen5.c
>> index 25baef79bc..66af924485 100644
>> --- a/arch/arm/mach-socfpga/reset_manager_gen5.c
>> +++ b/arch/arm/mach-socfpga/reset_manager_gen5.c
>> @@ -73,6 +73,28 @@ void reset_deassert_peripherals_handoff(void)
>>   #define L3REGS_REMAP_HPS2FPGA_MASK    0x08
>>   #define L3REGS_REMAP_OCRAM_MASK    0x01
>>   +void socfpga_bridges_set_handoff_regs(bool h2f, bool lwh2f, bool f2h)
>> +{
>> +    u32 brgmask = 0x0;
>> +    u32 l3rmask = L3REGS_REMAP_OCRAM_MASK;
>> +
>> +    if (h2f)
>> +    brgmask |= BIT(0);
>> +    else
>> +    l3rmask |= L3REGS_REMAP_HPS2FPGA_MASK;
>> +
>> +    if (lwh2f)
>> +    brgmask |= BIT(1);
>> +    else
>> +    l3rmask |= L3REGS_REMAP_LWHPS2FPGA_MASK;
>> +
>> +    if (f2h)
>> +    brgmask |= BIT(2);
>> +
>> +    writel(brgmask, _regs->iswgrp_handoff[0]);
>> +    writel(l3rmask, _regs->iswgrp_handoff[1]);
>> +}
>> +
>>   void socfpga_bridges_reset(int enable)
>>   {
>>   const u32 l3mask = L3REGS_REMAP_LWHPS2FPGA_MASK |
> 
> 'l3mask' seems unused after this change, no?

Nope, it's still used in the else {} branch of the conditional below.

[...]

>> @@ -83,8 +105,7 @@ void socfpga_bridges_reset(int enable)
>>   /* brdmodrst */
>>   writel(0x, _manager_base->brg_mod_reset);
>>   } else {
>> -    writel(0, _regs->iswgrp_handoff[0]);
>> -    writel(l3mask, _regs->iswgrp_handoff[1]);
>> +    socfpga_bridges_set_handoff_regs(false, false, false);
>>     /* Check signal from FPGA. */
>>   if (!fpgamgr_test_fpga_ready()) {
>>


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 1/4] ARM: socfpga: Factor out handoff register configuration

2019-04-19 Thread Simon Goldschmidt



On 17.04.19 22:15, Marek Vasut wrote:

Factor out the code for programming preloader handoff register values,
the ISWGRP Handoff 0 and 1. These registers later control which bridges
are enabled by the "bridge" command on Gen5 devices.

Signed-off-by: Marek Vasut 
Cc: Chin Liang See 
Cc: Dinh Nguyen 
Cc: Simon Goldschmidt 
Cc: Tien Fong Chee 
---
  .../include/mach/reset_manager_gen5.h |  1 +
  arch/arm/mach-socfpga/reset_manager_gen5.c| 25 +--
  2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h 
b/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
index dd58922cec..5e490d182e 100644
--- a/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
+++ b/arch/arm/mach-socfpga/include/mach/reset_manager_gen5.h
@@ -9,6 +9,7 @@
  #include 
  
  void reset_deassert_peripherals_handoff(void);

+void socfpga_bridges_set_handoff_regs(bool h2f, bool lwh2f, bool f2h);
  void socfpga_bridges_reset(int enable);
  
  struct socfpga_reset_manager {

diff --git a/arch/arm/mach-socfpga/reset_manager_gen5.c 
b/arch/arm/mach-socfpga/reset_manager_gen5.c
index 25baef79bc..66af924485 100644
--- a/arch/arm/mach-socfpga/reset_manager_gen5.c
+++ b/arch/arm/mach-socfpga/reset_manager_gen5.c
@@ -73,6 +73,28 @@ void reset_deassert_peripherals_handoff(void)
  #define L3REGS_REMAP_HPS2FPGA_MASK0x08
  #define L3REGS_REMAP_OCRAM_MASK   0x01
  
+void socfpga_bridges_set_handoff_regs(bool h2f, bool lwh2f, bool f2h)

+{
+   u32 brgmask = 0x0;
+   u32 l3rmask = L3REGS_REMAP_OCRAM_MASK;
+
+   if (h2f)
+   brgmask |= BIT(0);
+   else
+   l3rmask |= L3REGS_REMAP_HPS2FPGA_MASK;
+
+   if (lwh2f)
+   brgmask |= BIT(1);
+   else
+   l3rmask |= L3REGS_REMAP_LWHPS2FPGA_MASK;
+
+   if (f2h)
+   brgmask |= BIT(2);
+
+   writel(brgmask, _regs->iswgrp_handoff[0]);
+   writel(l3rmask, _regs->iswgrp_handoff[1]);
+}
+
  void socfpga_bridges_reset(int enable)
  {
const u32 l3mask = L3REGS_REMAP_LWHPS2FPGA_MASK |


'l3mask' seems unused after this change, no?

Other than that:
Reviewed-by: Simon Goldschmidt 


@@ -83,8 +105,7 @@ void socfpga_bridges_reset(int enable)
/* brdmodrst */
writel(0x, _manager_base->brg_mod_reset);
} else {
-   writel(0, _regs->iswgrp_handoff[0]);
-   writel(l3mask, _regs->iswgrp_handoff[1]);
+   socfpga_bridges_set_handoff_regs(false, false, false);
  
  		/* Check signal from FPGA. */

if (!fpgamgr_test_fpga_ready()) {


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