From: Sascha Hauer <s.hauer@pengutronix.de>
To: Jason Cobham <cobham.jason@gmail.com>
Cc: barebox@lists.infradead.org
Subject: Re: imx53 memory detection
Date: Wed, 13 Apr 2016 08:36:49 +0200 [thread overview]
Message-ID: <20160413063649.GU9102@pengutronix.de> (raw)
In-Reply-To: <CAKu_b=KWS1Jce4gW+eSNzHX4SceEDPFKOfM4pxyTxBy1ZD8g7w@mail.gmail.com>
Hi Jason,
On Tue, Apr 12, 2016 at 10:08:01PM -0700, Jason Cobham wrote:
> Support for Barebox on the Digi connectcore imx53 board stopped
> working recently. I believe the memory detection never worked properly
> to begin with. I've re-factored lowlevel.c to match similar mx53
> boards, however the ram size is always detected incorrectly.
So you replaced barebox_arm_entry with imx53_barebox_entry, right? What
memory size do you have and what size gets detected then?
> I have a
> reliable way of detecting the board memory size in device_initcall.
>
> I've tried adding mem_initcall/arm_add_mem_device() however mmu
> support causes a panic when enabled. without mmu support enabled, the
> board boots with the correct memory size however I get an error,
> "Cannot request SDRAM region for stack".
>
> I've tried to use the freescale loco/qsb as a template since the digi
> board is similar, but I don't see where it's memory size is defined. I
> assume it's automatically detected.
Yes, it's read back from the memory controller in arch/arm/mach-imx/esdctl.c.
The whole approach goes like this:
- The SDRAM controller is configured by board specific lowlevel code (or
DCD data)
- barebox_arm_entry() is called with some memory passed to it. This can be
the full memory of the board, but doesn't necessarily have to be. It
is only the memory barebox will use for itself, stack, malloc area.
imx53_barebox_entry() is a shortcut which reads back the SDRAM
controller settings to automatically detect SDRAM size and which calls
barebox_arm_entry() with the result.
- during mem_initcall the imx-esdctl driver is registered. This driver
again reads back the SDRAM controller settings and registers memory
banks according to the settings.
- Also during mem_initcall the memory areas specified in the device tree
are registered.
If there are conflicts between the different banks then the first one
wins. If then the MMU code later detects that the SDRAM passed to
barebox_arm_entry() is actually bigger than the memory registered in the
memory banks it can have undesired results.
As a first step you should remove the /memory node in
arch/arm/dts/imx53-ccxmx53.dtsi. Since there are different possible
memory setups for this board it is wrong anyway. Then it would be
interesting what imx_esdctl_v4_add_mem() detects. I believe it should be
possible to fix it if it detects the wrong memory size.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2016-04-13 6:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-13 5:08 Jason Cobham
2016-04-13 6:36 ` Sascha Hauer [this message]
2016-04-14 4:38 ` Jason Cobham
2016-04-14 6:54 ` 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=20160413063649.GU9102@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=cobham.jason@gmail.com \
/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