All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anup Patel <anup@brainfault.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 4/8] riscv: andes_plic: Fix some wrong configurations
Date: Wed, 6 Nov 2019 14:18:33 +0530	[thread overview]
Message-ID: <CAAhSdy0Da+=JMNZmUCvFiMDWdJOYUY8CRbzfPRXFvbo5k_Ygiw@mail.gmail.com> (raw)
In-Reply-To: <CAN5B=e+h1q_nHyJovAFeGwTRog=VCa+Qcq05oJZct87pn40FQQ@mail.gmail.com>

On Wed, Nov 6, 2019 at 12:14 PM Rick Chen <rickchen36@gmail.com> wrote:
>
> Hi Anup
>
> >
> > On Tue, Nov 5, 2019 at 7:19 AM Rick Chen <rickchen36@gmail.com> wrote:
> > >
> > > Hi Anup
> > >
> > > > > On Thu, Oct 31, 2019 at 1:42 PM Anup Patel <anup@brainfault.org> wrote:
> > > > > >
> > > > > > On Thu, Oct 31, 2019 at 6:30 AM Alan Kao <alankao@andestech.com> wrote:
> > > > > > >
> > > > > > > Hi Bin,
> > > > > > >
> > > > > > > Thanks for the critics.  Comments below.
> > > > > > > On Wed, Oct 30, 2019 at 06:38:00PM +0800, Bin Meng wrote:
> > > > > > > > Hi Rick,
> > > > > > > >
> > > > > > > > On Wed, Oct 30, 2019 at 10:50 AM Rick Chen <rickchen36@gmail.com> wrote:
> > > > > > > > >
> > > > > > > > > Hi Bin
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Hi Rick,
> > > > > > > > > >
> > > > > > > > > > On Fri, Oct 25, 2019 at 2:18 PM Andes <uboot@andestech.com> wrote:
> > > > > > > > > > >
> > > > > > > > > > > From: Rick Chen <rick@andestech.com>
> > > > > > > > > > >
> > > > > > > > > > > It will work fine due to hart 0 always will be main
> > > > > > > > > > > hart coincidentally. When develop SPL flow, I try to
> > > > > > > > > > > force other harts to be main hart. And it will go
> > > > > > > > > > > wrong in sending IPI flow. So fix it.
> > > > > > > > > >
> > > > > > > > > > Fix what? Does this commit contain 2 fixes, or just 1 fix?
> > > > > > > > >
> > > > > > > > > Yes, it include two fixs. But they will cause one negative result
> > > > > > > > > that only hart 0 can send ipi to other harts.
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Having this fix, any hart can be main hart in U-Boot SPL
> > > > > > > > > > > theoretically, but it still fail somewhere. After dig in
> > > > > > > > > > > and found there is an assumption that hart 0 shall be
> > > > > > > > > > > main hart in OpenSbi.
> > > > > > > > > >
> > > > > > > > > > So does this mean there is a bug in OpenSBI too?
> > > > > > > > >
> > > > > > > > > I am not sure if it is a bug. Maybe it is a compatible issue.
> > > > > > > > > There is a limitation that only hart 0 can be main hart in OpenSBI.
> > > > > > > >
> > > > > > > > I don't think OpenSBI has such limitation.
> > > > > > > >
> > > > > > >
> > > > > > > Please check the source.
> > > > > > > https://github.com/riscv/opensbi/blob/master/firmware/fw_base.S#L54
> > > > > > >
> > > > > > > Apparently, the FIRST TWO LINEs of the initialization are the
> > > > > > > 1. get hart ID.
> > > > > > > 2. determine which route to take based on their ID respectively.
> > > > > > >
> > > > > > > So, I do think OpenSBI has this signature, if you are not willing to call it
> > > > > > > a limitation.
> > > > > >
> > > > > > This dependency on hart id #0 was not there until we added self-relocation
> > > > > > in OpenSBI for FW_DYNAMIC.
> > > > > >
> > > > > > I will try to fix this in OpenSBI but we might end-up having boot_lottery.
> > > > >
> > > > > I have send a patch to fix this OpenSBI:
> > > > > "[PATCH] firmware: Introduce relocation lottery"
> > > > >
> > > > > Can you try above patch and see if that helps ?
> > > > >
> > > > > It will be great if you can provide Tested-by to my patch as well.
> > > > >
> > > >
> > >
> > > I can not find this patch in mailing list.
> > > Can you provide a hyperlink ?
> >
> > You can try latest riscv/opensbi master.
> >
> > I have tested the patch on SiFive Unleashed multiple times.
>
> I have tried this patch, but it fail
> firmware: Introduce relocation lottery(
> 98f4a208995b027662a7b04a25e4fa5df5f3eefe)
>
> The scenario was as below:
> There are 4 harts run in U-Boot SPL, hart 0 play as main hart.
> The hart 1 will receive ipi and come into OpenSBI(0x1000000) from
> U-Boot SPL(0x0), meanwhile hart 0,2,3 still run in U-Boot SPL.
> Then hart 1 will do _relocate_copy_to_lower which will copy data from
> 0x1000000 to 0x0.
> And it will corrupt U-Boot SPL.

The self-relocation in OpenSBI firmwares ensures that OpenSBI firmware
are moved to the FW_TEXT_START before entering C code. This helps
us load OpenSBI firmwares anywhere in RAM.

However, OpenSBI firmwares don't know where the U-Boot SPL is running.

In your case, both OpenSBI FW_DYNAMIC and U-Boot SPL are linked to
address same address 0x0. This means secondary HARTs cannot safely
wait while primary HART enters OpenSBI. You should hold secondary HARTs
in U-Boot SPL only till OpenSBI FW_DYNAMIC and U-Boot proper are
loaded in RAM by primary HART. All your HARTs should jump to OpenSBI
at the same time after everything is loaded in RAM.

Regards,
Anup

  reply	other threads:[~2019-11-06  8:48 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-25  6:10 [U-Boot] [PATCH 0/8] RISC-V AX25-AE350 support SPL Andes
2019-10-25  6:10 ` [U-Boot] [PATCH 1/8] riscv: ax25: add SPL support Andes
2019-10-29 14:29   ` Bin Meng
2019-10-30  0:42     ` Rick Chen
2019-10-30 10:06       ` Bin Meng
2019-10-31  2:11         ` Rick Chen
2019-10-25  6:10 ` [U-Boot] [PATCH 2/8] riscv: ax25-ae350: add SPL configuration Andes
2019-10-29 14:39   ` Bin Meng
2019-10-30  2:06     ` Rick Chen
2019-10-25  6:10 ` [U-Boot] [PATCH 3/8] riscv: ax25-ae350: Use generic memory size setup Andes
2019-10-29 14:42   ` Bin Meng
2019-10-30  2:19     ` Rick Chen
2019-10-25  6:10 ` [U-Boot] [PATCH 4/8] riscv: andes_plic: Fix some wrong configurations Andes
2019-10-29 14:51   ` Bin Meng
2019-10-30  2:50     ` Rick Chen
2019-10-30 10:38       ` Bin Meng
2019-10-31  1:00         ` Alan Kao
2019-10-31  3:36           ` Bin Meng
2019-10-31  7:48             ` Alan Kao
2019-10-31  8:10               ` Bin Meng
2019-10-31  8:12           ` Anup Patel
2019-10-31 10:43             ` Anup Patel
2019-11-01  5:25               ` Rick Chen
2019-11-05  1:50                 ` Rick Chen
2019-11-05  6:34                   ` Anup Patel
2019-11-06  6:44                     ` Rick Chen
2019-11-06  8:48                       ` Anup Patel [this message]
2019-11-06  8:58                         ` Anup Patel
2019-11-06  9:21                           ` Rick Chen
2019-11-06 11:11                             ` Anup Patel
2019-11-07  1:34                               ` Rick Chen
2019-11-07  5:15                                 ` Anup Patel
2019-11-07  5:45                                   ` Anup Patel
2019-11-07  6:10                                     ` Rick Chen
2019-11-07  6:18                                       ` Anup Patel
2019-11-07  9:41                                         ` Auer, Lukas
2019-11-07 10:44                                           ` Anup Patel
2019-11-07 11:41                                             ` Rick Chen
2019-11-07 12:22                                               ` Anup Patel
2019-11-08  1:23                                                 ` Rick Chen
2019-11-08 12:14                                                   ` Anup Patel
2019-11-07 18:44                                               ` Atish Patra
2019-11-08  1:13                                                 ` Rick Chen
2019-11-08  7:27                                                   ` Rick Chen
2019-11-08  8:59                                                     ` Auer, Lukas
2019-11-11  7:19                                                       ` Rick Chen
2019-11-12  9:47                                                         ` Auer, Lukas
2019-11-13  3:42                                                           ` Rick Chen
2019-11-14  7:27                                                             ` Anup Patel
2019-11-14 17:10                                                               ` Auer, Lukas
2019-11-07 11:44                                             ` Auer, Lukas
2019-11-07 12:27                                               ` Anup Patel
2019-11-07 13:37                                                 ` Auer, Lukas
2019-10-31  2:23         ` Rick Chen
2019-10-25  6:10 ` [U-Boot] [PATCH 5/8] riscv: ax25: cache: Add SPL_RISCV_MMODE for SPL Andes
2019-10-29 14:59   ` Bin Meng
2019-10-31  2:31     ` Rick Chen
2019-10-31  3:00       ` Bin Meng
2019-10-25  6:10 ` [U-Boot] [PATCH 6/8] spl: cache: Allow cache drivers in SPL Andes
2019-10-29 15:14   ` Bin Meng
2019-10-31  2:52     ` Rick Chen
2019-10-31  3:01       ` Bin Meng
2019-10-31  3:22         ` Rick Chen
2019-10-25  6:10 ` [U-Boot] [PATCH 7/8] riscv: Fix clear bss loop in the start-up code Andes
2019-10-29 15:16   ` Bin Meng
2019-10-31  3:10     ` Rick Chen
2019-10-31 12:55       ` Bin Meng
2019-11-01  5:24         ` Rick Chen
2019-10-25  6:10 ` [U-Boot] [PATCH 8/8] riscv: dts: Support four cores SMP Andes
2019-10-29 15:17   ` Bin Meng
2019-10-31  5:57     ` Rick Chen

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='CAAhSdy0Da+=JMNZmUCvFiMDWdJOYUY8CRbzfPRXFvbo5k_Ygiw@mail.gmail.com' \
    --to=anup@brainfault.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.