All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leo Liang <ycliang@andestech.com>
To: Huan Zhou <me@per1cycle.org>
Cc: u-boot@lists.denx.de, "Ben Dooks" <ben.dooks@codethink.co.uk>,
	"Marcel Ziswiler" <marcel@ziswiler.com>,
	"Bin Meng" <bmeng@tinylab.org>,
	"Dan Carpenter" <dan.carpenter@linaro.org>,
	"Yixun Lan" <dlan@gentoo.org>,
	"Frieder Schrempf" <frieder.schrempf@kontron.de>,
	"Heinrich Schuchardt" <xypron.glpk@gmx.de>,
	"Jonas Schwöbel" <jonasschwoebel@yahoo.de>,
	"Kever Yang" <kever.yang@rock-chips.com>,
	"Michal Simek" <michal.simek@amd.com>,
	"Nishanth Menon" <nm@ti.com>,
	"Quentin Schulz" <quentin.schulz@cherry.de>,
	Randolph <randolph@andestech.com>,
	"Rick Chen" <rick@andestech.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Sumit Garg" <sumit.garg@linaro.org>,
	"Svyatoslav Ryhel" <clamor95@gmail.com>,
	"Tom Rini" <trini@konsulko.com>,
	"Yu Chien Peter Lin" <peterlin@andestech.com>,
	"Huan Zhou" <pericycle.cc@gmail.com>,
	"Kongyang Liu" <seashell11234455@gmail.com>,
	"Padmarao Begari" <padmarao.begari@amd.com>
Subject: Re: [PATCH v4] riscv: spacemit: k1: probe dram size during boot phase.
Date: Mon, 20 Jan 2025 12:21:54 +0800	[thread overview]
Message-ID: <Z43PYiH99dmDM5f9@swlinux02> (raw)
In-Reply-To: <20250120-get-dram-size-v4-1-e74103e36d6b@per1cycle.org>

Hi Huan,

On Mon, Jan 20, 2025 at 10:22:47AM +0800, Huan Zhou wrote:
> [EXTERNAL MAIL]
> 
> Implement functionality to probe and calculate the DRAM size
> during the boot phase for the RISC-V spacemit K1 platform.
> 
> Tested-by: Marcel Ziswiler <marcel@ziswiler.com> # BPI-F3 16G
> Signed-off-by: Huan Zhou <me@per1cycle.org>
> ---
> This patch introduce improvement for get dram size on spacemit k1 platform,
> retrieving the dram size dynamically.
> Have tested on Licheepi LPI3A 8G[1].
> 
> Links:
> [1] https://gist.github.com/per1cycle/e4eab66ebb6f83fe5118e823367fce28 .
> 
> Changes in v4:
> - shorten the commit message.
> - More proper way for `map_format_size` -> `ddr_map_size`
> - Link to v3: https://lore.kernel.org/r/20250114-get-dram-size-v3-1-83d5f88154d4@per1cycle.org
> 
> Changes in v3:
> - Remove the inline attr in arch/riscv/cpu/k1/dram.c map_format_size().
> - Add detailed commit message.
> - Link to v2: https://lore.kernel.org/r/20250114-get-dram-size-v2-1-aba5a281ea28@per1cycle.org
> 
> Changes in v2:
> - Fix bracker and return type in map_format_size() function.
> - Add test log in the cover letter..
> - Link to v1: https://lore.kernel.org/r/20250108-get-dram-size-v1-1-4bae32ecf756@per1cycle.org
> ---
>  arch/riscv/cpu/k1/dram.c | 40 ++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/riscv/cpu/k1/dram.c b/arch/riscv/cpu/k1/dram.c
> index c477c15cbfb19f0e3a0ee72985b602f5bda352d7..0f73cf9b8c962c277ba797145579ed864e06ab81 100644
> --- a/arch/riscv/cpu/k1/dram.c
> +++ b/arch/riscv/cpu/k1/dram.c
> @@ -4,17 +4,53 @@
>   */
> 
>  #include <asm/global_data.h>
> +#include <asm/io.h>
>  #include <config.h>
> +#include <bitfield.h>
>  #include <fdt_support.h>
>  #include <linux/sizes.h>
> 
> +#define DDR_BASE 0xC0000000
>  DECLARE_GLOBAL_DATA_PTR;
> 
> +static phys_size_t ddr_map_size(u32 val)
> +{
> +       u32 tmp;
> +
> +       if (!(val & 0x1))
> +               return 0;
> +
> +       tmp = bitfield_extract(val, 16, 5);
> +       switch (tmp) {
> +       case 0xd:
> +               return 512;
> +       case 0xe:
> +               return 1024;
> +       case 0xf:
> +               return 2048;
> +       case 0x10:
> +               return 4096;
> +       case 0x11:
> +               return 8192;
> +       default:
> +               pr_info("Invalid DRAM density %x\n", val);
> +               return 0;
> +       }
> +}
> +
> +phys_size_t ddr_get_density(void)
> +{
> +       phys_size_t cs0_size = map_format_size(readl((void *)DDR_BASE + 0x200));
                                ^^^^^^^^^^^^^^^^ Should this be ddr_map_size?
> +       phys_size_t cs1_size = map_format_size(readl((void *)DDR_BASE + 0x208));
                                ^^^^^^^^^^^^^^^^ ditto

Otherwise, LGTM,
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>

> +       phys_size_t ddr_size = cs0_size + cs1_size;
> +
> +       return ddr_size;
> +}
> +
>  int dram_init(void)
>  {
>         gd->ram_base = CFG_SYS_SDRAM_BASE;
> -       /* TODO get ram size from ddr controller */
> -       gd->ram_size = SZ_4G;
> +       gd->ram_size = ddr_get_density() * SZ_1M;
>         return 0;
>  }
> 
> 
> ---
> base-commit: 19fc0b7f7d907119a13e9c207991899f0817f8fc
> change-id: 20250108-get-dram-size-65cf59a15201
> 
> Best regards,
> --
> Huan Zhou <me@per1cycle.org>
> 

  reply	other threads:[~2025-01-20  4:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-20  2:22 [PATCH v4] riscv: spacemit: k1: probe dram size during boot phase Huan Zhou
2025-01-20  4:21 ` Leo Liang [this message]
2025-01-20  7:15 ` Yixun Lan

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=Z43PYiH99dmDM5f9@swlinux02 \
    --to=ycliang@andestech.com \
    --cc=ben.dooks@codethink.co.uk \
    --cc=bmeng@tinylab.org \
    --cc=clamor95@gmail.com \
    --cc=dan.carpenter@linaro.org \
    --cc=dlan@gentoo.org \
    --cc=frieder.schrempf@kontron.de \
    --cc=jonasschwoebel@yahoo.de \
    --cc=kever.yang@rock-chips.com \
    --cc=marcel@ziswiler.com \
    --cc=me@per1cycle.org \
    --cc=michal.simek@amd.com \
    --cc=nm@ti.com \
    --cc=padmarao.begari@amd.com \
    --cc=pericycle.cc@gmail.com \
    --cc=peterlin@andestech.com \
    --cc=quentin.schulz@cherry.de \
    --cc=randolph@andestech.com \
    --cc=rick@andestech.com \
    --cc=samuel@sholland.org \
    --cc=seashell11234455@gmail.com \
    --cc=sumit.garg@linaro.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.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.