[U-Boot] [PATCH v2 0/58] Move arch-specific global data into its own structure

Tom Rini trini at ti.com
Mon Feb 4 17:36:43 CET 2013


On Thu, Dec 13, 2012 at 10:48:29PM -0800, Simon Glass wrote:

> The previous generic board series hit a snag in that we needed generic
> code to access some of the architecture-specific fields in global_data.
> 
> The solution eventually arrived at was to move these fields into a
> separate structure, so that global_data has the generic fields,
> and within that there is an arch_global_data structure holding the
> architecture-specific ones.
> 
> This series makes that change. Assuming this is reasonable, the next
> step is to bring back the generic board patches on top of this.
> 
> A couple of things are left undone in this series:
> - possibly unify brg_clk on powerpc (but that would involve unifying some
> ifdefs
> - decide what to do about PCI clock being present with there is no
> CONFIG_PCI. It seem wrong to me, but I haven't changed it for this series.
> 
> I have completed a build of all commits for all builds and see no
> regressions. But the following boards had errors/warnings, so it seems I
> need to continue working on my toolchains:
> 
>   blackfin:   + bf561-acvilon  + dnp5370  + cm-bf561  + blackstamp  + br4
> + bct-brettl2  + cm-bf527  + bf506f-ezkit  + ip04  + bf527-sdp  +
> bf537-stamp  + bf527-ezkit-v2  + cm-bf537e  + tcm-bf518  + cm-bf537u  +
> bf527-ezkit  + bf537-pnav  + cm-bf533  + pr1  + bf533-ezkit  + ibf-dsp561  +
> bf537-srv1  + cm-bf548  + bf537-minotaur  + bf538f-ezkit  + bf548-ezkit  +
> bf525-ucr2  + blackvme  + tcm-bf537  + bf533-stamp  + bf518f-ezbrd  +
> bf527-ad7160-eval  + bf526-ezbrd  + bf561-ezkit
>      avr32:   + hammerhead  + atngw100mkii  + grasshopper  + favr-32-ezkit
> + atstk1006  + atstk1004  + atstk1003  + atstk1002  + atngw100  + mimc200
>       m68k:   + M5235EVB_Flash32  + M54455EVB_a66  + M5329AFEE  + M5249EVB
> + idmr  + M5208EVBE  + eb_cpu5282  + M5475FFE  + M54451EVB  + astro_mcf5373l
>  + M54418TWR_serial_rmii  + M54455EVB_intel  + M5282EVB  + M54455EVB_i66  +
> M5475GFE  + M5253DEMO  + M54455EVB_stm33  + M5253EVBE  + M5485BFE  +
> M5485DFE  + M5329BFEE  + M52277EVB  + M5475EFE  + M5475CFE  + cobra5272  +
> M5485AFE  + M53017EVB  + M5475AFE  + M5485HFE  + M5235EVB  + M5275EVB  +
> M5271EVB  + M54418TWR_nand_mii  + M54418TWR_nand_rmii_lowfreq  + TASREG  +
> M5475BFE  + M5475DFE  + M52277EVB_stmicro  + eb_cpu5282_internal  +
> M54451EVB_stmicro  + M5485GFE  + M5373EVB  + M5485EFE  + M5485FFE  +
> M54418TWR  + M54418TWR_nand_rmii  + M54418TWR_serial_mii  + M5485CFE  +
> M54455EVB  + M5272C3
>    powerpc:   + MVBLM7  + MVSMR
>      sparc:   + grsim  + grsim_leon2  + gr_cpci_ax2000  + gr_xc3s_1500  +
> gr_ep2s60
>         sh:   + rsk7269  + rsk7264  + sh7757lcr  + rsk7203
> microblaze:   + microblaze-generic
>   openrisc:   + openrisc-generic
>       mips:   + incaip_150MHz  + pb1000  + vct_premium_onenand   +
> vct_platinum  + qemu_mips  + vct_premium_small  + dbau1100  +
> vct_platinumavc_small  + vct_premium_onenand_small  + incaip  +
> vct_platinum_small  + dbau1550  + dbau1500  + qemu_mips64el  +
> vct_platinumavc_onenand_small  + incaip_133MHz  + vct_platinum_onenand_small
>  + vct_premium  + vct_platinumavc_onenand  + qemu_mips64  + qi_lb60  +
> vct_platinumavc  + incaip_100MHz  + vct_platinum_onenand  + qemu_mipsel  +
> dbau1550_el  + dbau1000
>        arm:   + VCMA9  + smdk2410
>      nds32:   + adp-ag101p  + adp-ag102  + adp-ag101
> 
> 
> Changes in v2:
> - Rebase to master
> - Remove gdt_addr which is no longer used on x86
> - Add new patch to move gd pointer by C to asm on x86
> - Rebase to master
> - Remove tabs after #ifdef and #define in generic global_data
> - Rebase to master
> 
> Simon Glass (58):
>   Add architecture-specific global data
>   at91: Move at91 global data into arch_global_data
>   arm: Move timer_rate_hz into arch_global_data
>   arm: Move tbu to arch_global_data
>   arm: Move tbl to arch_global_data
>   arm: Move lastinc to arch_global_data
>   arm: Move timer_reset_value to arch_global_data
>   ixp: Move timestamp to arch_global_data
>   nds32: Drop tlb_addr from global data
>   arm: Move tlb_addr to arch_global_data
>   x86: Remove gdt_addr from arch_global_data
>   x86: Move gd_addr into arch_global_data
>   x86: Set up the global data pointer in C instead of asm
>   x86: Remove reset_status, relocoff from global_data
>   ppc: Move brg_clk to arch_global_data
>   ppc: Remove extra pci_clk fields from global_data
>   ppc: Move clock fields to arch_global_data
>   ppc: Move mpc83xx clock fields to arch_global_data
>   ppc: Move lbc_clk and cpu to arch_global_data
>   ppc: m68k: Move i2c1_clk, i2c2_clk to arch_global_data
>   ppc: Move CONFIG_QE to arch_global_data
>   ppc: Move used_laws to arch_global_data
>   ppc: Move used_tlb_cams to arch_global_data
>   ppc: Move mpc5xxx clocks to arch_global_data
>   ppc: Move mpc512x clocks to arch_global_data
>   ppc: Move mpc8220 clocks to arch_global_data
>   ppc: Move reset_status to arch_global_data
>   ppc: Move arbiter fields to arch_global_data
>   ppc: Move dp_alloc_base, dp_alloc_top to arch_global_data
>   arm: Move uart_clk to arch_global_data
>   ppc: Move mirror_hack to arch_global_data
>   ppc: Remove console_addr from global data
>   ppc: Move fpga_state to arch_global_data
>   ppc: Move wdt_last to arch_global_data
>   ppc: Move kbd_status to arch_global_data
>   ppc: arm: Move sdhc_clk into arch_global_data
>   sparc: Drop kbd_status and reset_status from global_data
>   m68k: Move CONFIG_EXTRA_CLOCK to arch_global_data
>   mips: Move per_clk and dev_clk to arch_global_data
>   avr32: Move stack_end to arch_global_data
>   avr32: Move cpu_hz to arch_global_data
>   sandbox: Move ram_buf to arch_global_data
>   Add generic global_data
>   Only use fb_base if we have a display
>   arm: Use generic global_data
>   avr32: Use generic global_data
>   blackfin: Use generic global_data
>   m68k: Use generic global_data
>   microblaze: Use generic global_data
>   mips: Use generic global_data
>   nds32: Use generic global_data
>   nios2: Use generic global_data
>   openrisc: Use generic global_data
>   powerpc: Use generic global_data
>   sandbox: Use generic global_data
>   sh: Use generic global_data
>   sparc: Use generic global_data
>   x86: Use generic global_data
> 
>  arch/arm/cpu/arm1136/mx31/timer.c          |   10 +-
>  arch/arm/cpu/arm1136/mx35/generic.c        |    6 +-
>  arch/arm/cpu/arm1136/mx35/timer.c          |    4 +-
>  arch/arm/cpu/arm1136/omap24xx/timer.c      |   23 +++--
>  arch/arm/cpu/arm920t/a320/timer.c          |   18 ++--
>  arch/arm/cpu/arm920t/at91/clock.c          |   24 +++--
>  arch/arm/cpu/arm920t/at91/timer.c          |   14 ++--
>  arch/arm/cpu/arm920t/s3c24x0/timer.c       |   30 +++---
>  arch/arm/cpu/arm926ejs/armada100/timer.c   |   18 ++--
>  arch/arm/cpu/arm926ejs/at91/clock.c        |   30 +++---
>  arch/arm/cpu/arm926ejs/at91/timer.c        |   18 ++--
>  arch/arm/cpu/arm926ejs/davinci/timer.c     |   21 ++--
>  arch/arm/cpu/arm926ejs/kirkwood/timer.c    |    4 +-
>  arch/arm/cpu/arm926ejs/mb86r0x/timer.c     |    4 +-
>  arch/arm/cpu/arm926ejs/mx25/generic.c      |    4 +-
>  arch/arm/cpu/arm926ejs/mx25/timer.c        |    4 +-
>  arch/arm/cpu/arm926ejs/mx27/timer.c        |    4 +-
>  arch/arm/cpu/arm926ejs/mxs/timer.c         |    4 +-
>  arch/arm/cpu/arm926ejs/omap/timer.c        |    4 +-
>  arch/arm/cpu/arm926ejs/orion5x/timer.c     |    4 +-
>  arch/arm/cpu/arm926ejs/pantheon/timer.c    |   18 ++--
>  arch/arm/cpu/arm926ejs/spear/timer.c       |    4 +-
>  arch/arm/cpu/arm926ejs/versatile/timer.c   |    4 +-
>  arch/arm/cpu/armv7/omap-common/timer.c     |   20 ++--
>  arch/arm/cpu/armv7/s5p-common/timer.c      |   14 ++--
>  arch/arm/cpu/armv7/socfpga/timer.c         |   15 ++--
>  arch/arm/cpu/armv7/u8500/timer.c           |   16 ++--
>  arch/arm/cpu/armv7/zynq/timer.c            |   14 ++--
>  arch/arm/cpu/ixp/timer.c                   |   12 +-
>  arch/arm/cpu/pxa/timer.c                   |    4 +-
>  arch/arm/cpu/tegra-common/timer.c          |   12 +-
>  arch/arm/imx-common/speed.c                |   16 ++--
>  arch/arm/imx-common/timer.c                |    4 +-
>  arch/arm/include/asm/arch-at91/clk.h       |   12 +-
>  arch/arm/include/asm/global_data.h         |   58 +++---------
>  arch/arm/lib/board.c                       |    2 +-
>  arch/arm/lib/cache-cp15.c                  |    4 +-
>  arch/avr32/cpu/cpu.c                       |    4 +-
>  arch/avr32/cpu/exception.c                 |    6 +-
>  arch/avr32/cpu/interrupts.c                |    6 +-
>  arch/avr32/include/asm/global_data.h       |   34 +------
>  arch/avr32/lib/board.c                     |    2 +-
>  arch/avr32/lib/bootm.c                     |    2 +-
>  arch/blackfin/include/asm/global_data.h    |   33 +------
>  arch/m68k/cpu/mcf5227x/cpu.c               |    6 +-
>  arch/m68k/cpu/mcf5227x/speed.c             |   12 +-
>  arch/m68k/cpu/mcf523x/speed.c              |    2 +-
>  arch/m68k/cpu/mcf52x2/speed.c              |    4 +-
>  arch/m68k/cpu/mcf532x/speed.c              |    2 +-
>  arch/m68k/cpu/mcf5445x/cpu.c               |   10 +-
>  arch/m68k/cpu/mcf5445x/speed.c             |   14 ++--
>  arch/m68k/cpu/mcf547x_8x/speed.c           |    2 +-
>  arch/m68k/include/asm/global_data.h        |   47 ++--------
>  arch/m68k/lib/board.c                      |    6 +-
>  arch/microblaze/include/asm/global_data.h  |   27 +-----
>  arch/mips/cpu/xburst/timer.c               |   20 ++--
>  arch/mips/include/asm/global_data.h        |   38 +-------
>  arch/nds32/include/asm/global_data.h       |   35 +------
>  arch/nds32/lib/board.c                     |   11 --
>  arch/nios2/include/asm/global_data.h       |   25 +----
>  arch/openrisc/include/asm/global_data.h    |   25 +----
>  arch/powerpc/cpu/mpc512x/cpu.c             |    4 +-
>  arch/powerpc/cpu/mpc512x/cpu_init.c        |    2 +-
>  arch/powerpc/cpu/mpc512x/i2c.c             |    2 +-
>  arch/powerpc/cpu/mpc512x/ide.c             |    2 +-
>  arch/powerpc/cpu/mpc512x/serial.c          |    2 +-
>  arch/powerpc/cpu/mpc512x/speed.c           |   15 ++-
>  arch/powerpc/cpu/mpc5xxx/i2c.c             |    2 +-
>  arch/powerpc/cpu/mpc5xxx/ide.c             |    2 +-
>  arch/powerpc/cpu/mpc5xxx/serial.c          |    4 +-
>  arch/powerpc/cpu/mpc5xxx/speed.c           |   18 +++-
>  arch/powerpc/cpu/mpc8220/fec.c             |    8 +-
>  arch/powerpc/cpu/mpc8220/speed.c           |   12 ++-
>  arch/powerpc/cpu/mpc8260/commproc.c        |   21 ++--
>  arch/powerpc/cpu/mpc8260/cpu_init.c        |    4 +-
>  arch/powerpc/cpu/mpc8260/i2c.c             |    2 +-
>  arch/powerpc/cpu/mpc8260/speed.c           |   16 ++--
>  arch/powerpc/cpu/mpc83xx/cpu.c             |    2 +-
>  arch/powerpc/cpu/mpc83xx/cpu_init.c        |   32 ++++---
>  arch/powerpc/cpu/mpc83xx/fdt.c             |    2 +-
>  arch/powerpc/cpu/mpc83xx/pcie.c            |    4 +-
>  arch/powerpc/cpu/mpc83xx/speed.c           |  108 +++++++++++++---------
>  arch/powerpc/cpu/mpc85xx/commproc.c        |   21 ++--
>  arch/powerpc/cpu/mpc85xx/cpu.c             |    2 +-
>  arch/powerpc/cpu/mpc85xx/fdt.c             |    4 +-
>  arch/powerpc/cpu/mpc85xx/speed.c           |   28 +++---
>  arch/powerpc/cpu/mpc85xx/tlb.c             |    8 +-
>  arch/powerpc/cpu/mpc86xx/cpu.c             |    2 +-
>  arch/powerpc/cpu/mpc86xx/fdt.c             |    4 +-
>  arch/powerpc/cpu/mpc86xx/speed.c           |    8 +-
>  arch/powerpc/cpu/mpc8xx/commproc.c         |   20 ++--
>  arch/powerpc/cpu/mpc8xx/fdt.c              |    2 +-
>  arch/powerpc/cpu/mpc8xx/speed.c            |    2 +-
>  arch/powerpc/cpu/mpc8xxx/cpu.c             |    8 +-
>  arch/powerpc/cpu/mpc8xxx/law.c             |   16 ++--
>  arch/powerpc/cpu/ppc4xx/4xx_uart.c         |    4 +-
>  arch/powerpc/cpu/ppc4xx/fdt.c              |    4 +-
>  arch/powerpc/include/asm/global_data.h     |  140 +++++++++-------------------
>  arch/powerpc/lib/board.c                   |   33 ++++---
>  arch/sandbox/cpu/cpu.c                     |    2 +-
>  arch/sandbox/include/asm/global_data.h     |   25 +----
>  arch/sandbox/lib/board.c                   |    6 +-
>  arch/sh/include/asm/global_data.h          |   21 +----
>  arch/sparc/include/asm/global_data.h       |   51 +---------
>  arch/x86/cpu/cpu.c                         |    4 +-
>  arch/x86/cpu/start.S                       |    6 -
>  arch/x86/include/asm/global_data.h         |   43 ++-------
>  board/evb64260/mpsc.c                      |    2 +-
>  board/freescale/bsc9131rdb/bsc9131rdb.c    |    2 +-
>  board/freescale/corenet_ds/corenet_ds.c    |    2 +-
>  board/freescale/p1010rdb/ddr.c             |    6 +-
>  board/freescale/p1010rdb/p1010rdb.c        |    6 +-
>  board/freescale/p1_p2_rdb/ddr.c            |    2 +-
>  board/freescale/p1_p2_rdb/p1_p2_rdb.c      |    2 +-
>  board/freescale/p2041rdb/p2041rdb.c        |    2 +-
>  board/freescale/t4qds/t4qds.c              |    2 +-
>  board/gdsys/405ep/405ep.c                  |   15 ++--
>  board/gdsys/405ex/405ex.c                  |   13 ++-
>  board/gdsys/405ex/io64.c                   |    2 +-
>  board/inka4x0/inkadiag.c                   |    8 +-
>  board/lwmon/lwmon.c                        |   10 +-
>  board/lwmon5/kbd.c                         |   10 +-
>  board/lwmon5/lwmon5.c                      |    8 +-
>  common/cmd_bdinfo.c                        |    6 +-
>  common/cmd_immap.c                         |    2 +-
>  drivers/i2c/fsl_i2c.c                      |    7 +-
>  drivers/input/ps2ser.c                     |    2 +-
>  drivers/mmc/fsl_esdhc.c                    |    6 +-
>  drivers/net/mpc512x_fec.c                  |    2 +-
>  drivers/net/mpc5xxx_fec.c                  |    9 +-
>  drivers/qe/fdt.c                           |   12 +-
>  drivers/qe/qe.c                            |   21 ++--
>  examples/standalone/mem_to_mem_idma2intr.c |    4 +-
>  include/asm-generic/global_data.h          |  102 ++++++++++++++++++++
>  134 files changed, 812 insertions(+), 1031 deletions(-)
>  create mode 100644 include/asm-generic/global_data.h

With the notes that patch 10 (arm, tlb_addr) needed a refresh to cover
tlb_size as well, and I re-ordered 12/13 per Graem's notes, and the
powerpc gd->cpu one needed a quick update to cover new boards, I've now
applied the series to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130204/1394715d/attachment.pgp>


More information about the U-Boot mailing list