[PATCH v2] Add new ARM entry point for barebox
Sascha Hauer
s.hauer at pengutronix.de
Fri Feb 1 02:59:13 EST 2013
Second version. I updated the series to current -next. Besides, I dropped
the board reserved memory chunk at the end of SDRAM as it does not work
for configurations which run in tight SRAM. Boards are now required to
reserve some memory themselves and skip this area from barebox_arm_entry
should they need some space.
This version is compile tested only currently. My plan is to do some
additional runtime tests on Monday when I'm back from the FOSDEM and
apply it afterwards. So I won't apply any patches conflicting to this
series before applying this one.
Sascha
The following changes since commit f1c191de412ce88288f661dc261674af69d6fe4e:
Merge branch 'for-next/pbl' into next (2013-02-01 08:21:12 +0100)
are available in the git repository at:
git://git.pengutronix.de/git/barebox.git pu/arm-entry
for you to fetch changes up to e2312a2c5736008cc889383005cca3fee7883a47:
ARM pbl: inline decompress function (2013-02-01 08:28:47 +0100)
----------------------------------------------------------------
Sascha Hauer (34):
ARM: Add new entry point for barebox
ARM: add __noreturn to board_init_lowlevel_return
ARM i.MX: Use SRAM stack in lowlevel code
ARM i.MX: Add i.MX specific entry point for barebox
ARM i.MX: prepare external nand boot for SoC specific entry
ARM i.MX boards: switch to barebox_arm_entry
ARM MXS boards: switch to barebox_arm_entry
ARM OMAP boards: switch to barebox_arm_entry
ARM Samsung boards: switch to barebox_arm_entry
ARM PXA boards: switch to barebox_arm_entry
ARM ep93xx boards: switch to barebox_arm_entry
ARM tegra boards: switch to barebox_arm_entry
ARM nomadik boards: switch to barebox_arm_entry
ARM versatile boards: switch to barebox_arm_entry
ARM netx boards: switch to barebox_arm_entry
ARM clep7212: switch to barebox_arm_entry
ARM raspberrypi: switch to barebox_arm_entry
ARM AT91: switch to barebox_arm_entry part1
ARM AT91: switch at91rm9200 board to barebox_arm_entry
ARM AT91: switch sama5d3 to barebox_arm_entry
ARM AT91: switch remaining boards to barebox_arm_entry
ARM: remove now unused MACH_[HAS|DO]_LOWLEVEL_INIT
ARM start-pbl: make board_init_lowlevel_return static
ARM start-pbl: call uncompressed binary with arguments
ARM start: pickup parameters from pbl
ARM: Setup stack at end of SDRAM
ARM pbl: Use dynamic parameters for early malloc space
ARM mmu: pickup already enabled mmu
ARM: Factor out early mmu code
ARM: Enable mmu early
ARM: Automatically determine malloc size
generic memory layout: fix deps for [MALLOC|STACK]_BASE
ARM: disable HAVE_CONFIGURABLE_MEMORY_LAYOUT
ARM pbl: inline decompress function
arch/arm/Kconfig | 1 -
arch/arm/boards/a9m2410/lowlevel_init.S | 9 +-
arch/arm/boards/a9m2440/lowlevel_init.S | 9 +-
arch/arm/boards/archosg9/Makefile | 4 +-
arch/arm/boards/archosg9/lowlevel.c | 3 +-
arch/arm/boards/at91sam9263ek/Makefile | 4 +-
arch/arm/boards/at91sam9m10g45ek/Makefile | 2 +
arch/arm/boards/at91sam9m10g45ek/lowlevel.c | 11 ++
arch/arm/boards/at91sam9m10ihd/Makefile | 2 +
arch/arm/boards/at91sam9m10ihd/lowlevel.c | 11 ++
arch/arm/boards/at91sam9n12ek/Makefile | 2 +
arch/arm/boards/at91sam9n12ek/lowlevel.c | 11 ++
arch/arm/boards/at91sam9x5ek/Makefile | 2 +
arch/arm/boards/at91sam9x5ek/lowlevel.c | 11 ++
arch/arm/boards/beagle/lowlevel.c | 16 +-
arch/arm/boards/beaglebone/Makefile | 2 +
arch/arm/boards/beaglebone/lowlevel.c | 12 +-
arch/arm/boards/ccxmx51/Makefile | 2 +
arch/arm/boards/ccxmx51/lowlevel.c | 9 ++
arch/arm/boards/chumby_falconwing/Makefile | 2 +
arch/arm/boards/chumby_falconwing/lowlevel.c | 11 ++
arch/arm/boards/clep7212/lowlevel.c | 3 +-
arch/arm/boards/crystalfontz-cfa10036/Makefile | 2 +
arch/arm/boards/crystalfontz-cfa10036/lowlevel.c | 11 ++
arch/arm/boards/edb93xx/sdram_cfg.c | 4 +
arch/arm/boards/efika-mx-smartbook/Makefile | 2 +
arch/arm/boards/efika-mx-smartbook/lowlevel.c | 9 ++
arch/arm/boards/eukrea_cpuimx25/lowlevel.c | 6 +-
arch/arm/boards/eukrea_cpuimx27/lowlevel_init.S | 7 +-
arch/arm/boards/eukrea_cpuimx35/lowlevel.c | 8 +-
arch/arm/boards/eukrea_cpuimx51/Makefile | 2 +
arch/arm/boards/eukrea_cpuimx51/lowlevel.c | 9 ++
arch/arm/boards/freescale-mx23-evk/Makefile | 2 +
arch/arm/boards/freescale-mx23-evk/lowlevel.c | 11 ++
.../boards/freescale-mx25-3-stack/lowlevel_init.S | 7 +-
arch/arm/boards/freescale-mx28-evk/Makefile | 2 +
arch/arm/boards/freescale-mx28-evk/lowlevel.c | 11 ++
arch/arm/boards/freescale-mx35-3-stack/3stack.c | 1 +
.../boards/freescale-mx35-3-stack/lowlevel_init.S | 7 +-
arch/arm/boards/freescale-mx51-pdk/Makefile | 2 +
arch/arm/boards/freescale-mx51-pdk/lowlevel.c | 9 ++
arch/arm/boards/freescale-mx53-loco/Makefile | 2 +
arch/arm/boards/freescale-mx53-loco/lowlevel.c | 9 ++
arch/arm/boards/freescale-mx53-smd/Makefile | 2 +
arch/arm/boards/freescale-mx53-smd/lowlevel.c | 9 ++
arch/arm/boards/freescale-mx6-arm2/Makefile | 2 +
arch/arm/boards/freescale-mx6-arm2/lowlevel.c | 10 ++
arch/arm/boards/freescale-mx6-sabrelite/Makefile | 2 +
arch/arm/boards/freescale-mx6-sabrelite/lowlevel.c | 10 ++
.../boards/friendlyarm-mini2440/lowlevel_init.S | 9 +-
arch/arm/boards/friendlyarm-mini6410/Makefile | 2 +
arch/arm/boards/friendlyarm-mini6410/lowlevel.c | 11 ++
arch/arm/boards/friendlyarm-tiny210/lowlevel.c | 4 +-
arch/arm/boards/friendlyarm-tiny6410/Makefile | 3 +-
arch/arm/boards/friendlyarm-tiny6410/lowlevel.c | 11 ++
arch/arm/boards/guf-cupid/lowlevel.c | 8 +-
arch/arm/boards/guf-neso/lowlevel.c | 8 +-
arch/arm/boards/guf-vincell/lowlevel.c | 5 +-
arch/arm/boards/imx21ads/imx21ads.c | 3 +-
arch/arm/boards/imx21ads/lowlevel_init.S | 11 +-
arch/arm/boards/imx233-olinuxino/Makefile | 2 +
arch/arm/boards/imx233-olinuxino/lowlevel.c | 11 ++
arch/arm/boards/imx27ads/lowlevel_init.S | 4 +-
arch/arm/boards/karo-tx25/lowlevel.c | 10 +-
arch/arm/boards/karo-tx28/Makefile | 2 +
arch/arm/boards/karo-tx28/lowlevel.c | 11 ++
arch/arm/boards/karo-tx51/Makefile | 2 +
arch/arm/boards/karo-tx51/lowlevel.c | 9 ++
arch/arm/boards/karo-tx53/lowlevel.c | 6 +-
arch/arm/boards/mioa701/Makefile | 2 +
arch/arm/boards/mioa701/lowlevel.c | 10 ++
arch/arm/boards/mmccpu/Makefile | 4 +-
arch/arm/boards/netx/platform.S | 7 +-
arch/arm/boards/nhk8815/Makefile | 2 +
arch/arm/boards/nhk8815/lowlevel.c | 10 ++
arch/arm/boards/omap343xdsp/lowlevel.c | 15 +-
arch/arm/boards/omap3evm/lowlevel.c | 13 +-
arch/arm/boards/panda/lowlevel.c | 7 +-
arch/arm/boards/pcm027/lowlevel_init.S | 7 +-
arch/arm/boards/pcm037/lowlevel.c | 6 +-
arch/arm/boards/pcm038/lowlevel.c | 8 +-
arch/arm/boards/pcm043/lowlevel.c | 8 +-
arch/arm/boards/pcm049/lowlevel.c | 7 +-
arch/arm/boards/pcm051/Makefile | 2 +
arch/arm/boards/pcm051/lowlevel.c | 11 ++
arch/arm/boards/phycard-a-l1/lowlevel.c | 12 +-
arch/arm/boards/phycard-a-xl2/lowlevel.c | 7 +-
arch/arm/boards/phycard-i.MX27/lowlevel_init.S | 4 +-
arch/arm/boards/pm9261/Makefile | 4 +-
arch/arm/boards/pm9263/Makefile | 4 +-
arch/arm/boards/pm9g45/Makefile | 2 +
arch/arm/boards/pm9g45/lowlevel.c | 11 ++
arch/arm/boards/raspberry-pi/Makefile | 2 +
arch/arm/boards/raspberry-pi/lowlevel.c | 11 ++
arch/arm/boards/scb9328/lowlevel_init.S | 4 +-
arch/arm/boards/tny-a926x/Makefile | 4 +-
arch/arm/boards/toshiba-ac100/Makefile | 2 +
arch/arm/boards/toshiba-ac100/lowlevel.c | 10 ++
arch/arm/boards/tqma53/Makefile | 2 +
arch/arm/boards/tqma53/lowlevel.c | 9 ++
arch/arm/boards/usb-a926x/Makefile | 4 +-
arch/arm/boards/versatile/Makefile | 3 +-
arch/arm/boards/versatile/lowlevel.c | 10 ++
arch/arm/configs/archosg9_defconfig | 1 -
arch/arm/configs/phycard_a_l1_defconfig | 2 -
arch/arm/cpu/Makefile | 4 +-
arch/arm/cpu/cpu.c | 12 ++
arch/arm/cpu/mmu-early.c | 53 +++++++
arch/arm/cpu/mmu-early.h | 6 +
arch/arm/cpu/mmu.c | 9 +-
arch/arm/cpu/start-pbl.c | 163 ++++++--------------
arch/arm/cpu/start.c | 107 ++++++++++---
arch/arm/include/asm/barebox-arm.h | 4 +-
arch/arm/lib/Makefile | 1 -
arch/arm/lib/arm.c | 14 --
arch/arm/mach-at91/Kconfig | 17 +-
arch/arm/mach-at91/Makefile | 5 +-
arch/arm/mach-at91/at91rm9200_lowlevel_init.c | 2 +-
arch/arm/mach-at91/at91sam926x_lowlevel_init.c | 4 +-
arch/arm/mach-at91/sama5d3_lowlevel_init.c | 25 +++
arch/arm/mach-clps711x/Kconfig | 2 -
arch/arm/mach-ep93xx/Kconfig | 8 -
arch/arm/mach-ep93xx/Makefile | 4 +-
arch/arm/mach-ep93xx/lowlevel_init.S | 11 +-
arch/arm/mach-imx/Kconfig | 17 --
arch/arm/mach-imx/Makefile | 5 +-
arch/arm/mach-imx/esdctl.c | 136 +++++++++++++---
arch/arm/mach-imx/external-nand-boot.c | 74 ++++++---
arch/arm/mach-imx/include/mach/esdctl.h | 11 ++
arch/arm/mach-imx/include/mach/imx-nand.h | 1 -
arch/arm/mach-imx/include/mach/imx21-regs.h | 1 +
arch/arm/mach-imx/include/mach/imx25-regs.h | 3 +
arch/arm/mach-imx/include/mach/imx27-regs.h | 1 +
arch/arm/mach-imx/include/mach/imx31-regs.h | 3 +
arch/arm/mach-netx/Kconfig | 1 -
arch/arm/mach-omap/Kconfig | 5 -
arch/arm/mach-omap/arch-omap.dox | 1 -
arch/arm/mach-omap/include/mach/omap3-silicon.h | 1 +
arch/arm/mach-omap/omap3_core.S | 11 +-
arch/arm/mach-pxa/Kconfig | 1 -
arch/arm/mach-samsung/Kconfig | 6 -
arch/arm/pbl/zbarebox.lds.S | 8 +-
common/Kconfig | 21 ++-
common/meminfo.c | 5 -
include/asm-generic/memory_layout.h | 6 +-
145 files changed, 1035 insertions(+), 390 deletions(-)
create mode 100644 arch/arm/boards/at91sam9m10g45ek/lowlevel.c
create mode 100644 arch/arm/boards/at91sam9m10ihd/lowlevel.c
create mode 100644 arch/arm/boards/at91sam9n12ek/lowlevel.c
create mode 100644 arch/arm/boards/at91sam9x5ek/lowlevel.c
create mode 100644 arch/arm/boards/ccxmx51/lowlevel.c
create mode 100644 arch/arm/boards/chumby_falconwing/lowlevel.c
create mode 100644 arch/arm/boards/crystalfontz-cfa10036/lowlevel.c
create mode 100644 arch/arm/boards/efika-mx-smartbook/lowlevel.c
create mode 100644 arch/arm/boards/eukrea_cpuimx51/lowlevel.c
create mode 100644 arch/arm/boards/freescale-mx23-evk/lowlevel.c
create mode 100644 arch/arm/boards/freescale-mx28-evk/lowlevel.c
create mode 100644 arch/arm/boards/freescale-mx51-pdk/lowlevel.c
create mode 100644 arch/arm/boards/freescale-mx53-loco/lowlevel.c
create mode 100644 arch/arm/boards/freescale-mx53-smd/lowlevel.c
create mode 100644 arch/arm/boards/freescale-mx6-arm2/lowlevel.c
create mode 100644 arch/arm/boards/freescale-mx6-sabrelite/lowlevel.c
create mode 100644 arch/arm/boards/friendlyarm-mini6410/lowlevel.c
create mode 100644 arch/arm/boards/friendlyarm-tiny6410/lowlevel.c
create mode 100644 arch/arm/boards/imx233-olinuxino/lowlevel.c
create mode 100644 arch/arm/boards/karo-tx28/lowlevel.c
create mode 100644 arch/arm/boards/karo-tx51/lowlevel.c
create mode 100644 arch/arm/boards/mioa701/lowlevel.c
create mode 100644 arch/arm/boards/nhk8815/lowlevel.c
create mode 100644 arch/arm/boards/pcm051/lowlevel.c
create mode 100644 arch/arm/boards/pm9g45/lowlevel.c
create mode 100644 arch/arm/boards/raspberry-pi/lowlevel.c
create mode 100644 arch/arm/boards/toshiba-ac100/lowlevel.c
create mode 100644 arch/arm/boards/tqma53/lowlevel.c
create mode 100644 arch/arm/boards/versatile/lowlevel.c
create mode 100644 arch/arm/cpu/mmu-early.c
create mode 100644 arch/arm/cpu/mmu-early.h
delete mode 100644 arch/arm/lib/arm.c
create mode 100644 arch/arm/mach-at91/sama5d3_lowlevel_init.c
More information about the barebox
mailing list