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

Simon Glass
2012-12-14T06:48:29Z

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

--
1.7.7.3