All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] armv8: aarch64: Fix the warning about x1-x3 nonzero issue
Date: Fri, 13 Jan 2017 10:55:02 +0100	[thread overview]
Message-ID: <312efd87-c8e7-e87d-a25e-1f0e48553b6b@suse.de> (raw)
In-Reply-To: <DB6PR0401MB2584838578752590912BFD62F4780@DB6PR0401MB2584.eurprd04.prod.outlook.com>

On 01/13/2017 10:36 AM, Alison Wang wrote:
>> On 01/13/2017 09:23 AM, Alison Wang wrote:
>>>>> Am 13.01.2017 um 08:50 schrieb Alison Wang <b18965@freescale.com>:
>>>>>
>>>>> For 64-bit kernel, there is a warning about x1-x3 nonzero in
>>>> violation
>>>>> of boot protocol. x3 should be reset to zero before jumping to the
>>>>> kernel.
>>>>>
>>>>> This patch will adjust the parameters to transfer and make sure x3
>>>>> is zero.
>>>>>
>>>>> Signed-off-by: Alison Wang <alison.wang@nxp.com>
>>>> If x3 is part of the boot protocol, please treat it as function
>>>> argument rather than hard code it to 0.
>>>>
>>> [Alison Wang] I think x3 need to set to 0. Refer to the codes for the
>>> warning in kernel,
>>>
>>>           if (boot_args[1] || boot_args[2] || boot_args[3]) {
>>>                   pr_err("WARNING: x1-x3 nonzero in violation of boot
>> protocol:\n"
>> "\tx1: %016llx\n\tx2: %016llx\n\tx3: %016llx\n"
>>>                           "This indicates a broken bootloader or old
>> kernel\n",
>>>                           boot_args[1], boot_args[2], boot_args[3]);
>>>           }
>> Yes, that merely means that the kernel doesn't take 3 arguments, it
>> takes 4. Today args[1..3] have to be 0, but I don't want to iron that
>> out in u-boot code.
>>
>> So in pseudo-code, what we do today is we call
>>
>>     entry(dt_addr, 0, 0);
>>
>> and instead we should be calling
>>
>>     entry(dt_addr, 0, 0, 0);
>>
>> So in U-Boot code that means we should change the prototype for our
>> switch function from
>>
>> void armv8_switch_to_el2(u64 args, u64 mach_nr, u64 fdt_addr,
>>                            u64 entry_point, u64 es_flag);
>>
>> to
>>
>> void armv8_switch_to_el2(u64 args, u64 mach_nr, u64 fdt_addr,
>>                            u64 arg4, u64 entry_point, u64 es_flag);
>>
>> and adapt the macros accordingly to use x5/x6 instead of x4/5.
>>
> [Alison Wang] I understand your meaning. Actually, I thought that method too. Well, my concern is that there are more changes. Not only armv8_switch_to_el2 and armv8_switch_to_el1, all the places calling them need to change too. It may cause more problems. With this concern, I choose a simple way to fix this issue before.

I think there'll be enough people testing Linux boot :), let's try to 
fix it properly right away.


Alex

  reply	other threads:[~2017-01-13  9:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-13  7:50 [U-Boot] [PATCH] armv8: aarch64: Fix the warning about x1-x3 nonzero issue Alison Wang
2017-01-13  8:11 ` Alexander Graf
2017-01-13  8:23   ` Alison Wang
2017-01-13  8:33     ` Alexander Graf
2017-01-13  9:36       ` Alison Wang
2017-01-13  9:55         ` Alexander Graf [this message]
2017-01-16  6:31           ` Alison Wang
2017-01-13  8:16 ` Alison Wang
     [not found]   ` <CAD0U-hKbBx=cYCCK1Wqd2TQsrC-D92ae0LPbdSk+unm0Y4LvVQ@mail.gmail.com>
     [not found]     ` <CAD0U-hLZnrfFWdC55s2owGue6yS4uniQXMeQUwaeWMq-g4sP+g@mail.gmail.com>
2017-01-13  8:41       ` Ryan Harkin

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=312efd87-c8e7-e87d-a25e-1f0e48553b6b@suse.de \
    --to=agraf@suse.de \
    --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.