[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