
Hi Simon,
On 18.6.2018 08:18, Siva Durga Prasad Paladugu wrote:
Added new variable ram_start to global data structure for holding the start address of first bank of RAM, and then use this ram_start for calculating ram_top properly. This patch fixes the erroneous calculation of ram_top incase of non zero ram start address. This patch also renames fdtdec_setup_memory_size() to fdtdec_setup_mem_size_start() as this routine now takes care of memory size and start.
Signed-off-by: Siva Durga Prasad Paladugu siva.durga.paladugu@xilinx.com Signed-off-by: Michal Simek michal.simek@xilinx.com
Changes from v2:
- Used new varibale ram_start
- Rename fdtdec_setup_memory_size
Changes from v1:
- None
arch/arm/mach-mvebu/arm64-common.c | 2 +- board/emulation/qemu-arm/qemu-arm.c | 2 +- board/renesas/alt/alt.c | 2 +- board/renesas/blanche/blanche.c | 2 +- board/renesas/draak/draak.c | 2 +- board/renesas/eagle/eagle.c | 2 +- board/renesas/gose/gose.c | 2 +- board/renesas/koelsch/koelsch.c | 2 +- board/renesas/lager/lager.c | 2 +- board/renesas/porter/porter.c | 2 +- board/renesas/salvator-x/salvator-x.c | 2 +- board/renesas/silk/silk.c | 2 +- board/renesas/stout/stout.c | 2 +- board/renesas/ulcb/ulcb.c | 2 +- board/st/stm32f429-discovery/stm32f429-discovery.c | 2 +- board/st/stm32f429-evaluation/stm32f429-evaluation.c | 2 +- board/st/stm32f469-discovery/stm32f469-discovery.c | 2 +- board/st/stm32h743-disco/stm32h743-disco.c | 2 +- board/st/stm32h743-eval/stm32h743-eval.c | 2 +- board/xilinx/zynq/board.c | 2 +- board/xilinx/zynqmp/zynqmp.c | 2 +- board/xilinx/zynqmp_r5/board.c | 2 +- common/board_f.c | 4 ++-- include/asm-generic/global_data.h | 1 + include/fdtdec.h | 16 +++++++++------- lib/fdtdec.c | 3 ++- tools/patman/func_test.py | 2 +- tools/patman/test/0000-cover-letter.patch | 2 +- ...orrect-cast-for-sandbox-in-fdtdec_setup_memory_.patch | 4 ++-- tools/patman/test/test01.txt | 2 +- 30 files changed, 41 insertions(+), 37 deletions(-)
diff --git a/arch/arm/mach-mvebu/arm64-common.c b/arch/arm/mach-mvebu/arm64-common.c index d3ea9e6..c2ab831 100644 --- a/arch/arm/mach-mvebu/arm64-common.c +++ b/arch/arm/mach-mvebu/arm64-common.c @@ -54,7 +54,7 @@ int dram_init_banksize(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/emulation/qemu-arm/qemu-arm.c b/board/emulation/qemu-arm/qemu-arm.c index 6ec4200..926bbf2 100644 --- a/board/emulation/qemu-arm/qemu-arm.c +++ b/board/emulation/qemu-arm/qemu-arm.c @@ -47,7 +47,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/alt/alt.c b/board/renesas/alt/alt.c index 86e9d24..58838ff 100644 --- a/board/renesas/alt/alt.c +++ b/board/renesas/alt/alt.c @@ -78,7 +78,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/blanche/blanche.c b/board/renesas/blanche/blanche.c index 7d48d0f..1fd511c 100644 --- a/board/renesas/blanche/blanche.c +++ b/board/renesas/blanche/blanche.c @@ -339,7 +339,7 @@ int board_eth_init(bd_t *bis)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/draak/draak.c b/board/renesas/draak/draak.c index f804fae..b178131 100644 --- a/board/renesas/draak/draak.c +++ b/board/renesas/draak/draak.c @@ -96,7 +96,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/eagle/eagle.c b/board/renesas/eagle/eagle.c index 4bf0a20..26deca9 100644 --- a/board/renesas/eagle/eagle.c +++ b/board/renesas/eagle/eagle.c @@ -73,7 +73,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/gose/gose.c b/board/renesas/gose/gose.c index 96ac29d..1862c16 100644 --- a/board/renesas/gose/gose.c +++ b/board/renesas/gose/gose.c @@ -83,7 +83,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/koelsch/koelsch.c b/board/renesas/koelsch/koelsch.c index b6688a2..a650b8b 100644 --- a/board/renesas/koelsch/koelsch.c +++ b/board/renesas/koelsch/koelsch.c @@ -85,7 +85,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/lager/lager.c b/board/renesas/lager/lager.c index 6bfb0d1..ee66f02 100644 --- a/board/renesas/lager/lager.c +++ b/board/renesas/lager/lager.c @@ -94,7 +94,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/porter/porter.c b/board/renesas/porter/porter.c index cadff2c..b4d7f57 100644 --- a/board/renesas/porter/porter.c +++ b/board/renesas/porter/porter.c @@ -83,7 +83,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/salvator-x/salvator-x.c b/board/renesas/salvator-x/salvator-x.c index 651877c..c104458 100644 --- a/board/renesas/salvator-x/salvator-x.c +++ b/board/renesas/salvator-x/salvator-x.c @@ -108,7 +108,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/silk/silk.c b/board/renesas/silk/silk.c index 5fa472c..eda61ee 100644 --- a/board/renesas/silk/silk.c +++ b/board/renesas/silk/silk.c @@ -78,7 +78,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/stout/stout.c b/board/renesas/stout/stout.c index 778593b..bc62caf 100644 --- a/board/renesas/stout/stout.c +++ b/board/renesas/stout/stout.c @@ -97,7 +97,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/renesas/ulcb/ulcb.c b/board/renesas/ulcb/ulcb.c index 9e15e45..679f09d 100644 --- a/board/renesas/ulcb/ulcb.c +++ b/board/renesas/ulcb/ulcb.c @@ -96,7 +96,7 @@ int board_init(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/st/stm32f429-discovery/stm32f429-discovery.c b/board/st/stm32f429-discovery/stm32f429-discovery.c index b7638c0..fea3b6e 100644 --- a/board/st/stm32f429-discovery/stm32f429-discovery.c +++ b/board/st/stm32f429-discovery/stm32f429-discovery.c @@ -29,7 +29,7 @@ int dram_init(void) return rv; }
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) rv = -EINVAL;
return rv;
diff --git a/board/st/stm32f429-evaluation/stm32f429-evaluation.c b/board/st/stm32f429-evaluation/stm32f429-evaluation.c index 2e638c6..6bf7f33 100644 --- a/board/st/stm32f429-evaluation/stm32f429-evaluation.c +++ b/board/st/stm32f429-evaluation/stm32f429-evaluation.c @@ -23,7 +23,7 @@ int dram_init(void) return rv; }
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) rv = -EINVAL;
return rv;
diff --git a/board/st/stm32f469-discovery/stm32f469-discovery.c b/board/st/stm32f469-discovery/stm32f469-discovery.c index 90d7045..e2c2865 100644 --- a/board/st/stm32f469-discovery/stm32f469-discovery.c +++ b/board/st/stm32f469-discovery/stm32f469-discovery.c @@ -23,7 +23,7 @@ int dram_init(void) return rv; }
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) rv = -EINVAL;
return rv;
diff --git a/board/st/stm32h743-disco/stm32h743-disco.c b/board/st/stm32h743-disco/stm32h743-disco.c index fa007c7..469370c 100644 --- a/board/st/stm32h743-disco/stm32h743-disco.c +++ b/board/st/stm32h743-disco/stm32h743-disco.c @@ -20,7 +20,7 @@ int dram_init(void) return ret; }
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) ret = -EINVAL;
return ret;
diff --git a/board/st/stm32h743-eval/stm32h743-eval.c b/board/st/stm32h743-eval/stm32h743-eval.c index fa007c7..469370c 100644 --- a/board/st/stm32h743-eval/stm32h743-eval.c +++ b/board/st/stm32h743-eval/stm32h743-eval.c @@ -20,7 +20,7 @@ int dram_init(void) return ret; }
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) ret = -EINVAL;
return ret;
diff --git a/board/xilinx/zynq/board.c b/board/xilinx/zynq/board.c index e4f86d1..d80dd3d 100644 --- a/board/xilinx/zynq/board.c +++ b/board/xilinx/zynq/board.c @@ -93,7 +93,7 @@ int dram_init_banksize(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
zynq_ddrc_init();
diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c index e41fec3..38f935c 100644 --- a/board/xilinx/zynqmp/zynqmp.c +++ b/board/xilinx/zynqmp/zynqmp.c @@ -418,7 +418,7 @@ int dram_init_banksize(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/board/xilinx/zynqmp_r5/board.c b/board/xilinx/zynqmp_r5/board.c index 70fb202..954e463 100644 --- a/board/xilinx/zynqmp_r5/board.c +++ b/board/xilinx/zynqmp_r5/board.c @@ -18,7 +18,7 @@ int dram_init_banksize(void)
int dram_init(void) {
- if (fdtdec_setup_memory_size() != 0)
if (fdtdec_setup_mem_size_start() != 0) return -EINVAL;
return 0;
diff --git a/common/board_f.c b/common/board_f.c index fa667c7..ccd2a2f 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -281,9 +281,9 @@ static int setup_dest_addr(void) gd->ram_size -= CONFIG_SYS_MEM_TOP_HIDE; #endif #ifdef CONFIG_SYS_SDRAM_BASE
- gd->ram_top = CONFIG_SYS_SDRAM_BASE;
- gd->ram_start = CONFIG_SYS_SDRAM_BASE;
#endif
- gd->ram_top += get_effective_memsize();
- gd->ram_top = gd->ram_start + get_effective_memsize(); gd->ram_top = board_get_usable_ram_top(gd->mon_len); gd->relocaddr = gd->ram_top; debug("Ram top: %08lX\n", (ulong)gd->ram_top);
diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h index 2d451f8..c8ee788 100644 --- a/include/asm-generic/global_data.h +++ b/include/asm-generic/global_data.h @@ -52,6 +52,7 @@ typedef struct global_data { unsigned long env_has_init; /* Bitmask of boolean of struct env_location offsets */ int env_load_location;
- unsigned long ram_start; /* Start address of first bank of RAM */ unsigned long ram_top; /* Top address of RAM used by U-Boot */ unsigned long relocaddr; /* Start address of U-Boot in RAM */ phys_size_t ram_size; /* RAM size */
diff --git a/include/fdtdec.h b/include/fdtdec.h index c15b2a0..f5ebf52 100644 --- a/include/fdtdec.h +++ b/include/fdtdec.h @@ -951,20 +951,22 @@ int fdtdec_decode_display_timing(const void *blob, int node, int index, struct display_timing *config);
/**
- fdtdec_setup_memory_size() - decode and setup gd->ram_size
- fdtdec_setup_mem_size_start() - decode and setup gd->ram_size and
- gd->ram_start
- Decode the /memory 'reg' property to determine the size of the first memory
- bank, populate the global data with the size of the first bank of memory.
- Decode the /memory 'reg' property to determine the size and start of the
- first memory bank, populate the global data with the size and start of the
- first bank of memory.
- This function should be called from a boards dram_init(). This helper
- function allows for boards to query the device tree for DRAM size instead of
- hard coding the value in the case where the memory size cannot be detected
- automatically.
- function allows for boards to query the device tree for DRAM size and start
- address instead of hard coding the value in the case where the memory size
*/
- and start address cannot be detected automatically.
- @return 0 if OK, -EINVAL if the /memory node or reg property is missing or
- invalid
-int fdtdec_setup_memory_size(void); +int fdtdec_setup_mem_size_start(void);
/**
- fdtdec_setup_memory_banksize() - decode and populate gd->bd->bi_dram
diff --git a/lib/fdtdec.c b/lib/fdtdec.c index f4e8dbf..8c63278 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -1154,7 +1154,7 @@ int fdtdec_decode_display_timing(const void *blob, int parent, int index, return ret; }
-int fdtdec_setup_memory_size(void) +int fdtdec_setup_mem_size_start(void) { int ret, mem; struct fdt_resource res; @@ -1172,6 +1172,7 @@ int fdtdec_setup_memory_size(void) }
gd->ram_size = (phys_size_t)(res.end - res.start + 1);
- gd->ram_start = (unsigned long)res.start; debug("%s: Initial DRAM size %llx\n", __func__, (unsigned long long)gd->ram_size);
diff --git a/tools/patman/func_test.py b/tools/patman/func_test.py index 85372f3..a16427a 100644 --- a/tools/patman/func_test.py +++ b/tools/patman/func_test.py @@ -209,7 +209,7 @@ Changes in v4:
Simon Glass (2): pci: Correct cast for sandbox
- fdt: Correct cast for sandbox in fdtdec_setup_memory_size()
fdt: Correct cast for sandbox in fdtdec_setup_mem_size_start()
cmd/pci.c | 3 ++- fs/fat/fat.c | 1 +
diff --git a/tools/patman/test/0000-cover-letter.patch b/tools/patman/test/0000-cover-letter.patch index 2906201..84ba81b 100644 --- a/tools/patman/test/0000-cover-letter.patch +++ b/tools/patman/test/0000-cover-letter.patch @@ -10,7 +10,7 @@ Content-Transfer-Encoding: 8bit
Simon Glass (2): pci: Correct cast for sandbox
- fdt: Correct cast for sandbox in fdtdec_setup_memory_size()
fdt: Correct cast for sandbox in fdtdec_setup_mem_size_start()
cmd/pci.c | 3 ++- fs/fat/fat.c | 1 +
diff --git a/tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_memory_.patch b/tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_memory_.patch index e328497..827e4cc 100644 --- a/tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_memory_.patch +++ b/tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_memory_.patch @@ -1,7 +1,7 @@ From 5ab48490f03051875ab13d288a4bf32b507d76fd Mon Sep 17 00:00:00 2001 From: Simon Glass sjg@chromium.org Date: Sat, 15 Apr 2017 15:39:08 -0600 -Subject: [RFC 2/2] fdt: Correct cast for sandbox in fdtdec_setup_memory_size() +Subject: [RFC 2/2] fdt: Correct cast for sandbox in fdtdec_setup_mem_size_start() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -58,7 +58,7 @@ diff --git a/lib/fdtdec.c b/lib/fdtdec.c index c072e54..942244f 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c -@@ -1200,7 +1200,8 @@ int fdtdec_setup_memory_size(void) +@@ -1200,7 +1200,8 @@ int fdtdec_setup_mem_size_start(void) }
gd->ram_size = (phys_size_t)(res.end - res.start + 1); diff --git a/tools/patman/test/test01.txt b/tools/patman/test/test01.txt index 8ad9587..d8be23d 100644 --- a/tools/patman/test/test01.txt +++ b/tools/patman/test/test01.txt @@ -28,7 +28,7 @@ commit 5ab48490f03051875ab13d288a4bf32b507d76fd Author: Simon Glass sjg@chromium.org Date: Sat Apr 15 15:39:08 2017 -0600
- fdt: Correct cast for sandbox in fdtdec_setup_memory_size()
fdt: Correct cast for sandbox in fdtdec_setup_mem_size_start()
This gives a warning with some native compilers:
sjg: Do you see any issue with this patch?
I can't see the reason for fixing tools/patman but I will wait for you.
Thanks, Michal