All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rick Chen <rickchen36@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH] riscv: Split SiFive CLINT support between SPL and U-Boot proper
Date: Tue, 18 May 2021 10:05:11 +0800	[thread overview]
Message-ID: <CAN5B=eJx3dgNwSs_qpom+EdS1f97ohpftvQToQ5Y3fGvSxyffg@mail.gmail.com> (raw)
In-Reply-To: <752D002CFF5D0F4FA35C0100F1D73F3FE5EA2FA5@ATCPCS12.andestech.com>

> From: Bin Meng <bmeng.cn@gmail.com>
> Sent: Tuesday, May 11, 2021 8:04 PM
> To: Rick Jian-Zhi Chen(???) <rick@andestech.com>; Sean Anderson <seanga2@gmail.com>; u-boot at lists.denx.de
> Cc: Anup Patel <anup.patel@wdc.com>; Bin Meng <bmeng.cn@gmail.com>
> Subject: [PATCH] riscv: Split SiFive CLINT support between SPL and U-Boot proper
>
> At present there is only one Kconfig option CONFIG_SIFIVE_CLINT to control the enabling of SiFive CLINT support in both SPL (M-mode) and U-Boot proper (S-mode). So for a typical SPL config that the SiFive CLINT driver is enabled in both SPL and U-Boot proper, that means the S-mode U-Boot tries to access the memory-mapped CLINT registers directly, instead of the normal 'rdtime' instruction.
>
> This was not a problem before, as the hardware does not forbid the access from S-mode. However this becomes an issue now with OpenSBI commit 8b569803475e ("lib: utils/sys: Add CLINT memregion in the root domain") that the SiFive CLINT register space is protected by PMP for M-mode access only. U-Boot proper does not boot any more with the latest OpenSBI, that access exceptions are fired forever from U-Boot when trying to read the timer value via the SiFive CLINT driver in U-Boot.
>
> To solve this, we need to split current SiFive CLINT support between SPL and U-Boot proper, using 2 separate Kconfig options.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> ---
>
>  arch/riscv/Kconfig                   | 9 ++++++++-
>  arch/riscv/cpu/fu540/Kconfig         | 2 +-
>  arch/riscv/cpu/generic/Kconfig       | 3 ++-
>  arch/riscv/include/asm/global_data.h | 2 +-
>  arch/riscv/lib/Makefile              | 2 +-
>  drivers/timer/Makefile               | 2 +-
>  6 files changed, 14 insertions(+), 6 deletions(-)

Reviewed-by: Rick Chen <rick@andestech.com>

      parent reply	other threads:[~2021-05-18  2:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-11 12:04 [PATCH] riscv: Split SiFive CLINT support between SPL and U-Boot proper Bin Meng
2021-05-11 12:52 ` Sean Anderson
     [not found] ` <752D002CFF5D0F4FA35C0100F1D73F3FE5EA2FA5@ATCPCS12.andestech.com>
2021-05-18  2:05   ` Rick Chen [this message]

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='CAN5B=eJx3dgNwSs_qpom+EdS1f97ohpftvQToQ5Y3fGvSxyffg@mail.gmail.com' \
    --to=rickchen36@gmail.com \
    --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.