All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yu-Chien Peter Lin <peterlin@andestech.com>
To: Leo Yu-Chi Liang <ycliang@andestech.com>
Cc: <u-boot@lists.denx.de>, <randolph@andestech.com>
Subject: Re: [PATCH v2 2/6] andes: ae350: Implement cache switch via Kconfig
Date: Tue, 26 Dec 2023 15:34:56 +0800	[thread overview]
Message-ID: <ZYqCIE81m07KprNc@APC323> (raw)
In-Reply-To: <20231226061736.482416-2-ycliang@andestech.com>

On Tue, Dec 26, 2023 at 02:17:33PM +0800, Leo Yu-Chi Liang wrote:
> Kconfig provides SYS_[I|D]CACHE_OFF config options to switch off caches.
> Provide the corresponding implementation to the options.
> 
> Signed-off-by: Leo Yu-Chi Liang <ycliang@andestech.com>

Reviewed-by: Yu Chien Peter Lin <peterlin@andestech.com>

> ---
>  arch/riscv/cpu/andesv5/cpu.c  | 25 ++++++++++++++++---------
>  board/AndesTech/ae350/ae350.c |  3 ++-
>  2 files changed, 18 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/riscv/cpu/andesv5/cpu.c b/arch/riscv/cpu/andesv5/cpu.c
> index 63bc24cdfc..e764f6c5c0 100644
> --- a/arch/riscv/cpu/andesv5/cpu.c
> +++ b/arch/riscv/cpu/andesv5/cpu.c
> @@ -32,18 +32,25 @@ void harts_early_init(void)
>  	if (CONFIG_IS_ENABLED(RISCV_MMODE)) {
>  		unsigned long mcache_ctl_val = csr_read(CSR_MCACHE_CTL);
>  
> -		mcache_ctl_val |= (MCACHE_CTL_DC_COHEN | MCACHE_CTL_IC_EN |
> -				   MCACHE_CTL_DC_EN | MCACHE_CTL_CCTL_SUEN);
> +		mcache_ctl_val |= MCACHE_CTL_CCTL_SUEN;
> +
> +		if (!CONFIG_IS_ENABLED(SYS_ICACHE_OFF))
> +			mcache_ctl_val |= MCACHE_CTL_IC_EN;
> +
> +		if (!CONFIG_IS_ENABLED(SYS_DCACHE_OFF))
> +			mcache_ctl_val |= (MCACHE_CTL_DC_EN | MCACHE_CTL_DC_COHEN);
>  
>  		csr_write(CSR_MCACHE_CTL, mcache_ctl_val);
>  
> -		/*
> -		 * Check mcache_ctl.DC_COHEN, we assume this platform does
> -		 * not support CM if the bit is hard-wired to 0.
> -		 */
> -		if (csr_read(CSR_MCACHE_CTL) & MCACHE_CTL_DC_COHEN) {
> -			/* Wait for DC_COHSTA bit to be set */
> -			while (!(csr_read(CSR_MCACHE_CTL) & MCACHE_CTL_DC_COHSTA));
> +		if (!CONFIG_IS_ENABLED(SYS_DCACHE_OFF)) {
> +			/*
> +			 * Check mcache_ctl.DC_COHEN, we assume this platform does
> +			 * not support CM if the bit is hard-wired to 0.
> +			 */
> +			if (csr_read(CSR_MCACHE_CTL) & MCACHE_CTL_DC_COHEN) {
> +				/* Wait for DC_COHSTA bit to be set */
> +				while (!(csr_read(CSR_MCACHE_CTL) & MCACHE_CTL_DC_COHSTA));
> +			}
>  		}
>  	}
>  }
> diff --git a/board/AndesTech/ae350/ae350.c b/board/AndesTech/ae350/ae350.c
> index 772c6bf1ee..bef9e3149e 100644
> --- a/board/AndesTech/ae350/ae350.c
> +++ b/board/AndesTech/ae350/ae350.c
> @@ -102,7 +102,8 @@ void *board_fdt_blob_setup(int *err)
>  void spl_board_init()
>  {
>  	/* enable v5l2 cache */
> -	enable_caches();
> +	if (!CONFIG_IS_ENABLED(SYS_DCACHE_OFF))
> +		enable_caches();
>  }
>  #endif
>  
> -- 
> 2.34.1
> 

  reply	other threads:[~2023-12-26  7:35 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-26  6:17 [PATCH v2 1/6] andes: csr.h: Clean up CSR definition Leo Yu-Chi Liang
2023-12-26  6:17 ` [PATCH v2 2/6] andes: ae350: Implement cache switch via Kconfig Leo Yu-Chi Liang
2023-12-26  7:34   ` Yu-Chien Peter Lin [this message]
2023-12-26  6:17 ` [PATCH v2 3/6] andes: cpu: Enable memboost feature Leo Yu-Chi Liang
2023-12-26  7:42   ` Yu-Chien Peter Lin
2023-12-26  6:17 ` [PATCH v2 4/6] andes: cpu: Enable cache and TLB ECC support Leo Yu-Chi Liang
2023-12-26  7:43   ` Yu-Chien Peter Lin
2023-12-26  7:33 ` [PATCH v2 1/6] andes: csr.h: Clean up CSR definition Yu-Chien Peter Lin

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=ZYqCIE81m07KprNc@APC323 \
    --to=peterlin@andestech.com \
    --cc=randolph@andestech.com \
    --cc=u-boot@lists.denx.de \
    --cc=ycliang@andestech.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.