From: Christoffer Dall <christoffer.dall@linaro.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 4/7] ARM: switch to non-secure state during bootm execution
Date: Tue, 30 Jul 2013 07:23:58 -0700 [thread overview]
Message-ID: <20130730142358.GA6722@cbox> (raw)
In-Reply-To: <51F7A43E.4020903@linaro.org>
On Tue, Jul 30, 2013 at 01:32:14PM +0200, Andre Przywara wrote:
> On 07/30/2013 12:02 AM, Christoffer Dall wrote:
> >On Wed, Jul 10, 2013 at 01:54:16AM +0200, Andre Przywara wrote:
> >
> >[...]
> >
> >>diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
> >>index 1b6e0ac..7b0619e 100644
> >>--- a/arch/arm/lib/bootm.c
> >>+++ b/arch/arm/lib/bootm.c
> >>@@ -34,6 +34,10 @@
> >> #include <asm/bootm.h>
> >> #include <linux/compiler.h>
> >>
> >>+#ifdef CONFIG_ARMV7_NONSEC
> >>+#include <asm/armv7.h>
> >>+#endif
> >>+
> >> DECLARE_GLOBAL_DATA_PTR;
> >>
> >> static struct tag *params;
> >>@@ -186,6 +190,29 @@ static void setup_end_tag(bd_t *bd)
> >>
> >> __weak void setup_board_tags(struct tag **in_params) {}
> >>
> >>+static void do_nonsec_virt_switch(void)
> >>+{
> >>+#ifdef CONFIG_ARMV7_NONSEC
> >>+ int ret;
> >>+
> >>+ ret = armv7_switch_nonsec();
> >>+ switch (ret) {
> >>+ case NONSEC_VIRT_SUCCESS:
> >>+ debug("entered non-secure state\n");
> >>+ break;
> >>+ case NONSEC_ERR_NO_SEC_EXT:
> >>+ printf("nonsec: Security extensions not implemented.\n");
> >>+ break;
> >>+ case NONSEC_ERR_NO_GIC_ADDRESS:
> >>+ printf("nonsec: could not determine GIC address.\n");
> >>+ break;
> >>+ case NONSEC_ERR_GIC_ADDRESS_ABOVE_4GB:
> >>+ printf("nonsec: PERIPHBASE is above 4 GB, no access.\n");
> >>+ break;
> >>+ }
> >>+#endif
> >>+}
> >
> >I still don't get why you just don't make armv7_switch_nonsec a void and
> >print the error when they occur... ???
>
> My apologies for not elaborating on these comments I didn't incorporate:
>
> So, I don't like the idea of marrying a low-level routine with high
> level output. I don't want to constraint the usage of the routine by
> requiring an output channel. Also some parts may not be fatal for
> all users - someone could just try to switch and then behave
> differently if that failed - without bothering the user.
> May seem a bit over-engineered, but I like it better this way ;-)
>
> If that is a show-stopper for you, I can change it, of course.
>
I won't hold back my ack for the patch series based on this, but I do
think it's over-engineered. I think at least just returning -1 for
error and 0 for success (or even make it a bool) and just printing a
generic error message is cleaner - the level of details as to why the
switch to hyp/nonsec didn't work could then be debug statements that a
board developer could enable with a "#define DEBUG 1" in the
corresponding file.
But ok, we've had the conversation, if you still feel this is better and
necessary, then I'll let it be.
-Christoffer
next prev parent reply other threads:[~2013-07-30 14:23 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-09 23:54 [U-Boot] [PATCH v3 0/7] ARMv7: Add HYP mode switching support Andre Przywara
2013-07-09 23:54 ` [U-Boot] [PATCH v3 1/7] ARM: prepare armv7.h to be included from assembly source Andre Przywara
2013-07-09 23:54 ` [U-Boot] [PATCH v3 2/7] ARM: add secure monitor handler to switch to non-secure state Andre Przywara
2013-07-29 22:02 ` Christoffer Dall
2013-07-30 11:38 ` Andre Przywara
2013-07-09 23:54 ` [U-Boot] [PATCH v3 3/7] ARM: add assembly routine " Andre Przywara
2013-07-10 12:47 ` Nikolay Nikolaev
2013-07-09 23:54 ` [U-Boot] [PATCH v3 4/7] ARM: switch to non-secure state during bootm execution Andre Przywara
2013-07-10 12:49 ` Nikolay Nikolaev
2013-07-29 22:02 ` Christoffer Dall
2013-07-30 11:32 ` Andre Przywara
2013-07-30 14:23 ` Christoffer Dall [this message]
2013-07-09 23:54 ` [U-Boot] [PATCH v3 5/7] ARM: add SMP support for non-secure switch Andre Przywara
2013-07-29 22:02 ` Christoffer Dall
2013-07-30 11:51 ` Andre Przywara
2013-07-30 14:28 ` Christoffer Dall
2013-07-09 23:54 ` [U-Boot] [PATCH v3 6/7] ARM: extend non-secure switch to also go into HYP mode Andre Przywara
2013-07-29 22:02 ` Christoffer Dall
2013-07-30 11:59 ` Andre Przywara
2013-07-30 14:31 ` Christoffer Dall
2013-08-05 5:15 ` Masahiro Yamada
2013-07-09 23:54 ` [U-Boot] [PATCH v3 7/7] ARM: VExpress: enable ARMv7 virt support for VExpress A15 Andre Przywara
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=20130730142358.GA6722@cbox \
--to=christoffer.dall@linaro.org \
--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 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.