[U-Boot] [PATCH v4 3/4] kirkwood: make MPP arrays static const

Prafulla Wadaskar prafulla at marvell.com
Sat Nov 10 08:02:46 CET 2012



> -----Original Message-----
> From: Albert ARIBAUD [mailto:albert.u.boot at aribaud.net]
> Sent: 05 November 2012 05:02
> To: U-Boot
> Cc: Prafulla Wadaskar; Simon Guinot; Albert ARIBAUD
> Subject: [PATCH v4 3/4] kirkwood: make MPP arrays static const
> 
> This saves stack and code memory for local copy, and
> consumes initialized data memory. For 22 of the 29
> kirkwood-based boards, this results in a global saving
> of about 30 bytes. For 7 of them, it results in an
> increase of 6 to 14 bytes.

First of all Thanks for this patch.

> 
> Signed-off-by: Albert ARIBAUD <albert.u.boot at aribaud.net>
> ---
> 
>  arch/arm/cpu/arm926ejs/kirkwood/mpp.c           |    2 +-
>  arch/arm/include/asm/arch-kirkwood/mpp.h        |    2 +-
>  board/LaCie/net2big_v2/net2big_v2.c             |    2 +-
>  board/LaCie/netspace_v2/netspace_v2.c           |    2 +-
>  board/Marvell/dreamplug/dreamplug.c             |    2 +-
>  board/Marvell/guruplug/guruplug.c               |    2 +-
>  board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c |    2 +-
>  board/Marvell/openrd/openrd.c                   |    2 +-
>  board/Marvell/rd6281a/rd6281a.c                 |    2 +-
>  board/Marvell/sheevaplug/sheevaplug.c           |    2 +-
>  board/Seagate/dockstar/dockstar.c               |    2 +-
>  board/buffalo/lsxl/lsxl.c                       |    2 +-
>  board/cloudengines/pogo_e02/pogo_e02.c          |    2 +-
>  board/d-link/dns325/dns325.c                    |    2 +-
>  board/iomega/iconnect/iconnect.c                |    2 +-
>  board/karo/tk71/tk71.c                          |    2 +-
>  board/keymile/km_arm/km_arm.c                   |    2 +-
>  board/raidsonic/ib62x0/ib62x0.c                 |    2 +-
>  drivers/spi/kirkwood_spi.c                      |   12 +++++-------
>  19 files changed, 23 insertions(+), 25 deletions(-)
> 
> diff --git a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> index 03eb2de..0ba6f09 100644
> --- a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> +++ b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> @@ -31,7 +31,7 @@ static u32 kirkwood_variant(void)
>  #define MPP_CTRL(i)	(KW_MPP_BASE + (i* 4))
>  #define MPP_NR_REGS	(1 + MPP_MAX/8)
> 
> -void kirkwood_mpp_conf(u32 *mpp_list, u32 *mpp_save)
> +void kirkwood_mpp_conf(const u32 *mpp_list, u32 *mpp_save)
>  {
>  	u32 mpp_ctrl[MPP_NR_REGS];
>  	unsigned int variant_mask;
> diff --git a/arch/arm/include/asm/arch-kirkwood/mpp.h
> b/arch/arm/include/asm/arch-kirkwood/mpp.h
> index 8ceea7b..48d1477 100644
> --- a/arch/arm/include/asm/arch-kirkwood/mpp.h
> +++ b/arch/arm/include/asm/arch-kirkwood/mpp.h
> @@ -312,6 +312,6 @@
> 
>  #define MPP_MAX			49
> 
> -void kirkwood_mpp_conf(u32 *mpp_list, u32 *mpp_save);
> +void kirkwood_mpp_conf(const u32 *mpp_list, u32 *mpp_save);
> 
>  #endif
> diff --git a/board/LaCie/net2big_v2/net2big_v2.c
> b/board/LaCie/net2big_v2/net2big_v2.c
> index 0e06c29..e524f35 100644
> --- a/board/LaCie/net2big_v2/net2big_v2.c
> +++ b/board/LaCie/net2big_v2/net2big_v2.c
> @@ -39,7 +39,7 @@ int board_early_init_f(void)
>  			NET2BIG_V2_OE_LOW, NET2BIG_V2_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_SPI_SCn,
>  		MPP1_SPI_MOSI,
>  		MPP2_SPI_SCK,
> diff --git a/board/LaCie/netspace_v2/netspace_v2.c
> b/board/LaCie/netspace_v2/netspace_v2.c
> index 101a80a..0aa5345 100644
> --- a/board/LaCie/netspace_v2/netspace_v2.c
> +++ b/board/LaCie/netspace_v2/netspace_v2.c
> @@ -39,7 +39,7 @@ int board_early_init_f(void)
>  			NETSPACE_V2_OE_LOW, NETSPACE_V2_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_SPI_SCn,
>  		MPP1_SPI_MOSI,
>  		MPP2_SPI_SCK,
> diff --git a/board/Marvell/dreamplug/dreamplug.c
> b/board/Marvell/dreamplug/dreamplug.c
> index d6497aa..0caf34f 100644
> --- a/board/Marvell/dreamplug/dreamplug.c
> +++ b/board/Marvell/dreamplug/dreamplug.c
> @@ -46,7 +46,7 @@ int board_early_init_f(void)
>  			DREAMPLUG_OE_LOW, DREAMPLUG_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_SPI_SCn,		/* SPI Flash */
>  		MPP1_SPI_MOSI,
>  		MPP2_SPI_SCK,
> diff --git a/board/Marvell/guruplug/guruplug.c
> b/board/Marvell/guruplug/guruplug.c
> index f5c1c3c..3a52ab2 100644
> --- a/board/Marvell/guruplug/guruplug.c
> +++ b/board/Marvell/guruplug/guruplug.c
> @@ -43,7 +43,7 @@ int board_early_init_f(void)
>  			GURUPLUG_OE_LOW, GURUPLUG_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
> b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
> index 43852f6..fb57faa 100644
> --- a/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
> +++ b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
> @@ -45,7 +45,7 @@ int board_early_init_f(void)
>  			MV88F6281GTW_GE_OE_LOW, MV88F6281GTW_GE_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_SPI_SCn,
>  		MPP1_SPI_MOSI,
>  		MPP2_SPI_SCK,
> diff --git a/board/Marvell/openrd/openrd.c
> b/board/Marvell/openrd/openrd.c
> index d48f05a..c59a326 100644
> --- a/board/Marvell/openrd/openrd.c
> +++ b/board/Marvell/openrd/openrd.c
> @@ -48,7 +48,7 @@ int board_early_init_f(void)
>  			OPENRD_OE_LOW, OPENRD_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/board/Marvell/rd6281a/rd6281a.c
> b/board/Marvell/rd6281a/rd6281a.c
> index 1fd7677..adaa6a1 100644
> --- a/board/Marvell/rd6281a/rd6281a.c
> +++ b/board/Marvell/rd6281a/rd6281a.c
> @@ -44,7 +44,7 @@ int board_early_init_f(void)
>  			RD6281A_OE_LOW, RD6281A_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/board/Marvell/sheevaplug/sheevaplug.c
> b/board/Marvell/sheevaplug/sheevaplug.c
> index 688d308..16efe64 100644
> --- a/board/Marvell/sheevaplug/sheevaplug.c
> +++ b/board/Marvell/sheevaplug/sheevaplug.c
> @@ -43,7 +43,7 @@ int board_early_init_f(void)
>  			SHEEVAPLUG_OE_LOW, SHEEVAPLUG_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/board/Seagate/dockstar/dockstar.c
> b/board/Seagate/dockstar/dockstar.c
> index fc88520..4f1f899 100644
> --- a/board/Seagate/dockstar/dockstar.c
> +++ b/board/Seagate/dockstar/dockstar.c
> @@ -47,7 +47,7 @@ int board_early_init_f(void)
>  			DOCKSTAR_OE_LOW, DOCKSTAR_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/board/buffalo/lsxl/lsxl.c b/board/buffalo/lsxl/lsxl.c
> index 57776fb..f298020 100644
> --- a/board/buffalo/lsxl/lsxl.c
> +++ b/board/buffalo/lsxl/lsxl.c
> @@ -76,7 +76,7 @@ int board_early_init_f(void)
>  	 * Multi-Purpose Pins Functionality configuration
>  	 * These strappings are taken from the original vendor uboot port.
>  	 */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_SPI_SCn,
>  		MPP1_SPI_MOSI,
>  		MPP2_SPI_SCK,
> diff --git a/board/cloudengines/pogo_e02/pogo_e02.c
> b/board/cloudengines/pogo_e02/pogo_e02.c
> index bac9ce5..3b1c8ec 100644
> --- a/board/cloudengines/pogo_e02/pogo_e02.c
> +++ b/board/cloudengines/pogo_e02/pogo_e02.c
> @@ -45,7 +45,7 @@ int board_early_init_f(void)
>  			POGO_E02_OE_LOW, POGO_E02_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/board/d-link/dns325/dns325.c b/board/d-
> link/dns325/dns325.c
> index 11260fe..4187901 100644
> --- a/board/d-link/dns325/dns325.c
> +++ b/board/d-link/dns325/dns325.c
> @@ -44,7 +44,7 @@ int board_early_init_f(void)
>  			DNS325_OE_LOW, DNS325_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/board/iomega/iconnect/iconnect.c
> b/board/iomega/iconnect/iconnect.c
> index 6ee2128..c253df5 100644
> --- a/board/iomega/iconnect/iconnect.c
> +++ b/board/iomega/iconnect/iconnect.c
> @@ -41,7 +41,7 @@ int board_early_init_f(void)
>  			ICONNECT_OE_LOW, ICONNECT_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/board/karo/tk71/tk71.c b/board/karo/tk71/tk71.c
> index 96410d7..7a4e7b3 100644
> --- a/board/karo/tk71/tk71.c
> +++ b/board/karo/tk71/tk71.c
> @@ -47,7 +47,7 @@ int board_early_init_f(void)
>  			TK71_OE_LOW, TK71_OE_HIGH);
> 
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/board/keymile/km_arm/km_arm.c
> b/board/keymile/km_arm/km_arm.c
> index 0c4dddc..5fc46e6 100644
> --- a/board/keymile/km_arm/km_arm.c
> +++ b/board/keymile/km_arm/km_arm.c
> @@ -54,7 +54,7 @@ DECLARE_GLOBAL_DATA_PTR;
>  #define MASK_RBI_DEFECT_16	0x01
> 
>  /* Multi-Purpose Pins Functionality configuration */
> -u32 kwmpp_config[] = {
> +static const u32 kwmpp_config[] = {
>  	MPP0_NF_IO2,
>  	MPP1_NF_IO3,
>  	MPP2_NF_IO4,
> diff --git a/board/raidsonic/ib62x0/ib62x0.c
> b/board/raidsonic/ib62x0/ib62x0.c
> index b7e6e41..1e89b55 100644
> --- a/board/raidsonic/ib62x0/ib62x0.c
> +++ b/board/raidsonic/ib62x0/ib62x0.c
> @@ -45,7 +45,7 @@ int board_early_init_f(void)
>  	/* Set SATA activity LEDs to default off */
>  	writel(MVSATAHC_LED_POLARITY_CTRL, MVSATAHC_LED_CONF_REG);
>  	/* Multi-Purpose Pins Functionality configuration */
> -	u32 kwmpp_config[] = {
> +	static const u32 kwmpp_config[] = {
>  		MPP0_NF_IO2,
>  		MPP1_NF_IO3,
>  		MPP2_NF_IO4,
> diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
> index a7cda75..de81064 100644
> --- a/drivers/spi/kirkwood_spi.c
> +++ b/drivers/spi/kirkwood_spi.c
> @@ -41,7 +41,10 @@ struct spi_slave *spi_setup_slave(unsigned int bus,
> unsigned int cs,
>  {
>  	struct spi_slave *slave;
>  	u32 data;
> -	u32 kwspi_mpp_config[] = { 0, 0 };
> +	static const u32 kwspi_mpp_config[2][2] = {
> +		{ MPP0_SPI_SCn, 0 }, /* if cs == 0 */
> +		{ MPP7_SPI_SCn, 0 } /* if cs != 0 */
> +	};
> 
>  	if (!spi_cs_is_valid(bus, cs))
>  		return NULL;
> @@ -68,12 +71,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus,
> unsigned int cs,
>  	writel(KWSPI_IRQMASK, &spireg->irq_mask);
> 
>  	/* program mpp registers to select  SPI_CSn */
> -	if (cs) {
> -		kwspi_mpp_config[0] = MPP7_SPI_SCn;
> -	} else {
> -		kwspi_mpp_config[0] = MPP0_SPI_SCn;
> -	}
> -	kirkwood_mpp_conf(kwspi_mpp_config, cs_spi_mpp_back);
> +	kirkwood_mpp_conf(kwspi_mpp_config[cs ? 1 : 0], cs_spi_mpp_back);
> 
>  	return slave;
>  }
> --

Acked-by: Prafulla Wadaskar <Prafulla at marvell.com>

Regards...
Prafulla . . .


More information about the U-Boot mailing list