[PATCH v3] omap: Unify run_shell() in xload configuration

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Fri Nov 11 05:43:34 EST 2011


On 16:33 Wed 12 Oct     , Sanjeev Premi wrote:
> Currently, there are multiple definitions of run_shell()
> for each board that can be build in "xload" configuration.
> Now there is only one function used by all boards.
> 
> The functions defined in xload.c are used only when "xload"
> configuration used; but it gets compiled unconditionally.
> This has been fixed as well.
> 
> Signed-off-by: Sanjeev Premi <premi at ti.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>


Best Regards,
J.
> ---
> 
>  Change in v3:
>     Added function omap_bootsrc() to replace the #ifdef
>     around the switch-case.
> 
>  Change in v2:
>     Fixed the typo in the subject s/iomap/omap/
>     ...observed when mail reached my inbox :(
> 
>  Only build tested with these commands:
>    make distclean ; make omap3530_beagle_defconfig ; make ;
>    make distclean ; make omap3530_beagle_xload_defconfig ; make ;
>    make distclean ; make panda_xload_defconfig ; make ;
>    make distclean ; make panda_defconfig ; make ;
>    make distclean ; make pcm049_defconfig ; make ;
>    make distclean ; make pcm049_xload_defconfig ; make ;
> 
> 
>  arch/arm/boards/omap/board-beagle.c |   31 --------------------------
>  arch/arm/boards/panda/board.c       |   19 ----------------
>  arch/arm/boards/pcm049/board.c      |   30 -------------------------
>  arch/arm/mach-omap/Makefile         |    3 +-
>  arch/arm/mach-omap/xload.c          |   41 +++++++++++++++++++++++++++++++++++
>  5 files changed, 43 insertions(+), 81 deletions(-)
> 
> diff --git a/arch/arm/boards/omap/board-beagle.c b/arch/arm/boards/omap/board-beagle.c
> index 4e7f179..bcebd5c 100644
> --- a/arch/arm/boards/omap/board-beagle.c
> +++ b/arch/arm/boards/omap/board-beagle.c
> @@ -313,34 +313,3 @@ static int beagle_devices_init(void)
>  	return 0;
>  }
>  device_initcall(beagle_devices_init);
> -
> -#ifdef CONFIG_SHELL_NONE
> -
> -int run_shell(void)
> -{
> -	int (*func)(void) = NULL;
> -
> -	switch (omap3_bootsrc()) {
> -	case OMAP_BOOTSRC_MMC1:
> -		printf("booting from MMC1\n");
> -		func = omap_xload_boot_mmc();
> -		break;
> -	case OMAP_BOOTSRC_UNKNOWN:
> -		printf("unknown boot source. Fall back to nand\n");
> -	case OMAP_BOOTSRC_NAND:
> -		printf("booting from NAND\n");
> -		func = omap_xload_boot_nand(SZ_128K, SZ_256K);
> -		break;
> -	}
> -
> -	if (!func) {
> -		printf("booting failed\n");
> -		while (1);
> -	}
> -
> -	shutdown_barebox();
> -	func();
> -
> -	while (1);
> -}
> -#endif
> diff --git a/arch/arm/boards/panda/board.c b/arch/arm/boards/panda/board.c
> index 33ec144..cfc5bb9 100644
> --- a/arch/arm/boards/panda/board.c
> +++ b/arch/arm/boards/panda/board.c
> @@ -170,22 +170,3 @@ static int panda_env_init(void)
>  }
>  late_initcall(panda_env_init);
>  #endif
> -
> -
> -#ifdef CONFIG_SHELL_NONE
> -int run_shell(void)
> -{
> -	int (*func)(void);
> -
> -	func = omap_xload_boot_mmc();
> -	if (!func) {
> -		printf("booting failed\n");
> -		while (1);
> -	}
> -
> -	shutdown_barebox();
> -	func();
> -
> -	while (1);
> -}
> -#endif
> diff --git a/arch/arm/boards/pcm049/board.c b/arch/arm/boards/pcm049/board.c
> index 3d02779..6814b59 100644
> --- a/arch/arm/boards/pcm049/board.c
> +++ b/arch/arm/boards/pcm049/board.c
> @@ -112,33 +112,3 @@ static int pcm049_devices_init(void)
>  	return 0;
>  }
>  device_initcall(pcm049_devices_init);
> -
> -#ifdef CONFIG_SHELL_NONE
> -int run_shell(void)
> -{
> -	int (*func)(void) = NULL;
> -
> -	switch (omap4_bootsrc()) {
> -	case OMAP_BOOTSRC_MMC1:
> -		printf("booting from MMC1\n");
> -		func = omap_xload_boot_mmc();
> -		break;
> -	case OMAP_BOOTSRC_UNKNOWN:
> -		printf("unknown boot source. Fall back to nand\n");
> -	case OMAP_BOOTSRC_NAND:
> -		printf("booting from NAND\n");
> -		func = omap_xload_boot_nand(SZ_128K, SZ_256K);
> -		break;
> -	}
> -
> -	if (!func) {
> -		printf("booting failed\n");
> -		while (1);
> -	}
> -
> -	shutdown_barebox();
> -	func();
> -
> -	while (1);
> -}
> -#endif
> diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile
> index 7204746..07bf30a 100644
> --- a/arch/arm/mach-omap/Makefile
> +++ b/arch/arm/mach-omap/Makefile
> @@ -25,4 +25,5 @@ obj-$(CONFIG_ARCH_OMAP3) += omap3_core.o omap3_generic.o
>  obj-$(CONFIG_ARCH_OMAP4) += omap4_generic.o omap4_clock.o
>  obj-$(CONFIG_OMAP3_CLOCK_CONFIG) += omap3_clock_core.o omap3_clock.o
>  obj-$(CONFIG_OMAP_GPMC) += gpmc.o devices-gpmc-nand.o
> -obj-y += gpio.o xload.o
> +obj-$(CONFIG_SHELL_NONE) += xload.o
> +obj-y += gpio.o
> diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
> index 216b9b5..a52a8ba 100644
> --- a/arch/arm/mach-omap/xload.c
> +++ b/arch/arm/mach-omap/xload.c
> @@ -52,3 +52,44 @@ void *omap_xload_boot_mmc(void)
>  
>  	return buf;
>  }
> +
> +enum omap_boot_src omap_bootsrc(void)
> +{
> +#if defined(CONFIG_ARCH_OMAP3)
> +	return omap3_bootsrc();
> +#elif defined(CONFIG_ARCH_OMAP4)
> +	return omap4_bootsrc();
> +#endif
> +}
> +
> +/*
> + * Replaces the default shell in xload configuration
> + */
> +int run_shell(void)
> +{
> +	int (*func)(void) = NULL;
> +
> +	switch (omap_bootsrc())
> +	{
> +	case OMAP_BOOTSRC_MMC1:
> +		printf("booting from MMC1\n");
> +		func = omap_xload_boot_mmc();
> +		break;
> +	case OMAP_BOOTSRC_UNKNOWN:
> +		printf("unknown boot source. Fall back to nand\n");
> +	case OMAP_BOOTSRC_NAND:
> +		printf("booting from NAND\n");
> +		func = omap_xload_boot_nand(SZ_128K, SZ_256K);
> +		break;
> +	}
> +
> +	if (!func) {
> +		printf("booting failed\n");
> +		while (1);
> +	}
> +
> +	shutdown_barebox();
> +	func();
> +
> +	while (1);
> +}
> -- 
> 1.7.0.4
> 
> 
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox



More information about the barebox mailing list