[PATCH v3] Add new ARM entry point for barebox
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Sun Feb 3 10:03:33 EST 2013
Third version. I update at91 and test it on all at91 core
Best Regards,
J.
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 531c3cd6adcea6b874772221f2f7787472550cee:
at91sam9_ddrsdr: fix register on mdr read and sdram detection for ddr size (2013-02-03 08:27:57 +0800)
are available in the git repository at:
git://git.jcrosoft.org/barebox.git delivery/arm-entry
for you to fetch changes up to cd5f8e8aaf808ae19e7c1d2890f90f7de809a2c5:
ARM pbl: inline decompress function (2013-02-03 08:27:59 +0800)
----------------------------------------------------------------
Jean-Christophe PLAGNIOL-VILLARD (3):
ARM AT91: switch at91sam9g45 to barebox_arm_entry
ARM AT91: switch at91sam9x5 to barebox_arm_entry
ARM AT91: switch at91sam9n12 to barebox_arm_entry
Sascha Hauer (33):
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 at91sam9 to barebox_arm_entry part1
ARM AT91: switch at91rm9200 board to barebox_arm_entry
ARM AT91: switch sama5d3 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/at91sam9261ek/Makefile | 4 ++--
arch/arm/boards/at91sam9263ek/Makefile | 4 ++--
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 +++++++++++
arch/arm/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 +
arch/arm/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 ++++++++++
arch/arm/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/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 | 19 +++++++++----------
arch/arm/mach-at91/Makefile | 11 ++++++++---
arch/arm/mach-at91/at91rm9200_lowlevel_init.c | 2 +-
arch/arm/mach-at91/at91sam9260_lowlevel_init.c | 2 ++
arch/arm/mach-at91/at91sam9261_lowlevel_init.c | 2 ++
arch/arm/mach-at91/at91sam9263_lowlevel_init.c | 2 ++
arch/arm/mach-at91/at91sam926x_lowlevel_init.c | 7 ++-----
arch/arm/mach-at91/at91sam9g45_lowlevel_init.c | 26 ++++++++++++++++++++++++++
arch/arm/mach-at91/at91sam9n12_lowlevel_init.c | 26 ++++++++++++++++++++++++++
arch/arm/mach-at91/at91sam9x5_lowlevel_init.c | 26 ++++++++++++++++++++++++++
arch/arm/mach-at91/include/mach/at91_lowlevel_init.h | 5 +++++
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 ++----
143 files changed, 1064 insertions(+), 400 deletions(-)
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/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/at91sam9g45_lowlevel_init.c
create mode 100644 arch/arm/mach-at91/at91sam9n12_lowlevel_init.c
create mode 100644 arch/arm/mach-at91/at91sam9x5_lowlevel_init.c
create mode 100644 arch/arm/mach-at91/sama5d3_lowlevel_init.c
More information about the barebox
mailing list