All of lore.kernel.org
 help / color / mirror / Atom feed
From: Darren Hart <darren@os.amperecomputing.com>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: Andrea Righi <andrea.righi@canonical.com>,
	"Jason A. Donenfeld" <Jason@zx2c4.com>,
	Paolo Pisati <paolo.pisati@canonical.com>,
	linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: kernel 6.2 stuck at boot (efi_call_rts) on arm64
Date: Mon, 20 Mar 2023 11:00:48 -0700	[thread overview]
Message-ID: <ZBifUCbeEwP/m3ko@fedora> (raw)
In-Reply-To: <CAMj1kXF8G3G41cPt+5=nB2D_uEaB_iXh6=3ZcTFTHrpsVm5D5g@mail.gmail.com>

On Sat, Mar 18, 2023 at 11:35:44AM +0100, Ard Biesheuvel wrote:
> On Thu, 16 Mar 2023 at 23:28, Darren Hart <darren@os.amperecomputing.com> wrote:
> >
> > On Thu, Mar 16, 2023 at 07:55:36PM +0100, Ard Biesheuvel wrote:
> > > On Thu, 16 Mar 2023 at 18:52, Andrea Righi <andrea.righi@canonical.com> wrote:
> ...
> > > >
> > > > Yay! Success! I just tested your latest efi/urgent (with the fixup) and
> > > > system completed the boot without any soft lockups.
> > > >
> > >
> > > Thanks for confirming. I'll take that as a tested-by
> >
> > The solution in the current branch looks like the best approach we have to date
> > to address the broadest of affected systems. We could switch the eMAG test to an
> > MIDR test I believe (but this won't work for Altra as that would capture all the
> > Neoverse v1 cores beyond Altra). I can look into the MIDR test if you think it's
> > worthwhile - but since I don't think we can eliminate the SMBIOS string test, it
> > doesn't buy us much since we don't need a greedier eMAG test (there aren't more
> > of them to match).
> >
> > Given that some OEM Altra platforms change the processor ID, I don't see a
> > better solution currently than adding their the "product name" to the smbios
> > string tests unfortunately.
> >
> 
> Indeed. I spotted a Gigabyte system [0] with a different processor ID,
> but with a version we can test for.
> 
> So for now, I'll go with
> 
>         socid = (u32 *)record->processor_id;
>         switch (*socid & 0xffff000f) {
>                 static char const altra[] = "Ampere(TM) Altra(TM) Processor";
>                 static char const emag[] = "eMAG";
>         default:
>                 version = efi_get_smbios_string(&record->header, 4,
>                                                 processor_version);
>                 if (!version || (strncmp(version, altra, sizeof(altra) - 1) &&
>                                  strncmp(version, emag, sizeof(emag) - 1)))
>                         break;
> 
>                 fallthrough;
> 
>         case 0x0a160001:        // Altra
>         case 0x0a160002:        // Altra Max
>                 efi_warn("Working around broken SetVirtualAddressMap()\n");
> ...
> 
> which should cover all the affected systems we encountered so far.
> 
> I'll push this to linux-next to let it soak for a little bit, and then
> send it to Linus somewhere during the week

Thank you Ard, I think this is our best option.

-- 
Darren Hart
Ampere Computing / OS and Kernel

  reply	other threads:[~2023-03-20 18:08 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-16  7:54 kernel 6.2 stuck at boot (efi_call_rts) on arm64 Andrea Righi
2023-03-16  7:58 ` Ard Biesheuvel
2023-03-16  9:45   ` Andrea Righi
2023-03-16  9:55     ` Ard Biesheuvel
2023-03-16 10:03       ` Andrea Righi
2023-03-16 10:18         ` Ard Biesheuvel
2023-03-16 11:33           ` Andrea Righi
2023-03-16 12:21             ` Ard Biesheuvel
2023-03-16 12:38               ` Ard Biesheuvel
2023-03-16 12:41                 ` Andrea Righi
2023-03-16 12:43                   ` Ard Biesheuvel
2023-03-16 12:49                     ` Andrea Righi
2023-03-16 13:45                       ` Ard Biesheuvel
2023-03-16 13:46                         ` Ard Biesheuvel
2023-03-16 13:50                         ` Andrea Righi
2023-03-16 13:53                           ` Ard Biesheuvel
2023-03-16 13:59                             ` Andrea Righi
2023-03-16 14:06                               ` Ard Biesheuvel
2023-03-16 14:08                                 ` Ard Biesheuvel
2023-03-16 14:25                                   ` Andrea Righi
2023-03-16 17:52                                   ` Andrea Righi
2023-03-16 18:55                                     ` Ard Biesheuvel
2023-03-16 18:57                                       ` Andrea Righi
2023-03-16 22:28                                       ` Darren Hart
2023-03-18 10:35                                         ` Ard Biesheuvel
2023-03-20 18:00                                           ` Darren Hart [this message]
2023-04-13 20:24                                           ` Andrea Righi
2023-04-17 22:05                                             ` Darren Hart
2023-04-18  5:42                                               ` Andrea Righi
2023-03-16  9:45 ` Linux regression tracking #adding (Thorsten Leemhuis)
2023-04-05 12:50   ` Linux regression tracking #update (Thorsten Leemhuis)

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=ZBifUCbeEwP/m3ko@fedora \
    --to=darren@os.amperecomputing.com \
    --cc=Jason@zx2c4.com \
    --cc=andrea.righi@canonical.com \
    --cc=ardb@kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paolo.pisati@canonical.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.