From: marc_gonzalez@sigmadesigns.com (Marc Gonzalez)
To: linux-arm-kernel@lists.infradead.org
Subject: l2c: Kernel panic in l2c310_enable() in non-secure mode
Date: Thu, 15 Oct 2015 12:00:40 +0200 [thread overview]
Message-ID: <561F7948.8080201@sigmadesigns.com> (raw)
In-Reply-To: <20151014174721.GR32532@n2100.arm.linux.org.uk>
On 14/10/2015 19:47, Russell King - ARM Linux wrote:
> Wrong. Do _not_ enable FLZ in the Cortex-A9. FLZ needs the L2 cache
> enabled _before_ the Cortex A9. This is not something you can do in
> firmware/boot loader/etc. It has to be done by the kernel when the L2
> cache is initialised.
Can you tell me if the following setup is reasonable?
(The important thing to note is that I do have control over the firmware.)
l2c_enable and l2c_disable will hand control over to the firmware,
which will handle the details of FLOZ:
When enabling the L2, firmware will:
A1) set L2CC_reg1_aux_control[0] to 1
A2) enable the L2
A3) set CP15_ACTLR bits 1,2,3 to 1
When disabling the L2, firmware will:
B1) clear CP15_ACTLR bits 1,2,3 to 0
B2) disable the L2
B3) clear L2CC_reg1_aux_control[0] to 0
Thus, on my platform, Linux would no longer need to write CP15_ACTLR.
Then I just need a platform-specific bool e.g. "firmware_handles_cp15_actlr"
and check it where appropriate:
In enable:
if (!firmware_handles_cp15_actlr && (aux & L310_AUX_CTRL_FULL_LINE_ZERO)) {
set_auxcr(get_auxcr() | BIT(3) | BIT(2) | BIT(1));
cpu_notifier(l2c310_cpu_enable_flz, 0);
}
In disable:
if (!firmware_handles_cp15_actlr && (l2x0_saved_regs.aux_ctrl & L310_AUX_CTRL_FULL_LINE_ZERO))
set_auxcr(get_auxcr() & ~(BIT(3) | BIT(2) | BIT(1)));
What do you think?
Regards.
next prev parent reply other threads:[~2015-10-15 10:00 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-14 14:17 l2c: Kernel panic in l2c310_enable() in non-secure mode Marc Gonzalez
2015-10-14 14:47 ` Marc Gonzalez
2015-10-14 17:06 ` Rob Herring
2015-10-15 8:56 ` Marc Gonzalez
2015-10-15 9:09 ` Russell King - ARM Linux
2015-10-14 17:47 ` Russell King - ARM Linux
2015-10-14 20:28 ` Mason
2015-10-15 10:00 ` Marc Gonzalez [this message]
2015-10-15 11:07 ` Marc Gonzalez
2015-10-16 9:51 ` Mason
2015-10-14 17:45 ` Russell King - ARM Linux
2015-10-14 19:34 ` Mason
2015-10-14 20:19 ` Peter Maydell
2015-10-14 21:08 ` Russell King - ARM Linux
2015-10-15 8:27 ` Marc Gonzalez
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=561F7948.8080201@sigmadesigns.com \
--to=marc_gonzalez@sigmadesigns.com \
--cc=linux-arm-kernel@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 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.