From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] pine64 and "sunxi: Move the SPL stack top to 0x1A000 on Allwinner A64/A80"
Date: Thu, 4 Aug 2016 17:05:18 -0400 [thread overview]
Message-ID: <20160804210518.GL9942@bill-the-cat> (raw)
In-Reply-To: <20160804225830.7964a383@i7>
On Thu, Aug 04, 2016 at 10:58:30PM +0300, Siarhei Siamashka wrote:
> On Thu, 4 Aug 2016 11:40:25 -0400
> Tom Rini <trini@konsulko.com> wrote:
>
> > On Thu, Aug 04, 2016 at 11:36:01AM -0400, Tom Rini wrote:
> > > On Thu, Aug 04, 2016 at 04:14:21PM +0100, Andre Przywara wrote:
> > > > Hi,
> > > >
> > > > On 04/08/16 16:01, Tom Rini wrote:
> > > > > Hey guys,
> > > > >
> > > > > I just started trying out my Pine64 1GB and mainline U-Boot and I've
> > > > > found that:
> > > > > commit 1a83fb4a17d959d7b037999ab7ed7e62429abe34
> > > > > Author: Siarhei Siamashka <siarhei.siamashka@gmail.com>
> > > > > Date: Tue May 31 01:48:06 2016 +0300
> > > > >
> > > > > sunxi: Move the SPL stack top to 0x1A000 on Allwinner A64/A80
> > > > >
> > > > > is breaking boot for me. boot0 seems to run fine and then the last bit
> > > > > of output that I get is:
> > > > > boot0: start load other image
> > > > > boot0: Loading BL3-1
> > > > > Loading file 0 at address 0x40000000,size 0x00000200 success
> > > > > boot0: Loading scp
> > > > > Loading file 2 at address 0x00040000,size 0x0000c200 success
> > > > > set arisc reset to de-assert state
> > > > > Ready to disable icache.
> > > > > Jump to secend Boot.
> > > > > NOTICE: BL3-1: Running in SRAM A2 (@0x44000)
> > > > > NOTICE: Configuring SPC Controller
> > > > > NOTICE: BL3-1: v1.0(debug):d697594
> > > > > NOTICE: BL3-1: Built : 09:15:57, Aug 4 2016
> > > > > NOTICE: Configuring AXP PMIC
> > > > > NOTICE: PMIC: already configured for RSB
> > > > > NOTICE: PMIC: setup successful
> > > > > INFO: BL3-1: Initializing runtime services
> > > > > INFO: BL3-1: Preparing for EL3 exit to normal world
> > > > > INFO: BL3-1: Next image address: 0x4a000000, SPSR: 0x3c9
> > > > >
> > > > > I'm using d697594 from
> > > > > https://github.com/apritzel/arm-trusted-firmware.git for ATF and
> > > > > boot0.img from the 20160701 Debian "longsleep" image. Any ideas?
> > > >
> > > > Yes, we were experiencing similar issues, basically it's stuck in
> > > > start.S, as far as I could quickly check.
> > > > Siarhei and I were doubtful that this commit (which we eyed at before)
> > > > could be the culprit, as it _should_ affect only SPL code, which we
> > > > don't use atm.
>
> Well, it does affect the main U-Boot binary too, as we checked some
> days ago on IRC. I was about to send some patches to address this issue.
>
> > > It's not touching SPL code tho. You're changing CONFIG_SYS_INIT_SP_ADDR
> > > which is the start of _main in arch/arm/lib/crt0_64.S
> > >
> >
> > Or to be extra clear:
> > @@ -100,7 +100,7 @@
> > * the 1 actually activates the mapping of the first 32 KiB to 0x00000000.
> > */
> > #define CONFIG_SYS_INIT_RAM_ADDR 0x10000
> > -#define CONFIG_SYS_INIT_RAM_SIZE 0x08000 /* FIXME: 40 KiB ? */
> > +#define CONFIG_SYS_INIT_RAM_SIZE 0xA000 /* 40 KiB */
> > #else
> > #define CONFIG_SYS_INIT_RAM_ADDR 0x0
> > #define CONFIG_SYS_INIT_RAM_SIZE 0x8000 /* 32 KiB */
> >
> > is changing CONFIG_SYS_INIT_SP_ADDR which is in U-Boot proper. To
> > change the SPL stack pointer you use CONFIG_SPL_STACK which is what the
> > second hunk tweaks.
>
> Yes, except that apparently there is a bug in
> "arch/arm/cpu/armv7/lowlevel_init.S" and it also uses
> CONFIG_SYS_INIT_SP_ADDR for the SPL.
That particular set of code could use yet another thinking over and
checking, yeah.
> It is safe to revert this patch right now and come up with a better fix
> later. The patch only tries to ensure the availability of more space
> for the SPL, because the SPL code size was bigger than 24K on
> Pine64 before switching to tiny printf.
OK. Can you please send a revert? Or shall I?
> The root cause of all these troubles is that on Allwinner A64 the
> SRAM C is apparently temporarily leased from the Cedar VE accelerator
> during the boot time. This was a relatively recent discovery:
>
> http://irclog.whitequark.org/linux-sunxi/2016-06-29#16862925;
>
> And an ugly part of it is that accessing SRAM C directly by the CPU
> is unreliable if AHB1 is clocked at 200MHz (default when running the
> Allwinner's Linux kernel). But the SRAM C works fine with AHB1 clocked
> at 100MHz (which is, for example the default clock speed in the
> FEL mode). So after AHB1 is reclocked (by boot0), nobody can safely
> access SRAM C anymore.
Ah, that is interesting and good to know. Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160804/01d00116/attachment.sig>
prev parent reply other threads:[~2016-08-04 21:05 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-04 15:01 [U-Boot] pine64 and "sunxi: Move the SPL stack top to 0x1A000 on Allwinner A64/A80" Tom Rini
2016-08-04 15:14 ` Andre Przywara
2016-08-04 15:36 ` Tom Rini
2016-08-04 15:40 ` Tom Rini
2016-08-04 19:58 ` Siarhei Siamashka
2016-08-04 20:43 ` André Przywara
2016-08-04 21:05 ` Tom Rini [this message]
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=20160804210518.GL9942@bill-the-cat \
--to=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/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