Message ID | 1296854081-10176-1-git-send-email-galak@kernel.crashing.org |
---|---|
State | Accepted |
Commit | 7639675131673e8f1582d760203a9af34fba9e79 |
Delegated to: | Kumar Gala |
Headers | show |
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 <galak@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
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,
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 <galak@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(-)