diff mbox series

[U-Boot,3/8] riscv: ax25-ae350: Use generic memory size setup

Message ID 20191025061027.20962-4-uboot@andestech.com
State Superseded
Delegated to: Andes
Headers show
Series RISC-V AX25-AE350 support SPL | expand

Commit Message

Andes Oct. 25, 2019, 6:10 a.m. UTC
From: Rick Chen <rick@andestech.com>

To get memory size from device tree instead of
get_ram_size(). This can avoid memory access fault
in U-Boot proper after PMP configurations in OpenSbi.

Signed-off-by: Rick Chen <rick@andestech.com>
Cc: KC Lin <kclin@andestech.com>
Cc: Alan Kao <alankao@andestech.com>
---
 board/AndesTech/ax25-ae350/ax25-ae350.c | 21 ++-------------------
 1 file changed, 2 insertions(+), 19 deletions(-)

Comments

Bin Meng Oct. 29, 2019, 2:42 p.m. UTC | #1
Hi Rick,

On Fri, Oct 25, 2019 at 2:17 PM Andes <uboot@andestech.com> wrote:
>
> From: Rick Chen <rick@andestech.com>
>
> To get memory size from device tree instead of
> get_ram_size(). This can avoid memory access fault

Could you please explain a little more about why get_ram_size() causes
PMP access fault?

> in U-Boot proper after PMP configurations in OpenSbi.
>
> Signed-off-by: Rick Chen <rick@andestech.com>
> Cc: KC Lin <kclin@andestech.com>
> Cc: Alan Kao <alankao@andestech.com>
> ---
>  board/AndesTech/ax25-ae350/ax25-ae350.c | 21 ++-------------------
>  1 file changed, 2 insertions(+), 19 deletions(-)
>

Regards,
Bin
Rick Chen Oct. 30, 2019, 2:19 a.m. UTC | #2
Hi Bin

Bin Meng <bmeng.cn@gmail.com> 於 2019年10月29日 週二 下午10:42寫道:
>
> Hi Rick,
>
> On Fri, Oct 25, 2019 at 2:17 PM Andes <uboot@andestech.com> wrote:
> >
> > From: Rick Chen <rick@andestech.com>
> >
> > To get memory size from device tree instead of
> > get_ram_size(). This can avoid memory access fault
>
> Could you please explain a little more about why get_ram_size() causes
> PMP access fault?

OpenSBI will configure pmpcfg and pmpaddr for memory protection in
specific range.
When get_ram_size() try to store or load memory address, it will appear
access fault exception.

Thanks
Rick

>
> > in U-Boot proper after PMP configurations in OpenSbi.
> >
> > Signed-off-by: Rick Chen <rick@andestech.com>
> > Cc: KC Lin <kclin@andestech.com>
> > Cc: Alan Kao <alankao@andestech.com>
> > ---
> >  board/AndesTech/ax25-ae350/ax25-ae350.c | 21 ++-------------------
> >  1 file changed, 2 insertions(+), 19 deletions(-)
> >
>
> Regards,
> Bin
diff mbox series

Patch

diff --git a/board/AndesTech/ax25-ae350/ax25-ae350.c b/board/AndesTech/ax25-ae350/ax25-ae350.c
index b0164a9..47e6929 100644
--- a/board/AndesTech/ax25-ae350/ax25-ae350.c
+++ b/board/AndesTech/ax25-ae350/ax25-ae350.c
@@ -30,29 +30,12 @@  int board_init(void)
 
 int dram_init(void)
 {
-	unsigned long sdram_base = PHYS_SDRAM_0;
-	unsigned long expected_size = PHYS_SDRAM_0_SIZE + PHYS_SDRAM_1_SIZE;
-	unsigned long actual_size;
-
-	actual_size = get_ram_size((void *)sdram_base, expected_size);
-	gd->ram_size = actual_size;
-
-	if (expected_size != actual_size) {
-		printf("Warning: Only %lu of %lu MiB SDRAM is working\n",
-			actual_size >> 20, expected_size >> 20);
-	}
-
-	return 0;
+	return fdtdec_setup_mem_size_base();
 }
 
 int dram_init_banksize(void)
 {
-	gd->bd->bi_dram[0].start = PHYS_SDRAM_0;
-	gd->bd->bi_dram[0].size =  PHYS_SDRAM_0_SIZE;
-	gd->bd->bi_dram[1].start = PHYS_SDRAM_1;
-	gd->bd->bi_dram[1].size =  PHYS_SDRAM_1_SIZE;
-
-	return 0;
+	return fdtdec_setup_memory_banksize();
 }
 
 #if defined(CONFIG_FTMAC100) && !defined(CONFIG_DM_ETH)