From: Tony Lindgren <tony@atomide.com>
To: "Andrew F. Davis" <afd@ti.com>
Cc: Tero Kristo <t-kristo@ti.com>, Keerthy <j-keerthy@ti.com>,
Russell King <rmk+kernel@armlinux.org.uk>,
linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: omap2+: Revert omap-smp.c changes resetting CPU1 during boot
Date: Tue, 14 Mar 2017 11:14:26 -0700 [thread overview]
Message-ID: <20170314181425.GF20572@atomide.com> (raw)
In-Reply-To: <ea09d676-29f6-7100-4c68-88920deaeb7c@ti.com>
* Andrew F. Davis <afd@ti.com> [170314 10:59]:
> On 03/14/2017 11:41 AM, Tony Lindgren wrote:
> > * Andrew F. Davis <afd@ti.com> [170314 09:04]:
> >> On 03/14/2017 10:17 AM, Tony Lindgren wrote:
> >>> And if the CPU1 start-up address is programmed to be in the currently
> >>> booting kernel's area by something else, it's almost certainly totally
> >>> broken.
> >>>
> >>
> >> I disagree, the core can be parked correctly and still have the boot-to
> >> address point to anywhere. There are two registers in play here, one
> >> sets the target jump-to address, the other lets it out of the parking
> >> loop. To know we are not parked we need to check the parking release
> >> register, the jump-to address is completely irrelevant as a check for
> >> proper parking.
> >
> > Well at this point we have CPU1 parked and configured for a wrong
> > start-up address. So the boot-to address is a valid check. I can
> > certainly add a check for CPU1 being parked too.
OK I sent out v3 version of the patch doing that. Can you please
review and test that one?
<snip>
Then onto the other related patches..
> We re-park cpu1 in bootROM in U-Boot already, in the U-Boot tree:
> arch/arm/mach-omap2/omap5/sec_entry_cpu1.S
OK good to hear.
> omap_smc_sec_cpu1() wakes up cpu1 into the function cpu1_entry(), this
> makes an SMC call to setup the core, then re-parks itself back in bootROM.
> Relevant code to run on cpu1:
>
> > #define AUX_CORE_BOOT_0 0x48281800
> > #define AUX_CORE_BOOT_1 0x48281804
> > /* DRA7xx ROM code function "startup_BootSlave". This function is where CPU1
> > * waits on WFE, polling on AUX_CORE_BOOT_x registers.
> > * This address is same for J6 and J6 Eco.
> > */
> > #define ROM_FXN_STARTUP_BOOTSLAVE 0x00038a64
> >
> > ldr r4, =AUX_CORE_BOOT_0
> > mov r5, #0x0
> > str r5, [r4]
> > ldr r4, =ROM_FXN_STARTUP_BOOTSLAVE
> > bx r4 @ Jump back to ROM
>
> We would have to do this in kernel. The issue I'm thinking we are going
> to hit is that the parking function in bootROM expects the MMU to be
> off. Although we don't really need to turn it off as long as we can
> identity map the bootROM area, the AUX_CORE_BOOT_0/1 space, and wherever
> we plan to exit the parking loop.
Would be good to hear what Russell thinks we should do here to park
CPU1.
Regards,
Tony
WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: omap2+: Revert omap-smp.c changes resetting CPU1 during boot
Date: Tue, 14 Mar 2017 11:14:26 -0700 [thread overview]
Message-ID: <20170314181425.GF20572@atomide.com> (raw)
In-Reply-To: <ea09d676-29f6-7100-4c68-88920deaeb7c@ti.com>
* Andrew F. Davis <afd@ti.com> [170314 10:59]:
> On 03/14/2017 11:41 AM, Tony Lindgren wrote:
> > * Andrew F. Davis <afd@ti.com> [170314 09:04]:
> >> On 03/14/2017 10:17 AM, Tony Lindgren wrote:
> >>> And if the CPU1 start-up address is programmed to be in the currently
> >>> booting kernel's area by something else, it's almost certainly totally
> >>> broken.
> >>>
> >>
> >> I disagree, the core can be parked correctly and still have the boot-to
> >> address point to anywhere. There are two registers in play here, one
> >> sets the target jump-to address, the other lets it out of the parking
> >> loop. To know we are not parked we need to check the parking release
> >> register, the jump-to address is completely irrelevant as a check for
> >> proper parking.
> >
> > Well at this point we have CPU1 parked and configured for a wrong
> > start-up address. So the boot-to address is a valid check. I can
> > certainly add a check for CPU1 being parked too.
OK I sent out v3 version of the patch doing that. Can you please
review and test that one?
<snip>
Then onto the other related patches..
> We re-park cpu1 in bootROM in U-Boot already, in the U-Boot tree:
> arch/arm/mach-omap2/omap5/sec_entry_cpu1.S
OK good to hear.
> omap_smc_sec_cpu1() wakes up cpu1 into the function cpu1_entry(), this
> makes an SMC call to setup the core, then re-parks itself back in bootROM.
> Relevant code to run on cpu1:
>
> > #define AUX_CORE_BOOT_0 0x48281800
> > #define AUX_CORE_BOOT_1 0x48281804
> > /* DRA7xx ROM code function "startup_BootSlave". This function is where CPU1
> > * waits on WFE, polling on AUX_CORE_BOOT_x registers.
> > * This address is same for J6 and J6 Eco.
> > */
> > #define ROM_FXN_STARTUP_BOOTSLAVE 0x00038a64
> >
> > ldr r4, =AUX_CORE_BOOT_0
> > mov r5, #0x0
> > str r5, [r4]
> > ldr r4, =ROM_FXN_STARTUP_BOOTSLAVE
> > bx r4 @ Jump back to ROM
>
> We would have to do this in kernel. The issue I'm thinking we are going
> to hit is that the parking function in bootROM expects the MMU to be
> off. Although we don't really need to turn it off as long as we can
> identity map the bootROM area, the AUX_CORE_BOOT_0/1 space, and wherever
> we plan to exit the parking loop.
Would be good to hear what Russell thinks we should do here to park
CPU1.
Regards,
Tony
next prev parent reply other threads:[~2017-03-14 18:14 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-13 20:52 [PATCH] ARM: omap2+: Revert omap-smp.c changes resetting CPU1 during boot Tony Lindgren
2017-03-13 20:52 ` Tony Lindgren
2017-03-13 21:28 ` Andrew F. Davis
2017-03-13 21:28 ` Andrew F. Davis
2017-03-13 21:47 ` Tony Lindgren
2017-03-13 21:47 ` Tony Lindgren
2017-03-14 7:30 ` Tero Kristo
2017-03-14 7:30 ` Tero Kristo
2017-03-14 15:17 ` Tony Lindgren
2017-03-14 15:17 ` Tony Lindgren
2017-03-14 16:02 ` Andrew F. Davis
2017-03-14 16:02 ` Andrew F. Davis
2017-03-14 16:41 ` Tony Lindgren
2017-03-14 16:41 ` Tony Lindgren
2017-03-14 17:57 ` Andrew F. Davis
2017-03-14 17:57 ` Andrew F. Davis
2017-03-14 18:14 ` Tony Lindgren [this message]
2017-03-14 18:14 ` Tony Lindgren
2017-03-15 17:22 ` Tony Lindgren
2017-03-15 17:22 ` Tony Lindgren
2017-03-16 15:29 ` Tony Lindgren
2017-03-16 15:29 ` Tony Lindgren
2017-03-17 9:24 ` Russell King - ARM Linux
2017-03-17 9:24 ` Russell King - ARM Linux
2017-03-17 13:57 ` Tony Lindgren
2017-03-17 13:57 ` Tony Lindgren
2017-03-17 16:25 ` Andrew F. Davis
2017-03-17 16:25 ` Andrew F. Davis
2017-03-22 17:57 ` Tony Lindgren
2017-03-22 17:57 ` Tony Lindgren
-- strict thread matches above, loose matches on Subject: below --
2017-02-13 21:50 [PATCH] ARM: omap2+: Revert omap-smp.c changes resetting cpu1 " Tony Lindgren
2017-02-13 21:50 ` Tony Lindgren
2017-02-14 19:36 ` Tony Lindgren
2017-02-14 19:36 ` Tony Lindgren
2017-02-15 18:39 ` Tony Lindgren
2017-02-15 18:39 ` Tony Lindgren
2017-02-15 19:12 ` Tony Lindgren
2017-02-15 19:12 ` Tony Lindgren
2017-02-15 22:13 ` Andrew F. Davis
2017-02-15 22:13 ` Andrew F. Davis
2017-02-15 22:27 ` Tony Lindgren
2017-02-15 22:27 ` Tony Lindgren
2017-02-16 16:10 ` Tony Lindgren
2017-02-16 16:10 ` Tony Lindgren
2017-02-16 16:21 ` Tony Lindgren
2017-02-16 16:21 ` Tony Lindgren
2017-02-16 16:29 ` Andrew F. Davis
2017-02-16 16:29 ` Andrew F. Davis
2017-02-16 16:54 ` Tony Lindgren
2017-02-16 16:54 ` Tony Lindgren
2017-02-16 19:07 ` Tony Lindgren
2017-02-16 19:07 ` Tony Lindgren
2017-02-17 15:55 ` Tony Lindgren
2017-02-17 15:55 ` Tony Lindgren
2017-02-17 20:27 ` Andrew F. Davis
2017-02-17 20:27 ` Andrew F. Davis
2017-02-17 21:09 ` Tony Lindgren
2017-02-17 21:09 ` Tony Lindgren
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=20170314181425.GF20572@atomide.com \
--to=tony@atomide.com \
--cc=afd@ti.com \
--cc=j-keerthy@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=rmk+kernel@armlinux.org.uk \
--cc=t-kristo@ti.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.