From: Sascha Hauer <s.hauer@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH] ARM: Make memory known to lowlevel code
Date: Wed, 17 Oct 2012 23:03:09 +0200 [thread overview]
Message-ID: <1350507817-7819-1-git-send-email-s.hauer@pengutronix.de> (raw)
Memory is a precious resource and should be known early. This series
adds a new entry point for ARM which is passed the SDRAM region used
for barebox. This allows us to setup the stack and malloc space
according to the RAM we have and get rid of the values from Kconfig.
Later with relocatable binary support it will allow us to find a
suitable base for barebox.
With the new entry point it is also possible for the lowlevel code
to pass a pointer on to barebox which can be retrieved later. This
way data from an earlier loader can be passed on.
It is not necessary to pass the whole SDRAM to the entry point (which
wouldn't be possible anyway when there are multiple memory banks).
It instead is enough to pass the memory barebox should use for itself.
i.MX gets functions to read back the SDRAM size from the controller.
Atmel and Samsung also have such a function, but these are not used
by every board, I didn't change that. Other boards have different
possible SDRAM sizes, I passed the minimum amount to the barebox
entry.
Sascha
----------------------------------------------------------------
Sascha Hauer (28):
ARM: Make malloc available in all initcalls
ARM at91sam926x: provide reset function for boards with lowlevel init
ARM at91rm9200: provide reset function for boards with lowlevel init
ARM: Add new entry point for barebox
ARM i.MX Add functions to get sdram base and size
ARM i.MX boards: switch to barebox_arm_entry
ARM AT91 boards: switch to barebox_arm_entry
ARM i.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: remove now unused *_LOWLEVEL_INIT Kconfig options
ARM start: remove unused board_init_lowlevel* functions
ARM pbl: setup stack at end of SDRAM
ARM pbl: Call uncompressed binary with arguments
ARM pbl: make MMU functional again
ARM start: pick up memory/boarddata arguments from pbl
ARM start: Add barebox_arm_boarddata function
ARM: Determine base and size of malloc space from SDRAM
ARM pbl: always copy piggydata
ARM i.MX: Use SRAM stack in lowlevel code
generic memory layout: fix deps for [MALLOC|STACK]_BASE
ARM: disable HAVE_CONFIGURABLE_MEMORY_LAYOUT
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 | 4 +-
arch/arm/boards/at91rm9200ek/Makefile | 2 +
arch/arm/boards/at91rm9200ek/lowlevel.c | 14 +
arch/arm/boards/at91sam9260ek/Makefile | 2 +
arch/arm/boards/at91sam9260ek/lowlevel.c | 12 +
arch/arm/boards/at91sam9261ek/Makefile | 2 +
arch/arm/boards/at91sam9261ek/lowlevel.c | 12 +
arch/arm/boards/at91sam9263ek/Makefile | 2 +
arch/arm/boards/at91sam9263ek/lowlevel.c | 15 ++
arch/arm/boards/at91sam9m10g45ek/Makefile | 2 +
arch/arm/boards/at91sam9m10g45ek/lowlevel.c | 11 +
arch/arm/boards/at91sam9x5ek/Makefile | 2 +
arch/arm/boards/at91sam9x5ek/lowlevel.c | 11 +
arch/arm/boards/beagle/Makefile | 2 +
arch/arm/boards/beagle/lowlevel.c | 14 +
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/crystalfontz-cfa10036/Makefile | 2 +
arch/arm/boards/crystalfontz-cfa10036/lowlevel.c | 11 +
arch/arm/boards/dss11/Makefile | 2 +
arch/arm/boards/dss11/lowlevel.c | 12 +
arch/arm/boards/eukrea_cpuimx25/lowlevel.c | 12 +-
arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c | 2 +-
arch/arm/boards/eukrea_cpuimx27/lowlevel_init.S | 7 +-
arch/arm/boards/eukrea_cpuimx35/lowlevel.c | 13 +-
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/3stack.c | 2 +-
.../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 | 7 +-
.../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 | 13 +-
arch/arm/boards/guf-neso/lowlevel.c | 13 +-
arch/arm/boards/imx21ads/imx21ads.c | 5 +-
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 | 12 +-
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 | 3 +-
arch/arm/boards/mioa701/Makefile | 2 +
arch/arm/boards/mioa701/lowlevel.c | 10 +
arch/arm/boards/mmccpu/Makefile | 2 +
arch/arm/boards/mmccpu/lowlevel.c | 12 +
arch/arm/boards/netx/platform.S | 7 +-
arch/arm/boards/nhk8815/Makefile | 2 +
arch/arm/boards/nhk8815/lowlevel.c | 10 +
arch/arm/boards/omap343xdsp/Makefile | 2 +
arch/arm/boards/omap343xdsp/lowlevel.c | 14 +
arch/arm/boards/omap3evm/Makefile | 2 +
arch/arm/boards/omap3evm/lowlevel.c | 10 +
arch/arm/boards/panda/lowlevel.c | 7 +-
arch/arm/boards/pcm027/lowlevel_init.S | 7 +-
arch/arm/boards/pcm037/lowlevel_init.S | 4 +-
arch/arm/boards/pcm037/pcm037.c | 2 +-
arch/arm/boards/pcm038/lowlevel.c | 12 +-
arch/arm/boards/pcm043/lowlevel.c | 13 +-
arch/arm/boards/pcm049/lowlevel.c | 7 +-
arch/arm/boards/phycard-a-l1/Makefile | 2 +
arch/arm/boards/phycard-a-xl2/lowlevel.c | 7 +-
arch/arm/boards/phycard-i.MX27/lowlevel_init.S | 5 +-
arch/arm/boards/pm9261/Makefile | 2 +
arch/arm/boards/pm9261/lowlevel.c | 14 +
arch/arm/boards/pm9263/Makefile | 2 +
arch/arm/boards/pm9263/lowlevel.c | 14 +
arch/arm/boards/pm9g45/Makefile | 2 +
arch/arm/boards/pm9g45/lowlevel.c | 11 +
arch/arm/boards/qil-a9260/Makefile | 2 +
arch/arm/boards/qil-a9260/lowlevel.c | 12 +
arch/arm/boards/scb9328/lowlevel_init.S | 4 +-
arch/arm/boards/tny-a926x/Makefile | 2 +
arch/arm/boards/tny-a926x/lowlevel.c | 12 +
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 | 2 +
arch/arm/boards/usb-a926x/lowlevel.c | 12 +
arch/arm/boards/versatile/Makefile | 3 +-
arch/arm/boards/versatile/lowlevel.c | 10 +
arch/arm/cpu/cpu.c | 9 +
arch/arm/cpu/start-pbl.c | 105 +++-----
arch/arm/cpu/start.c | 110 ++++++--
arch/arm/include/asm/barebox-arm.h | 5 +-
arch/arm/lib/Makefile | 1 -
arch/arm/lib/arm.c | 14 -
arch/arm/mach-at91/Kconfig | 16 +-
arch/arm/mach-at91/Makefile | 9 +-
arch/arm/mach-at91/at91rm9200_lowlevel_init.c | 11 +-
arch/arm/mach-at91/at91sam926x_lowlevel_init.c | 11 +-
arch/arm/mach-at91/include/mach/board.h | 4 +
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 | 16 --
arch/arm/mach-imx/Makefile | 3 +-
arch/arm/mach-imx/esdctl.c | 273 ++++++++++++++++++++
arch/arm/mach-imx/imx1.c | 2 +
arch/arm/mach-imx/include/mach/esdctl.h | 13 +
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-netx/Kconfig | 1 -
arch/arm/mach-omap/Kconfig | 5 -
arch/arm/mach-omap/include/mach/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 | 20 +-
common/Kconfig | 12 -
common/meminfo.c | 5 -
include/asm-generic/memory_layout.h | 6 +-
142 files changed, 1126 insertions(+), 308 deletions(-)
create mode 100644 arch/arm/boards/at91rm9200ek/lowlevel.c
create mode 100644 arch/arm/boards/at91sam9260ek/lowlevel.c
create mode 100644 arch/arm/boards/at91sam9261ek/lowlevel.c
create mode 100644 arch/arm/boards/at91sam9263ek/lowlevel.c
create mode 100644 arch/arm/boards/at91sam9m10g45ek/lowlevel.c
create mode 100644 arch/arm/boards/at91sam9x5ek/lowlevel.c
create mode 100644 arch/arm/boards/beagle/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/dss11/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/mmccpu/lowlevel.c
create mode 100644 arch/arm/boards/nhk8815/lowlevel.c
create mode 100644 arch/arm/boards/omap343xdsp/lowlevel.c
create mode 100644 arch/arm/boards/omap3evm/lowlevel.c
create mode 100644 arch/arm/boards/pm9261/lowlevel.c
create mode 100644 arch/arm/boards/pm9263/lowlevel.c
create mode 100644 arch/arm/boards/pm9g45/lowlevel.c
create mode 100644 arch/arm/boards/qil-a9260/lowlevel.c
create mode 100644 arch/arm/boards/tny-a926x/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/usb-a926x/lowlevel.c
create mode 100644 arch/arm/boards/versatile/lowlevel.c
delete mode 100644 arch/arm/lib/arm.c
create mode 100644 arch/arm/mach-imx/esdctl.c
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next reply other threads:[~2012-10-17 21:03 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-17 21:03 Sascha Hauer [this message]
2012-10-17 21:03 ` [PATCH 01/28] ARM: Make malloc available in all initcalls Sascha Hauer
2012-10-17 21:03 ` [PATCH 02/28] ARM at91sam926x: provide reset function for boards with lowlevel init Sascha Hauer
2012-10-18 7:26 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-19 15:30 ` Sascha Hauer
2012-10-17 21:03 ` [PATCH 03/28] ARM at91rm9200: " Sascha Hauer
2012-10-18 7:27 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-17 21:03 ` [PATCH 04/28] ARM: Add new entry point for barebox Sascha Hauer
2012-10-17 21:03 ` [PATCH 05/28] ARM i.MX Add functions to get sdram base and size Sascha Hauer
2012-10-17 21:03 ` [PATCH 06/28] ARM i.MX boards: switch to barebox_arm_entry Sascha Hauer
2012-10-17 21:12 ` Alexander Shiyan
2012-11-01 19:21 ` Sascha Hauer
2012-10-17 21:03 ` [PATCH 07/28] ARM AT91 " Sascha Hauer
2012-10-17 21:03 ` [PATCH 08/28] ARM i.MXs " Sascha Hauer
2012-10-17 21:03 ` [PATCH 09/28] ARM OMAP " Sascha Hauer
2012-10-17 21:03 ` [PATCH 10/28] ARM Samsung " Sascha Hauer
2012-10-17 21:03 ` [PATCH 11/28] ARM PXA " Sascha Hauer
2012-10-17 21:03 ` [PATCH 12/28] ARM ep93xx " Sascha Hauer
2012-10-17 21:03 ` [PATCH 13/28] ARM tegra " Sascha Hauer
2012-10-17 21:03 ` [PATCH 14/28] ARM nomadik " Sascha Hauer
2012-10-17 21:03 ` [PATCH 15/28] ARM versatile " Sascha Hauer
2012-10-17 21:03 ` [PATCH 16/28] ARM netx " Sascha Hauer
2012-10-17 21:03 ` [PATCH 17/28] ARM: remove now unused *_LOWLEVEL_INIT Kconfig options Sascha Hauer
2012-10-17 21:03 ` [PATCH 18/28] ARM start: remove unused board_init_lowlevel* functions Sascha Hauer
2012-10-17 21:03 ` [PATCH 19/28] ARM pbl: setup stack at end of SDRAM Sascha Hauer
2012-10-17 21:03 ` [PATCH 20/28] ARM pbl: Call uncompressed binary with arguments Sascha Hauer
2012-10-18 7:29 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-19 15:32 ` Sascha Hauer
2012-10-19 16:15 ` Sascha Hauer
2012-10-17 21:03 ` [PATCH 21/28] ARM pbl: make MMU functional again Sascha Hauer
2012-10-17 21:03 ` [PATCH 22/28] ARM start: pick up memory/boarddata arguments from pbl Sascha Hauer
2012-10-17 21:03 ` [PATCH 23/28] ARM start: Add barebox_arm_boarddata function Sascha Hauer
2012-10-17 21:03 ` [PATCH 24/28] ARM: Determine base and size of malloc space from SDRAM Sascha Hauer
2012-10-17 21:03 ` [PATCH 25/28] ARM pbl: always copy piggydata Sascha Hauer
2012-10-18 7:23 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-19 15:34 ` Sascha Hauer
2012-10-19 17:27 ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-17 21:03 ` [PATCH 26/28] ARM i.MX: Use SRAM stack in lowlevel code Sascha Hauer
2012-10-17 21:03 ` [PATCH 27/28] generic memory layout: fix deps for [MALLOC|STACK]_BASE Sascha Hauer
2012-10-17 21:03 ` [PATCH 28/28] ARM: disable HAVE_CONFIGURABLE_MEMORY_LAYOUT Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1350507817-7819-1-git-send-email-s.hauer@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox