Re: [U-Boot] [PATCH v3] powerpc/8xxx: Fix LAW init to respect pre-initialized entries

2011-02-09 Thread Kumar Gala

On Feb 4, 2011, at 3:14 PM, Kumar Gala wrote:

 If some pre-boot or earlier stage bootloader (NAND SPL) has setup LAW
 entries consider them good and mark them used.
 
 In the NAND SPL case we skip re-initializing based on the law_table
 since the SPL phase already did that.
 
 Signed-off-by: Kumar Gala ga...@kernel.crashing.org
 ---
 * Fix problem in non-NAND case we didn't set the law_table
 
 drivers/misc/fsl_law.c |   20 
 1 files changed, 20 insertions(+), 0 deletions(-)

applied to 85xx next

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


[U-Boot] [PATCH v3] powerpc/8xxx: Fix LAW init to respect pre-initialized entries

2011-02-04 Thread Kumar Gala
If some pre-boot or earlier stage bootloader (NAND SPL) has setup LAW
entries consider them good and mark them used.

In the NAND SPL case we skip re-initializing based on the law_table
since the SPL phase already did that.

Signed-off-by: Kumar Gala ga...@kernel.crashing.org
---
* Fix problem in non-NAND case we didn't set the law_table

 drivers/misc/fsl_law.c |   20 
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/drivers/misc/fsl_law.c b/drivers/misc/fsl_law.c
index 63c08bf..e440d29 100644
--- a/drivers/misc/fsl_law.c
+++ b/drivers/misc/fsl_law.c
@@ -24,6 +24,7 @@
  */
 
 #include common.h
+#include linux/compiler.h
 #include asm/fsl_law.h
 #include asm/io.h
 
@@ -246,6 +247,25 @@ void init_laws(void)
 #error FSL_HW_NUM_LAWS can not be greater than 32 w/o code changes
 #endif
 
+   /* 
+* Any LAWs that were set up before we booted assume they are meant to
+* be around and mark them used.
+*/
+   for (i = 0; i  FSL_HW_NUM_LAWS; i++) {
+   u32 lawar = in_be32(LAWAR_ADDR(i));
+   
+   if (lawar  LAW_EN)
+   gd-used_laws |= (1  i);
+   }
+
+#if defined(CONFIG_NAND_U_BOOT)  !defined(CONFIG_NAND_SPL)
+   /*
+* in NAND boot we've already parsed the law_table and setup those LAWs
+* so don't do it again.
+*/
+   return;
+#endif
+
for (i = 0; i  num_law_entries; i++) {
if (law_table[i].index == -1)
set_next_law(law_table[i].addr, law_table[i].size,
-- 
1.7.2.3

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