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

Tom Rini
2013-02-04T16:36:43Z

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>