* [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM
@ 2020-07-10 10:18 Ovidiu Panait
2020-07-10 10:18 ` [PATCH v2 02/14] Kconfig: Convert CONFIG_SYS_SRAM_BASE to Kconfig Ovidiu Panait
` (13 more replies)
0 siblings, 14 replies; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:18 UTC (permalink / raw)
To: u-boot
In order to be able to replace "#ifdef CONFIG_SYS_SRAM_BASE" sequences
with the IS_ENABLED() equivalent, introduce a new boolean Kconfig option
that signals whether the platform has SRAM support.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
Kconfig | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/Kconfig b/Kconfig
index 99bc5fab02..641748916d 100644
--- a/Kconfig
+++ b/Kconfig
@@ -350,6 +350,17 @@ config PLATFORM_ELFENTRY
default "__start" if MIPS
default "_start"
+config SYS_HAS_SRAM
+ bool
+ default y if TARGET_PIC32MZDASK
+ default y if TARGET_DEVKIT8000
+ default y if TARGET_TRICORDER
+ default n
+ help
+ Enable this to allow support for the on board SRAM.
+ SRAM base address is controlled by CONFIG_SYS_SRAM_BASE.
+ SRAM size is controlled by CONFIG_SYS_SRAM_SIZE.
+
endmenu # General setup
menu "Boot images"
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 02/14] Kconfig: Convert CONFIG_SYS_SRAM_BASE to Kconfig
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
@ 2020-07-10 10:18 ` Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:18 ` [PATCH v2 03/14] Kconfig: Convert CONFIG_SYS_SRAM_SIZE " Ovidiu Panait
` (12 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:18 UTC (permalink / raw)
To: u-boot
This converts ad-hoc CONFIG_SYS_SRAM_BASE to Kconfig.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
Kconfig | 5 +++++
include/configs/pic32mzdask.h | 1 -
scripts/config_whitelist.txt | 1 -
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/Kconfig b/Kconfig
index 641748916d..9b51a2cd20 100644
--- a/Kconfig
+++ b/Kconfig
@@ -361,6 +361,11 @@ config SYS_HAS_SRAM
SRAM base address is controlled by CONFIG_SYS_SRAM_BASE.
SRAM size is controlled by CONFIG_SYS_SRAM_SIZE.
+config SYS_SRAM_BASE
+ hex
+ default 0x80000000 if TARGET_PIC32MZDASK
+ default 0x0
+
endmenu # General setup
menu "Boot images"
diff --git a/include/configs/pic32mzdask.h b/include/configs/pic32mzdask.h
index 73edd28f1a..25b898f2e6 100644
--- a/include/configs/pic32mzdask.h
+++ b/include/configs/pic32mzdask.h
@@ -19,7 +19,6 @@
/*----------------------------------------------------------------------
* Memory Layout
*/
-#define CONFIG_SYS_SRAM_BASE 0x80000000
#define CONFIG_SYS_SRAM_SIZE 0x00080000 /* 512K */
/* Initial RAM for temporary stack, global data */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 747583089b..9e167989c4 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -3798,7 +3798,6 @@ CONFIG_SYS_SPL_LEN
CONFIG_SYS_SPL_MALLOC_SIZE
CONFIG_SYS_SPL_MALLOC_START
CONFIG_SYS_SPR
-CONFIG_SYS_SRAM_BASE
CONFIG_SYS_SRAM_SIZE
CONFIG_SYS_SRAM_START
CONFIG_SYS_SRIO
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 03/14] Kconfig: Convert CONFIG_SYS_SRAM_SIZE to Kconfig
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
2020-07-10 10:18 ` [PATCH v2 02/14] Kconfig: Convert CONFIG_SYS_SRAM_BASE to Kconfig Ovidiu Panait
@ 2020-07-10 10:18 ` Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:18 ` [PATCH v2 04/14] Kconfig: Remove CONFIG_SYS_SRAM_START Ovidiu Panait
` (11 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:18 UTC (permalink / raw)
To: u-boot
This converts ad-hoc CONFIG_SYS_SRAM_SIZE to Kconfig.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
Kconfig | 7 +++++++
include/configs/devkit8000.h | 1 -
include/configs/pic32mzdask.h | 2 --
include/configs/tricorder.h | 1 -
scripts/config_whitelist.txt | 1 -
5 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/Kconfig b/Kconfig
index 9b51a2cd20..8bafdff932 100644
--- a/Kconfig
+++ b/Kconfig
@@ -366,6 +366,13 @@ config SYS_SRAM_BASE
default 0x80000000 if TARGET_PIC32MZDASK
default 0x0
+config SYS_SRAM_SIZE
+ hex
+ default 0x00080000 if TARGET_PIC32MZDASK
+ default 0x10000 if TARGET_DEVKIT8000
+ default 0x10000 if TARGET_TRICORDER
+ default 0x0
+
endmenu # General setup
menu "Boot images"
diff --git a/include/configs/devkit8000.h b/include/configs/devkit8000.h
index f90c1c5a18..cdf7d7aa21 100644
--- a/include/configs/devkit8000.h
+++ b/include/configs/devkit8000.h
@@ -140,7 +140,6 @@
/* SRAM config */
#define CONFIG_SYS_SRAM_START 0x40200000
-#define CONFIG_SYS_SRAM_SIZE 0x10000
/* Defines for SPL */
diff --git a/include/configs/pic32mzdask.h b/include/configs/pic32mzdask.h
index 25b898f2e6..d50edc7715 100644
--- a/include/configs/pic32mzdask.h
+++ b/include/configs/pic32mzdask.h
@@ -19,8 +19,6 @@
/*----------------------------------------------------------------------
* Memory Layout
*/
-#define CONFIG_SYS_SRAM_SIZE 0x00080000 /* 512K */
-
/* Initial RAM for temporary stack, global data */
#define CONFIG_SYS_INIT_RAM_SIZE 0x10000
#define CONFIG_SYS_INIT_RAM_ADDR \
diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h
index 83aa3cd468..d438a7e635 100644
--- a/include/configs/tricorder.h
+++ b/include/configs/tricorder.h
@@ -202,7 +202,6 @@
/* SRAM config */
#define CONFIG_SYS_SRAM_START 0x40200000
-#define CONFIG_SYS_SRAM_SIZE 0x10000
/* Defines for SPL */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 9e167989c4..7a2ff835f8 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -3798,7 +3798,6 @@ CONFIG_SYS_SPL_LEN
CONFIG_SYS_SPL_MALLOC_SIZE
CONFIG_SYS_SPL_MALLOC_START
CONFIG_SYS_SPR
-CONFIG_SYS_SRAM_SIZE
CONFIG_SYS_SRAM_START
CONFIG_SYS_SRIO
CONFIG_SYS_SRIO1_MEM_BASE
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 04/14] Kconfig: Remove CONFIG_SYS_SRAM_START
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
2020-07-10 10:18 ` [PATCH v2 02/14] Kconfig: Convert CONFIG_SYS_SRAM_BASE to Kconfig Ovidiu Panait
2020-07-10 10:18 ` [PATCH v2 03/14] Kconfig: Convert CONFIG_SYS_SRAM_SIZE " Ovidiu Panait
@ 2020-07-10 10:18 ` Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:18 ` [PATCH v2 05/14] board_f: Introduce arch_setup_bdinfo initcall Ovidiu Panait
` (10 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:18 UTC (permalink / raw)
To: u-boot
Remove ad-hoc CONFIG_SYS_SRAM_START and use CONFIG_SYS_SRAM_BASE instead.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
Kconfig | 2 ++
include/configs/devkit8000.h | 3 ---
include/configs/tricorder.h | 3 ---
scripts/config_whitelist.txt | 1 -
4 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/Kconfig b/Kconfig
index 8bafdff932..11665268d8 100644
--- a/Kconfig
+++ b/Kconfig
@@ -364,6 +364,8 @@ config SYS_HAS_SRAM
config SYS_SRAM_BASE
hex
default 0x80000000 if TARGET_PIC32MZDASK
+ default 0x40200000 if TARGET_DEVKIT8000
+ default 0x40200000 if TARGET_TRICORDER
default 0x0
config SYS_SRAM_SIZE
diff --git a/include/configs/devkit8000.h b/include/configs/devkit8000.h
index cdf7d7aa21..b4f649a958 100644
--- a/include/configs/devkit8000.h
+++ b/include/configs/devkit8000.h
@@ -138,9 +138,6 @@
/* Boot Argument Buffer Size */
-/* SRAM config */
-#define CONFIG_SYS_SRAM_START 0x40200000
-
/* Defines for SPL */
/* NAND boot config */
diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h
index d438a7e635..8ffa39f92f 100644
--- a/include/configs/tricorder.h
+++ b/include/configs/tricorder.h
@@ -200,9 +200,6 @@
CONFIG_SYS_INIT_RAM_SIZE - \
GENERATED_GBL_DATA_SIZE)
-/* SRAM config */
-#define CONFIG_SYS_SRAM_START 0x40200000
-
/* Defines for SPL */
#define CONFIG_SPL_NAND_BASE
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 7a2ff835f8..b8f1b12056 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -3798,7 +3798,6 @@ CONFIG_SYS_SPL_LEN
CONFIG_SYS_SPL_MALLOC_SIZE
CONFIG_SYS_SPL_MALLOC_START
CONFIG_SYS_SPR
-CONFIG_SYS_SRAM_START
CONFIG_SYS_SRIO
CONFIG_SYS_SRIO1_MEM_BASE
CONFIG_SYS_SRIO1_MEM_BUS
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 05/14] board_f: Introduce arch_setup_bdinfo initcall
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (2 preceding siblings ...)
2020-07-10 10:18 ` [PATCH v2 04/14] Kconfig: Remove CONFIG_SYS_SRAM_START Ovidiu Panait
@ 2020-07-10 10:18 ` Ovidiu Panait
2020-07-10 10:18 ` [PATCH v2 06/14] board_f: m68k: Factor out m68k-specific bdinfo setup Ovidiu Panait
` (9 subsequent siblings)
13 siblings, 0 replies; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:18 UTC (permalink / raw)
To: u-boot
Certain architectures (ppc, mips, sh, m68k) use setup board_part1 and
setup_board_part2 calls during pre-relocation init to populate gd->bd
boardinfo fields. This makes the generic init sequence cluttered with
arch-specific ifdefs.
In order to clean these arch-specific sequences from generic init,
introduce arch_setup_bdinfo weak initcall so that everyone can define their
own bdinfo setup routines.
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- add reviewed-by tag
common/board_f.c | 6 ++++++
include/init.h | 12 ++++++++++++
2 files changed, 18 insertions(+)
diff --git a/common/board_f.c b/common/board_f.c
index dcad551ae4..e597749d2f 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -597,6 +597,11 @@ static int display_new_sp(void)
return 0;
}
+__weak int arch_setup_bdinfo(void)
+{
+ return 0;
+}
+
#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
defined(CONFIG_SH)
static int setup_board_part1(void)
@@ -974,6 +979,7 @@ static const init_fnc_t init_sequence_f[] = {
reserve_stacks,
dram_init_banksize,
show_dram_config,
+ arch_setup_bdinfo,
#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
defined(CONFIG_SH)
setup_board_part1,
diff --git a/include/init.h b/include/init.h
index e727031514..ccb766a348 100644
--- a/include/init.h
+++ b/include/init.h
@@ -141,6 +141,18 @@ int arch_reserve_stacks(void);
*/
int arch_reserve_mmu(void);
+/**
+ * arch_setup_bdinfo() - Architecture dependent boardinfo setup
+ *
+ * Architecture-specific routine for populating various boardinfo fields of
+ * gd->bd. It is called during the generic board init sequence.
+ *
+ * If an implementation is not provided, it will just be a nop stub.
+ *
+ * Return: 0 if OK
+ */
+int arch_setup_bdinfo(void);
+
/**
* init_cache_f_r() - Turn on the cache in preparation for relocation
*
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 06/14] board_f: m68k: Factor out m68k-specific bdinfo setup
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (3 preceding siblings ...)
2020-07-10 10:18 ` [PATCH v2 05/14] board_f: Introduce arch_setup_bdinfo initcall Ovidiu Panait
@ 2020-07-10 10:18 ` Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:19 ` [PATCH v2 07/14] board_f: ppc: Factor out ppc-specific " Ovidiu Panait
` (8 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:18 UTC (permalink / raw)
To: u-boot
Factor out m68k-specific bdinfo setup to arch_setup_bdinfo in
arch/m68k/lib/bdinfo.c. Also, use if(IS_ENABLED()) instead of #ifdef where
possible.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
"#ifdef CONFIG_SYS_SRAM_BASE"
arch/m68k/lib/bdinfo.c | 32 ++++++++++++++++++++++++++++++++
common/board_f.c | 14 ++++----------
2 files changed, 36 insertions(+), 10 deletions(-)
diff --git a/arch/m68k/lib/bdinfo.c b/arch/m68k/lib/bdinfo.c
index 971c47c306..3257195add 100644
--- a/arch/m68k/lib/bdinfo.c
+++ b/arch/m68k/lib/bdinfo.c
@@ -11,6 +11,38 @@
DECLARE_GLOBAL_DATA_PTR;
+int arch_setup_bdinfo(void)
+{
+ bd_t *bd = gd->bd;
+
+ /*
+ * Save local variables to board info struct
+ */
+ bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */
+ bd->bi_memsize = gd->ram_size; /* size in bytes */
+
+ if (IS_ENABLED(CONFIG_SYS_HAS_SRAM)) {
+ bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */
+ bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
+ }
+
+ bd->bi_mbar_base = CONFIG_SYS_MBAR; /* base of internal registers */
+
+ bd->bi_intfreq = gd->cpu_clk; /* Internal Freq, in Hz */
+ bd->bi_busfreq = gd->bus_clk; /* Bus Freq, in Hz */
+
+ if (IS_ENABLED(CONFIG_PCI))
+ bd->bi_pcifreq = gd->pci_clk;
+
+#if defined(CONFIG_EXTRA_CLOCK)
+ bd->bi_inpfreq = gd->arch.inp_clk; /* input Freq in Hz */
+ bd->bi_vcofreq = gd->arch.vco_clk; /* vco Freq in Hz */
+ bd->bi_flbfreq = gd->arch.flb_clk; /* flexbus Freq in Hz */
+#endif
+
+ return 0;
+}
+
void arch_print_bdinfo(void)
{
bd_t *bd = gd->bd;
diff --git a/common/board_f.c b/common/board_f.c
index e597749d2f..7d65879b93 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -602,7 +602,7 @@ __weak int arch_setup_bdinfo(void)
return 0;
}
-#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
+#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
defined(CONFIG_SH)
static int setup_board_part1(void)
{
@@ -622,9 +622,6 @@ static int setup_board_part1(void)
#if defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
bd->bi_immr_base = CONFIG_SYS_IMMR; /* base of IMMR register */
#endif
-#if defined(CONFIG_M68K)
- bd->bi_mbar_base = CONFIG_SYS_MBAR; /* base of internal registers */
-#endif
#if defined(CONFIG_MPC83xx)
bd->bi_immrbar = CONFIG_SYS_IMMR;
#endif
@@ -633,7 +630,7 @@ static int setup_board_part1(void)
}
#endif
-#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
+#if defined(CONFIG_PPC)
static int setup_board_part2(void)
{
bd_t *bd = gd->bd;
@@ -646,9 +643,6 @@ static int setup_board_part2(void)
bd->bi_sccfreq = gd->arch.scc_clk;
bd->bi_vco = gd->arch.vco_out;
#endif /* CONFIG_CPM2 */
-#if defined(CONFIG_M68K) && defined(CONFIG_PCI)
- bd->bi_pcifreq = gd->pci_clk;
-#endif
#if defined(CONFIG_EXTRA_CLOCK)
bd->bi_inpfreq = gd->arch.inp_clk; /* input Freq in Hz */
bd->bi_vcofreq = gd->arch.vco_clk; /* vco Freq in Hz */
@@ -980,11 +974,11 @@ static const init_fnc_t init_sequence_f[] = {
dram_init_banksize,
show_dram_config,
arch_setup_bdinfo,
-#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
+#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
defined(CONFIG_SH)
setup_board_part1,
#endif
-#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
+#if defined(CONFIG_PPC)
INIT_FUNC_WATCHDOG_RESET
setup_board_part2,
#endif
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 07/14] board_f: ppc: Factor out ppc-specific bdinfo setup
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (4 preceding siblings ...)
2020-07-10 10:18 ` [PATCH v2 06/14] board_f: m68k: Factor out m68k-specific bdinfo setup Ovidiu Panait
@ 2020-07-10 10:19 ` Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:19 ` [PATCH v2 08/14] board_f: sh: Factor out sh-specific " Ovidiu Panait
` (7 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:19 UTC (permalink / raw)
To: u-boot
Factor out ppc-specific bdinfo setup from generic init sequence to
arch_setup_bdinfo in arch/powerpc/lib/bdinfo.c. Also, use if(IS_ENABLED())
instead of #ifdef where possible.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
"#ifdef CONFIG_SYS_SRAM_BASE"
arch/powerpc/lib/bdinfo.c | 42 +++++++++++++++++++++++++++++++++++++++
common/board_f.c | 39 ++----------------------------------
2 files changed, 44 insertions(+), 37 deletions(-)
diff --git a/arch/powerpc/lib/bdinfo.c b/arch/powerpc/lib/bdinfo.c
index d8c64155f0..a3c4c143da 100644
--- a/arch/powerpc/lib/bdinfo.c
+++ b/arch/powerpc/lib/bdinfo.c
@@ -11,6 +11,48 @@
DECLARE_GLOBAL_DATA_PTR;
+int arch_setup_bdinfo(void)
+{
+ bd_t *bd = gd->bd;
+
+ /*
+ * Save local variables to board info struct
+ */
+ bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */
+ bd->bi_memsize = gd->ram_size; /* size in bytes */
+
+ if (IS_ENABLED(CONFIG_SYS_HAS_SRAM)) {
+ bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */
+ bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
+ }
+
+#if defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
+ bd->bi_immr_base = CONFIG_SYS_IMMR; /* base of IMMR register */
+#endif
+
+#if defined(CONFIG_MPC83xx)
+ bd->bi_immrbar = CONFIG_SYS_IMMR;
+#endif
+
+ bd->bi_intfreq = gd->cpu_clk; /* Internal Freq, in Hz */
+ bd->bi_busfreq = gd->bus_clk; /* Bus Freq, in Hz */
+
+#if defined(CONFIG_CPM2)
+ bd->bi_cpmfreq = gd->arch.cpm_clk;
+ bd->bi_brgfreq = gd->arch.brg_clk;
+ bd->bi_sccfreq = gd->arch.scc_clk;
+ bd->bi_vco = gd->arch.vco_out;
+#endif /* CONFIG_CPM2 */
+
+#if defined(CONFIG_EXTRA_CLOCK)
+ bd->bi_inpfreq = gd->arch.inp_clk; /* input Freq in Hz */
+ bd->bi_vcofreq = gd->arch.vco_clk; /* vco Freq in Hz */
+ bd->bi_flbfreq = gd->arch.flb_clk; /* flexbus Freq in Hz */
+#endif
+
+ return 0;
+}
+
void __weak board_detail(void)
{
/* Please define board_detail() for your PPC platform */
diff --git a/common/board_f.c b/common/board_f.c
index 7d65879b93..960a9c83db 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -602,8 +602,7 @@ __weak int arch_setup_bdinfo(void)
return 0;
}
-#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
- defined(CONFIG_SH)
+#if defined(CONFIG_MIPS) || defined(CONFIG_SH)
static int setup_board_part1(void)
{
bd_t *bd = gd->bd;
@@ -619,36 +618,6 @@ static int setup_board_part1(void)
bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
#endif
-#if defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
- bd->bi_immr_base = CONFIG_SYS_IMMR; /* base of IMMR register */
-#endif
-#if defined(CONFIG_MPC83xx)
- bd->bi_immrbar = CONFIG_SYS_IMMR;
-#endif
-
- return 0;
-}
-#endif
-
-#if defined(CONFIG_PPC)
-static int setup_board_part2(void)
-{
- bd_t *bd = gd->bd;
-
- bd->bi_intfreq = gd->cpu_clk; /* Internal Freq, in Hz */
- bd->bi_busfreq = gd->bus_clk; /* Bus Freq, in Hz */
-#if defined(CONFIG_CPM2)
- bd->bi_cpmfreq = gd->arch.cpm_clk;
- bd->bi_brgfreq = gd->arch.brg_clk;
- bd->bi_sccfreq = gd->arch.scc_clk;
- bd->bi_vco = gd->arch.vco_out;
-#endif /* CONFIG_CPM2 */
-#if defined(CONFIG_EXTRA_CLOCK)
- bd->bi_inpfreq = gd->arch.inp_clk; /* input Freq in Hz */
- bd->bi_vcofreq = gd->arch.vco_clk; /* vco Freq in Hz */
- bd->bi_flbfreq = gd->arch.flb_clk; /* flexbus Freq in Hz */
-#endif
-
return 0;
}
#endif
@@ -974,13 +943,9 @@ static const init_fnc_t init_sequence_f[] = {
dram_init_banksize,
show_dram_config,
arch_setup_bdinfo,
-#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
- defined(CONFIG_SH)
+#if defined(CONFIG_MIPS) || defined(CONFIG_SH)
setup_board_part1,
-#endif
-#if defined(CONFIG_PPC)
INIT_FUNC_WATCHDOG_RESET
- setup_board_part2,
#endif
display_new_sp,
#ifdef CONFIG_OF_BOARD_FIXUP
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 08/14] board_f: sh: Factor out sh-specific bdinfo setup
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (5 preceding siblings ...)
2020-07-10 10:19 ` [PATCH v2 07/14] board_f: ppc: Factor out ppc-specific " Ovidiu Panait
@ 2020-07-10 10:19 ` Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:19 ` [PATCH v2 09/14] board_f: mips: Factor out mips-specific " Ovidiu Panait
` (6 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:19 UTC (permalink / raw)
To: u-boot
Factor out sh-specific bdinfo setup from generic init sequence to
arch_setup_bdinfo in arch/sh/lib/board.c. Also, use if(IS_ENABLED())
instead of #ifdef where possible.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
"#ifdef CONFIG_SYS_SRAM_BASE"
arch/sh/lib/board.c | 18 ++++++++++++++++++
common/board_f.c | 4 ++--
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/arch/sh/lib/board.c b/arch/sh/lib/board.c
index a6a8f07e6f..c293875daf 100644
--- a/arch/sh/lib/board.c
+++ b/arch/sh/lib/board.c
@@ -16,6 +16,24 @@ int dram_init(void)
return 0;
}
+int arch_setup_bdinfo(void)
+{
+ bd_t *bd = gd->bd;
+
+ /*
+ * Save local variables to board info struct
+ */
+ bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */
+ bd->bi_memsize = gd->ram_size; /* size in bytes */
+
+ if (IS_ENABLED(CONFIG_SYS_HAS_SRAM)) {
+ bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */
+ bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
+ }
+
+ return 0;
+}
+
void relocate_code(ulong start_addr_sp, gd_t *new_gd, ulong relocaddr)
{
void (*reloc_board_init_r)(gd_t *gd, ulong dest) = board_init_r;
diff --git a/common/board_f.c b/common/board_f.c
index 960a9c83db..9bfcd6b236 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -602,7 +602,7 @@ __weak int arch_setup_bdinfo(void)
return 0;
}
-#if defined(CONFIG_MIPS) || defined(CONFIG_SH)
+#if defined(CONFIG_MIPS)
static int setup_board_part1(void)
{
bd_t *bd = gd->bd;
@@ -943,7 +943,7 @@ static const init_fnc_t init_sequence_f[] = {
dram_init_banksize,
show_dram_config,
arch_setup_bdinfo,
-#if defined(CONFIG_MIPS) || defined(CONFIG_SH)
+#if defined(CONFIG_MIPS)
setup_board_part1,
INIT_FUNC_WATCHDOG_RESET
#endif
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 09/14] board_f: mips: Factor out mips-specific bdinfo setup
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (6 preceding siblings ...)
2020-07-10 10:19 ` [PATCH v2 08/14] board_f: sh: Factor out sh-specific " Ovidiu Panait
@ 2020-07-10 10:19 ` Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:19 ` [PATCH v2 10/14] dm: blk: Use IS_ENABLED() instead of #ifdefs in blk_post_probe Ovidiu Panait
` (5 subsequent siblings)
13 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:19 UTC (permalink / raw)
To: u-boot
Factor out mips-specific bdinfo setup from generic init sequence to
arch_setup_bdinfo in arch/mips/lib/boot.c. Also, use if(IS_ENABLED())
instead of #ifdef where possible.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
"#ifdef CONFIG_SYS_SRAM_BASE"
arch/mips/lib/boot.c | 18 ++++++++++++++++++
common/board_f.c | 25 +------------------------
2 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/arch/mips/lib/boot.c b/arch/mips/lib/boot.c
index db862f6379..1ad9993c73 100644
--- a/arch/mips/lib/boot.c
+++ b/arch/mips/lib/boot.c
@@ -9,6 +9,24 @@
DECLARE_GLOBAL_DATA_PTR;
+int arch_setup_bdinfo(void)
+{
+ bd_t *bd = gd->bd;
+
+ /*
+ * Save local variables to board info struct
+ */
+ bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */
+ bd->bi_memsize = gd->ram_size; /* size in bytes */
+
+ if (IS_ENABLED(CONFIG_SYS_HAS_SRAM)) {
+ bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */
+ bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
+ }
+
+ return 0;
+}
+
unsigned long do_go_exec(ulong (*entry)(int, char * const []),
int argc, char * const argv[])
{
diff --git a/common/board_f.c b/common/board_f.c
index 9bfcd6b236..fd7e6a17ad 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -602,26 +602,6 @@ __weak int arch_setup_bdinfo(void)
return 0;
}
-#if defined(CONFIG_MIPS)
-static int setup_board_part1(void)
-{
- bd_t *bd = gd->bd;
-
- /*
- * Save local variables to board info struct
- */
- bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */
- bd->bi_memsize = gd->ram_size; /* size in bytes */
-
-#ifdef CONFIG_SYS_SRAM_BASE
- bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */
- bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
-#endif
-
- return 0;
-}
-#endif
-
#ifdef CONFIG_POST
static int init_post(void)
{
@@ -942,11 +922,8 @@ static const init_fnc_t init_sequence_f[] = {
reserve_stacks,
dram_init_banksize,
show_dram_config,
- arch_setup_bdinfo,
-#if defined(CONFIG_MIPS)
- setup_board_part1,
INIT_FUNC_WATCHDOG_RESET
-#endif
+ arch_setup_bdinfo,
display_new_sp,
#ifdef CONFIG_OF_BOARD_FIXUP
fix_fdt,
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 10/14] dm: blk: Use IS_ENABLED() instead of #ifdefs in blk_post_probe
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (7 preceding siblings ...)
2020-07-10 10:19 ` [PATCH v2 09/14] board_f: mips: Factor out mips-specific " Ovidiu Panait
@ 2020-07-10 10:19 ` Ovidiu Panait
2020-07-10 10:19 ` [PATCH v2 11/14] drivers: serial: Make serial_initialize return int Ovidiu Panait
` (4 subsequent siblings)
13 siblings, 0 replies; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:19 UTC (permalink / raw)
To: u-boot
Use IS_ENABLED() instead of #ifdef in blk_post_probe function.
No functional change intended.
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- add reviewed-by tag
drivers/block/blk-uclass.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index b19375cbc8..b2738f5717 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -644,11 +644,12 @@ int blk_unbind_all(int if_type)
static int blk_post_probe(struct udevice *dev)
{
-#if defined(CONFIG_PARTITIONS) && defined(CONFIG_HAVE_BLOCK_DEVICE)
- struct blk_desc *desc = dev_get_uclass_platdata(dev);
+ if (IS_ENABLED(CONFIG_PARTITIONS) &&
+ IS_ENABLED(CONFIG_HAVE_BLOCK_DEV)) {
+ struct blk_desc *desc = dev_get_uclass_platdata(dev);
- part_init(desc);
-#endif
+ part_init(desc);
+ }
return 0;
}
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 11/14] drivers: serial: Make serial_initialize return int
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (8 preceding siblings ...)
2020-07-10 10:19 ` [PATCH v2 10/14] dm: blk: Use IS_ENABLED() instead of #ifdefs in blk_post_probe Ovidiu Panait
@ 2020-07-10 10:19 ` Ovidiu Panait
2020-07-10 10:19 ` [PATCH v2 12/14] common/board_r: Remove initr_serial wrapper Ovidiu Panait
` (3 subsequent siblings)
13 siblings, 0 replies; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:19 UTC (permalink / raw)
To: u-boot
serial_initialize is called only during the common init sequence, after
relocation (in common/board_r.c). Because it has a void return value, it
has to wrapped in initr_serial. In order to be able to get rid of this
indirection, make serial_initialize return int.
Remove extern from prototype in order to silence the following checkpatch
warning:
check: extern prototypes should be avoided in .h files
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- add reviewed-by tag
drivers/serial/serial-uclass.c | 4 ++--
drivers/serial/serial.c | 4 +++-
include/serial.h | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c
index a0af0e6bfd..0027625ebf 100644
--- a/drivers/serial/serial-uclass.c
+++ b/drivers/serial/serial-uclass.c
@@ -170,9 +170,9 @@ int serial_init(void)
}
/* Called after relocation */
-void serial_initialize(void)
+int serial_initialize(void)
{
- serial_init();
+ return serial_init();
}
static void _serial_putc(struct udevice *dev, char ch)
diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c
index da017dc5b3..53358acb81 100644
--- a/drivers/serial/serial.c
+++ b/drivers/serial/serial.c
@@ -170,7 +170,7 @@ void serial_register(struct serial_device *dev)
* serial port to the serial core. That serial port is then used as a
* default output.
*/
-void serial_initialize(void)
+int serial_initialize(void)
{
atmel_serial_initialize();
mcf_serial_initialize();
@@ -183,6 +183,8 @@ void serial_initialize(void)
mtk_serial_initialize();
serial_assign(default_serial_console()->name);
+
+ return 0;
}
static int serial_stub_start(struct stdio_dev *sdev)
diff --git a/include/serial.h b/include/serial.h
index c590637b1f..6d1e62c677 100644
--- a/include/serial.h
+++ b/include/serial.h
@@ -42,10 +42,10 @@ extern struct serial_device eserial5_device;
extern struct serial_device eserial6_device;
extern void serial_register(struct serial_device *);
-extern void serial_initialize(void);
extern void serial_stdio_init(void);
extern int serial_assign(const char *name);
extern void serial_reinit_all(void);
+int serial_initialize(void);
/* For usbtty */
#ifdef CONFIG_USB_TTY
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 12/14] common/board_r: Remove initr_serial wrapper
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (9 preceding siblings ...)
2020-07-10 10:19 ` [PATCH v2 11/14] drivers: serial: Make serial_initialize return int Ovidiu Panait
@ 2020-07-10 10:19 ` Ovidiu Panait
2020-07-10 10:19 ` [PATCH v2 13/14] blkcache: Extend blkcache_init to cover CONFIG_NEEDS_MANUAL_RELOC Ovidiu Panait
` (2 subsequent siblings)
13 siblings, 0 replies; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:19 UTC (permalink / raw)
To: u-boot
Remove the initr_serial->serial_initialize indirection and call
serial_initialize directly.
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- add reviewed-by tag
common/board_r.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/common/board_r.c b/common/board_r.c
index 5e924322b2..522059c5a5 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -187,12 +187,6 @@ static int initr_reloc_global_data(void)
return 0;
}
-static int initr_serial(void)
-{
- serial_initialize();
- return 0;
-}
-
#if defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_MIPS)
static int initr_trap(void)
{
@@ -705,7 +699,7 @@ static init_fnc_t init_sequence_r[] = {
#endif
initr_dm_devices,
stdio_init_tables,
- initr_serial,
+ serial_initialize,
initr_announce,
#if CONFIG_IS_ENABLED(WDT)
initr_watchdog,
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 13/14] blkcache: Extend blkcache_init to cover CONFIG_NEEDS_MANUAL_RELOC
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (10 preceding siblings ...)
2020-07-10 10:19 ` [PATCH v2 12/14] common/board_r: Remove initr_serial wrapper Ovidiu Panait
@ 2020-07-10 10:19 ` Ovidiu Panait
2020-07-15 19:29 ` Eric Nelson
2020-07-10 10:19 ` [PATCH v2 14/14] common/board_r: Move blkcache_init call earlier in the boot sequence Ovidiu Panait
2020-07-15 1:05 ` [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Simon Glass
13 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:19 UTC (permalink / raw)
To: u-boot
Extend manual relocation of block_cache list pointers to all platforms that
enable CONFIG_NEEDS_MANUAL_RELOC. Remove m68k-specific checks and provide a
single implementation that adds gd->reloc_off to the pre-relocation
pointers.
Cc: Angelo Durgehello <angelo.dureghello@timesys.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- add reviewed-by tag
common/board_r.c | 2 +-
drivers/block/blkcache.c | 13 +++++++------
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/common/board_r.c b/common/board_r.c
index 522059c5a5..29d831d5eb 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -836,7 +836,7 @@ static init_fnc_t init_sequence_r[] = {
#if defined(CONFIG_PRAM)
initr_mem,
#endif
-#if defined(CONFIG_M68K) && defined(CONFIG_BLOCK_CACHE)
+#if defined(CONFIG_NEEDS_MANUAL_RELOC) && defined(CONFIG_BLOCK_CACHE)
blkcache_init,
#endif
run_main_loop,
diff --git a/drivers/block/blkcache.c b/drivers/block/blkcache.c
index b6fc72fe98..d97ee99cf4 100644
--- a/drivers/block/blkcache.c
+++ b/drivers/block/blkcache.c
@@ -12,6 +12,8 @@
#include <linux/ctype.h>
#include <linux/list.h>
+DECLARE_GLOBAL_DATA_PTR;
+
struct block_cache_node {
struct list_head lh;
int iftype;
@@ -22,21 +24,20 @@ struct block_cache_node {
char *cache;
};
-#ifndef CONFIG_M68K
static LIST_HEAD(block_cache);
-#else
-static struct list_head block_cache;
-#endif
static struct block_cache_stats _stats = {
.max_blocks_per_entry = 8,
.max_entries = 32
};
-#ifdef CONFIG_M68K
+#ifdef CONFIG_NEEDS_MANUAL_RELOC
int blkcache_init(void)
{
- INIT_LIST_HEAD(&block_cache);
+ struct list_head *head = &block_cache;
+
+ head->next = (uintptr_t)head->next + gd->reloc_off;
+ head->prev = (uintptr_t)head->prev + gd->reloc_off;
return 0;
}
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 14/14] common/board_r: Move blkcache_init call earlier in the boot sequence
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (11 preceding siblings ...)
2020-07-10 10:19 ` [PATCH v2 13/14] blkcache: Extend blkcache_init to cover CONFIG_NEEDS_MANUAL_RELOC Ovidiu Panait
@ 2020-07-10 10:19 ` Ovidiu Panait
2020-07-13 17:23 ` Angelo Dureghello
2020-07-15 1:05 ` [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Simon Glass
13 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-10 10:19 UTC (permalink / raw)
To: u-boot
blkcache_init manually relocates blkcache list pointers when
CONFIG_NEEDS_MANUAL_RELOC is enabled. However, it is called very late in
the boot sequence, which could be a problem if previous boot calls execute
blkcache operations with the non-relocated pointers. For example, mmc is
initialized earlier and might call blkcache_invalidate (in
mmc_select_hwpart()) when trying to load the environment from mmc via
env_load().
To fix this issue, move blkcache_init boot call earlier, before mmc gets
initialized.
Cc: Angelo Durgehello <angelo.dureghello@timesys.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
v2 updates:
- add reviewed-by tag
common/board_r.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/common/board_r.c b/common/board_r.c
index 29d831d5eb..a3c26bb380 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -705,6 +705,9 @@ static init_fnc_t init_sequence_r[] = {
initr_watchdog,
#endif
INIT_FUNC_WATCHDOG_RESET
+#if defined(CONFIG_NEEDS_MANUAL_RELOC) && defined(CONFIG_BLOCK_CACHE)
+ blkcache_init,
+#endif
#ifdef CONFIG_NEEDS_MANUAL_RELOC
initr_manual_reloc_cmdtable,
#endif
@@ -835,9 +838,6 @@ static init_fnc_t init_sequence_r[] = {
#endif
#if defined(CONFIG_PRAM)
initr_mem,
-#endif
-#if defined(CONFIG_NEEDS_MANUAL_RELOC) && defined(CONFIG_BLOCK_CACHE)
- blkcache_init,
#endif
run_main_loop,
};
--
2.17.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 14/14] common/board_r: Move blkcache_init call earlier in the boot sequence
2020-07-10 10:19 ` [PATCH v2 14/14] common/board_r: Move blkcache_init call earlier in the boot sequence Ovidiu Panait
@ 2020-07-13 17:23 ` Angelo Dureghello
0 siblings, 0 replies; 26+ messages in thread
From: Angelo Dureghello @ 2020-07-13 17:23 UTC (permalink / raw)
To: u-boot
Hi Ovidiu and all,
>
> blkcache_init manually relocates blkcache list pointers when
> CONFIG_NEEDS_MANUAL_RELOC is enabled. However, it is called very late in
> the boot sequence, which could be a problem if previous boot calls execute
> blkcache operations with the non-relocated pointers. For example, mmc is
> initialized earlier and might call blkcache_invalidate (in
> mmc_select_hwpart()) when trying to load the environment from mmc via
> env_load().
>
> To fix this issue, move blkcache_init boot call earlier, before mmc gets
> initialized.
i tested this full 14/14 patch on ColdFire mcf5441x (m68k), it works for me.
Acked-by: Angelo Dureghello <angelo.dureghello@timesys.com>
Tested-by: Angelo Dureghello <angelo.dureghello@timesys.com>
Thanks !
Regards,
angelo
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
` (12 preceding siblings ...)
2020-07-10 10:19 ` [PATCH v2 14/14] common/board_r: Move blkcache_init call earlier in the boot sequence Ovidiu Panait
@ 2020-07-15 1:05 ` Simon Glass
13 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2020-07-15 1:05 UTC (permalink / raw)
To: u-boot
On Fri, 10 Jul 2020 at 04:22, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>
> In order to be able to replace "#ifdef CONFIG_SYS_SRAM_BASE" sequences
> with the IS_ENABLED() equivalent, introduce a new boolean Kconfig option
> that signals whether the platform has SRAM support.
>
> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> ---
>
> Kconfig | 11 +++++++++++
> 1 file changed, 11 insertions(+)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 02/14] Kconfig: Convert CONFIG_SYS_SRAM_BASE to Kconfig
2020-07-10 10:18 ` [PATCH v2 02/14] Kconfig: Convert CONFIG_SYS_SRAM_BASE to Kconfig Ovidiu Panait
@ 2020-07-15 1:05 ` Simon Glass
0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2020-07-15 1:05 UTC (permalink / raw)
To: u-boot
On Fri, 10 Jul 2020 at 04:23, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>
> This converts ad-hoc CONFIG_SYS_SRAM_BASE to Kconfig.
>
> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> ---
>
> Kconfig | 5 +++++
> include/configs/pic32mzdask.h | 1 -
> scripts/config_whitelist.txt | 1 -
> 3 files changed, 5 insertions(+), 2 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 03/14] Kconfig: Convert CONFIG_SYS_SRAM_SIZE to Kconfig
2020-07-10 10:18 ` [PATCH v2 03/14] Kconfig: Convert CONFIG_SYS_SRAM_SIZE " Ovidiu Panait
@ 2020-07-15 1:05 ` Simon Glass
0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2020-07-15 1:05 UTC (permalink / raw)
To: u-boot
On Fri, 10 Jul 2020 at 04:23, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>
> This converts ad-hoc CONFIG_SYS_SRAM_SIZE to Kconfig.
>
> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> ---
>
> Kconfig | 7 +++++++
> include/configs/devkit8000.h | 1 -
> include/configs/pic32mzdask.h | 2 --
> include/configs/tricorder.h | 1 -
> scripts/config_whitelist.txt | 1 -
> 5 files changed, 7 insertions(+), 5 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 04/14] Kconfig: Remove CONFIG_SYS_SRAM_START
2020-07-10 10:18 ` [PATCH v2 04/14] Kconfig: Remove CONFIG_SYS_SRAM_START Ovidiu Panait
@ 2020-07-15 1:05 ` Simon Glass
0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2020-07-15 1:05 UTC (permalink / raw)
To: u-boot
On Fri, 10 Jul 2020 at 04:23, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>
> Remove ad-hoc CONFIG_SYS_SRAM_START and use CONFIG_SYS_SRAM_BASE instead.
>
> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> ---
>
> Kconfig | 2 ++
> include/configs/devkit8000.h | 3 ---
> include/configs/tricorder.h | 3 ---
> scripts/config_whitelist.txt | 1 -
> 4 files changed, 2 insertions(+), 7 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 06/14] board_f: m68k: Factor out m68k-specific bdinfo setup
2020-07-10 10:18 ` [PATCH v2 06/14] board_f: m68k: Factor out m68k-specific bdinfo setup Ovidiu Panait
@ 2020-07-15 1:05 ` Simon Glass
2020-07-15 14:07 ` Ovidiu Panait
0 siblings, 1 reply; 26+ messages in thread
From: Simon Glass @ 2020-07-15 1:05 UTC (permalink / raw)
To: u-boot
On Fri, 10 Jul 2020 at 04:25, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>
> Factor out m68k-specific bdinfo setup to arch_setup_bdinfo in
> arch/m68k/lib/bdinfo.c. Also, use if(IS_ENABLED()) instead of #ifdef where
> possible.
>
> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> ---
> v2 updates:
> - use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
> "#ifdef CONFIG_SYS_SRAM_BASE"
>
> arch/m68k/lib/bdinfo.c | 32 ++++++++++++++++++++++++++++++++
> common/board_f.c | 14 ++++----------
> 2 files changed, 36 insertions(+), 10 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
See below
>
> diff --git a/arch/m68k/lib/bdinfo.c b/arch/m68k/lib/bdinfo.c
> index 971c47c306..3257195add 100644
> --- a/arch/m68k/lib/bdinfo.c
> +++ b/arch/m68k/lib/bdinfo.c
> @@ -11,6 +11,38 @@
>
> DECLARE_GLOBAL_DATA_PTR;
>
> +int arch_setup_bdinfo(void)
> +{
> + bd_t *bd = gd->bd;
> +
> + /*
> + * Save local variables to board info struct
> + */
> + bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */
> + bd->bi_memsize = gd->ram_size; /* size in bytes */
> +
> + if (IS_ENABLED(CONFIG_SYS_HAS_SRAM)) {
> + bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */
> + bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
> + }
I wonder if we can do better - can't we move the SDRAM code back to
the generic bdinfo.c ?
> +
> + bd->bi_mbar_base = CONFIG_SYS_MBAR; /* base of internal registers */
> +
> + bd->bi_intfreq = gd->cpu_clk; /* Internal Freq, in Hz */
> + bd->bi_busfreq = gd->bus_clk; /* Bus Freq, in Hz */
> +
> + if (IS_ENABLED(CONFIG_PCI))
> + bd->bi_pcifreq = gd->pci_clk;
> +
> +#if defined(CONFIG_EXTRA_CLOCK)
> + bd->bi_inpfreq = gd->arch.inp_clk; /* input Freq in Hz */
> + bd->bi_vcofreq = gd->arch.vco_clk; /* vco Freq in Hz */
> + bd->bi_flbfreq = gd->arch.flb_clk; /* flexbus Freq in Hz */
> +#endif
> +
> + return 0;
> +}
> +
> void arch_print_bdinfo(void)
> {
> bd_t *bd = gd->bd;
> diff --git a/common/board_f.c b/common/board_f.c
> index e597749d2f..7d65879b93 100644
> --- a/common/board_f.c
> +++ b/common/board_f.c
> @@ -602,7 +602,7 @@ __weak int arch_setup_bdinfo(void)
> return 0;
> }
>
> -#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
> defined(CONFIG_SH)
> static int setup_board_part1(void)
> {
> @@ -622,9 +622,6 @@ static int setup_board_part1(void)
> #if defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
> bd->bi_immr_base = CONFIG_SYS_IMMR; /* base of IMMR register */
> #endif
> -#if defined(CONFIG_M68K)
> - bd->bi_mbar_base = CONFIG_SYS_MBAR; /* base of internal registers */
> -#endif
> #if defined(CONFIG_MPC83xx)
> bd->bi_immrbar = CONFIG_SYS_IMMR;
> #endif
> @@ -633,7 +630,7 @@ static int setup_board_part1(void)
> }
> #endif
>
> -#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
> +#if defined(CONFIG_PPC)
> static int setup_board_part2(void)
> {
> bd_t *bd = gd->bd;
> @@ -646,9 +643,6 @@ static int setup_board_part2(void)
> bd->bi_sccfreq = gd->arch.scc_clk;
> bd->bi_vco = gd->arch.vco_out;
> #endif /* CONFIG_CPM2 */
> -#if defined(CONFIG_M68K) && defined(CONFIG_PCI)
> - bd->bi_pcifreq = gd->pci_clk;
> -#endif
> #if defined(CONFIG_EXTRA_CLOCK)
> bd->bi_inpfreq = gd->arch.inp_clk; /* input Freq in Hz */
> bd->bi_vcofreq = gd->arch.vco_clk; /* vco Freq in Hz */
> @@ -980,11 +974,11 @@ static const init_fnc_t init_sequence_f[] = {
> dram_init_banksize,
> show_dram_config,
> arch_setup_bdinfo,
> -#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
> defined(CONFIG_SH)
> setup_board_part1,
> #endif
> -#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
> +#if defined(CONFIG_PPC)
> INIT_FUNC_WATCHDOG_RESET
> setup_board_part2,
> #endif
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 07/14] board_f: ppc: Factor out ppc-specific bdinfo setup
2020-07-10 10:19 ` [PATCH v2 07/14] board_f: ppc: Factor out ppc-specific " Ovidiu Panait
@ 2020-07-15 1:05 ` Simon Glass
0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2020-07-15 1:05 UTC (permalink / raw)
To: u-boot
On Fri, 10 Jul 2020 at 04:25, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>
> Factor out ppc-specific bdinfo setup from generic init sequence to
> arch_setup_bdinfo in arch/powerpc/lib/bdinfo.c. Also, use if(IS_ENABLED())
> instead of #ifdef where possible.
>
> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> ---
> v2 updates:
> - use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
> "#ifdef CONFIG_SYS_SRAM_BASE"
>
> arch/powerpc/lib/bdinfo.c | 42 +++++++++++++++++++++++++++++++++++++++
> common/board_f.c | 39 ++----------------------------------
> 2 files changed, 44 insertions(+), 37 deletions(-)
>
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 08/14] board_f: sh: Factor out sh-specific bdinfo setup
2020-07-10 10:19 ` [PATCH v2 08/14] board_f: sh: Factor out sh-specific " Ovidiu Panait
@ 2020-07-15 1:05 ` Simon Glass
0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2020-07-15 1:05 UTC (permalink / raw)
To: u-boot
On Fri, 10 Jul 2020 at 04:25, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>
> Factor out sh-specific bdinfo setup from generic init sequence to
> arch_setup_bdinfo in arch/sh/lib/board.c. Also, use if(IS_ENABLED())
> instead of #ifdef where possible.
>
> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> ---
> v2 updates:
> - use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
> "#ifdef CONFIG_SYS_SRAM_BASE"
>
> arch/sh/lib/board.c | 18 ++++++++++++++++++
> common/board_f.c | 4 ++--
> 2 files changed, 20 insertions(+), 2 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
Same comment here.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 09/14] board_f: mips: Factor out mips-specific bdinfo setup
2020-07-10 10:19 ` [PATCH v2 09/14] board_f: mips: Factor out mips-specific " Ovidiu Panait
@ 2020-07-15 1:05 ` Simon Glass
0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2020-07-15 1:05 UTC (permalink / raw)
To: u-boot
On Fri, 10 Jul 2020 at 04:25, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>
> Factor out mips-specific bdinfo setup from generic init sequence to
> arch_setup_bdinfo in arch/mips/lib/boot.c. Also, use if(IS_ENABLED())
> instead of #ifdef where possible.
>
> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> ---
> v2 updates:
> - use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
> "#ifdef CONFIG_SYS_SRAM_BASE"
>
> arch/mips/lib/boot.c | 18 ++++++++++++++++++
> common/board_f.c | 25 +------------------------
> 2 files changed, 19 insertions(+), 24 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 06/14] board_f: m68k: Factor out m68k-specific bdinfo setup
2020-07-15 1:05 ` Simon Glass
@ 2020-07-15 14:07 ` Ovidiu Panait
2020-07-16 15:44 ` Simon Glass
0 siblings, 1 reply; 26+ messages in thread
From: Ovidiu Panait @ 2020-07-15 14:07 UTC (permalink / raw)
To: u-boot
Hi Simon,
On 15.07.2020 04:05, Simon Glass wrote:
> On Fri, 10 Jul 2020 at 04:25, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>> Factor out m68k-specific bdinfo setup to arch_setup_bdinfo in
>> arch/m68k/lib/bdinfo.c. Also, use if(IS_ENABLED()) instead of #ifdef where
>> possible.
>>
>> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
>> ---
>> v2 updates:
>> - use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
>> "#ifdef CONFIG_SYS_SRAM_BASE"
>>
>> arch/m68k/lib/bdinfo.c | 32 ++++++++++++++++++++++++++++++++
>> common/board_f.c | 14 ++++----------
>> 2 files changed, 36 insertions(+), 10 deletions(-)
> Reviewed-by: Simon Glass <sjg@chromium.org>
>
> See below
>
>> diff --git a/arch/m68k/lib/bdinfo.c b/arch/m68k/lib/bdinfo.c
>> index 971c47c306..3257195add 100644
>> --- a/arch/m68k/lib/bdinfo.c
>> +++ b/arch/m68k/lib/bdinfo.c
>> @@ -11,6 +11,38 @@
>>
>> DECLARE_GLOBAL_DATA_PTR;
>>
>> +int arch_setup_bdinfo(void)
>> +{
>> + bd_t *bd = gd->bd;
>> +
>> + /*
>> + * Save local variables to board info struct
>> + */
>> + bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */
>> + bd->bi_memsize = gd->ram_size; /* size in bytes */
>> +
>> + if (IS_ENABLED(CONFIG_SYS_HAS_SRAM)) {
>> + bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */
>> + bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
>> + }
> I wonder if we can do better - can't we move the SDRAM code back to
> the generic bdinfo.c ?
I am not sure that I understand, could you please explain it further?
When talking about the generic bdinfo.c, you are referring to
cmd/bdinfo.c?? I see that cmd/bdinfo.c currently only takes care of
printing various bd->bi_* fields, not assigning them.
Where exactly should I move the "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))
{...}" block?
Do you mean to create a generic setup_bdinfo that populates generic
bd->bi_* fields and at the end calls the arch-specific variant
arch_setup_bdinfo?
Ovidiu
>> +
>> + bd->bi_mbar_base = CONFIG_SYS_MBAR; /* base of internal registers */
>> +
>> + bd->bi_intfreq = gd->cpu_clk; /* Internal Freq, in Hz */
>> + bd->bi_busfreq = gd->bus_clk; /* Bus Freq, in Hz */
>> +
>> + if (IS_ENABLED(CONFIG_PCI))
>> + bd->bi_pcifreq = gd->pci_clk;
>> +
>> +#if defined(CONFIG_EXTRA_CLOCK)
>> + bd->bi_inpfreq = gd->arch.inp_clk; /* input Freq in Hz */
>> + bd->bi_vcofreq = gd->arch.vco_clk; /* vco Freq in Hz */
>> + bd->bi_flbfreq = gd->arch.flb_clk; /* flexbus Freq in Hz */
>> +#endif
>> +
>> + return 0;
>> +}
>> +
>> void arch_print_bdinfo(void)
>> {
>> bd_t *bd = gd->bd;
>> diff --git a/common/board_f.c b/common/board_f.c
>> index e597749d2f..7d65879b93 100644
>> --- a/common/board_f.c
>> +++ b/common/board_f.c
>> @@ -602,7 +602,7 @@ __weak int arch_setup_bdinfo(void)
>> return 0;
>> }
>>
>> -#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
>> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
>> defined(CONFIG_SH)
>> static int setup_board_part1(void)
>> {
>> @@ -622,9 +622,6 @@ static int setup_board_part1(void)
>> #if defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
>> bd->bi_immr_base = CONFIG_SYS_IMMR; /* base of IMMR register */
>> #endif
>> -#if defined(CONFIG_M68K)
>> - bd->bi_mbar_base = CONFIG_SYS_MBAR; /* base of internal registers */
>> -#endif
>> #if defined(CONFIG_MPC83xx)
>> bd->bi_immrbar = CONFIG_SYS_IMMR;
>> #endif
>> @@ -633,7 +630,7 @@ static int setup_board_part1(void)
>> }
>> #endif
>>
>> -#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
>> +#if defined(CONFIG_PPC)
>> static int setup_board_part2(void)
>> {
>> bd_t *bd = gd->bd;
>> @@ -646,9 +643,6 @@ static int setup_board_part2(void)
>> bd->bi_sccfreq = gd->arch.scc_clk;
>> bd->bi_vco = gd->arch.vco_out;
>> #endif /* CONFIG_CPM2 */
>> -#if defined(CONFIG_M68K) && defined(CONFIG_PCI)
>> - bd->bi_pcifreq = gd->pci_clk;
>> -#endif
>> #if defined(CONFIG_EXTRA_CLOCK)
>> bd->bi_inpfreq = gd->arch.inp_clk; /* input Freq in Hz */
>> bd->bi_vcofreq = gd->arch.vco_clk; /* vco Freq in Hz */
>> @@ -980,11 +974,11 @@ static const init_fnc_t init_sequence_f[] = {
>> dram_init_banksize,
>> show_dram_config,
>> arch_setup_bdinfo,
>> -#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
>> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
>> defined(CONFIG_SH)
>> setup_board_part1,
>> #endif
>> -#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
>> +#if defined(CONFIG_PPC)
>> INIT_FUNC_WATCHDOG_RESET
>> setup_board_part2,
>> #endif
>> --
>> 2.17.1
>>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 13/14] blkcache: Extend blkcache_init to cover CONFIG_NEEDS_MANUAL_RELOC
2020-07-10 10:19 ` [PATCH v2 13/14] blkcache: Extend blkcache_init to cover CONFIG_NEEDS_MANUAL_RELOC Ovidiu Panait
@ 2020-07-15 19:29 ` Eric Nelson
0 siblings, 0 replies; 26+ messages in thread
From: Eric Nelson @ 2020-07-15 19:29 UTC (permalink / raw)
To: u-boot
On 7/10/20 3:19 AM, Ovidiu Panait wrote:
> Extend manual relocation of block_cache list pointers to all platforms that
> enable CONFIG_NEEDS_MANUAL_RELOC. Remove m68k-specific checks and provide a
> single implementation that adds gd->reloc_off to the pre-relocation
> pointers.
>
> Cc: Angelo Durgehello <angelo.dureghello@timesys.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> ---
> v2 updates:
> - add reviewed-by tag
>
Reviewed-by: Eric Nelson <eric@nelint.com>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 06/14] board_f: m68k: Factor out m68k-specific bdinfo setup
2020-07-15 14:07 ` Ovidiu Panait
@ 2020-07-16 15:44 ` Simon Glass
0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2020-07-16 15:44 UTC (permalink / raw)
To: u-boot
Hi Ovidiu,
On Wed, 15 Jul 2020 at 08:07, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
>
> Hi Simon,
>
> On 15.07.2020 04:05, Simon Glass wrote:
> > On Fri, 10 Jul 2020 at 04:25, Ovidiu Panait <ovidiu.panait@windriver.com> wrote:
> >> Factor out m68k-specific bdinfo setup to arch_setup_bdinfo in
> >> arch/m68k/lib/bdinfo.c. Also, use if(IS_ENABLED()) instead of #ifdef where
> >> possible.
> >>
> >> Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
> >> ---
> >> v2 updates:
> >> - use "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))" instead of
> >> "#ifdef CONFIG_SYS_SRAM_BASE"
> >>
> >> arch/m68k/lib/bdinfo.c | 32 ++++++++++++++++++++++++++++++++
> >> common/board_f.c | 14 ++++----------
> >> 2 files changed, 36 insertions(+), 10 deletions(-)
> > Reviewed-by: Simon Glass <sjg@chromium.org>
> >
> > See below
> >
> >> diff --git a/arch/m68k/lib/bdinfo.c b/arch/m68k/lib/bdinfo.c
> >> index 971c47c306..3257195add 100644
> >> --- a/arch/m68k/lib/bdinfo.c
> >> +++ b/arch/m68k/lib/bdinfo.c
> >> @@ -11,6 +11,38 @@
> >>
> >> DECLARE_GLOBAL_DATA_PTR;
> >>
> >> +int arch_setup_bdinfo(void)
> >> +{
> >> + bd_t *bd = gd->bd;
> >> +
> >> + /*
> >> + * Save local variables to board info struct
> >> + */
> >> + bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */
> >> + bd->bi_memsize = gd->ram_size; /* size in bytes */
> >> +
> >> + if (IS_ENABLED(CONFIG_SYS_HAS_SRAM)) {
> >> + bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */
> >> + bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size of SRAM */
> >> + }
> > I wonder if we can do better - can't we move the SDRAM code back to
> > the generic bdinfo.c ?
>
> I am not sure that I understand, could you please explain it further?
>
> When talking about the generic bdinfo.c, you are referring to
> cmd/bdinfo.c? I see that cmd/bdinfo.c currently only takes care of
> printing various bd->bi_* fields, not assigning them.
>
> Where exactly should I move the "if (IS_ENABLED(CONFIG_SYS_HAS_SRAM))
> {...}" block?
>
>
> Do you mean to create a generic setup_bdinfo that populates generic
> bd->bi_* fields and at the end calls the arch-specific variant
> arch_setup_bdinfo?
Er yes, that's what I meant! You will go far with your psychic abilities.
Regards,
Simon
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2020-07-16 15:44 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-10 10:18 [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Ovidiu Panait
2020-07-10 10:18 ` [PATCH v2 02/14] Kconfig: Convert CONFIG_SYS_SRAM_BASE to Kconfig Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:18 ` [PATCH v2 03/14] Kconfig: Convert CONFIG_SYS_SRAM_SIZE " Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:18 ` [PATCH v2 04/14] Kconfig: Remove CONFIG_SYS_SRAM_START Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:18 ` [PATCH v2 05/14] board_f: Introduce arch_setup_bdinfo initcall Ovidiu Panait
2020-07-10 10:18 ` [PATCH v2 06/14] board_f: m68k: Factor out m68k-specific bdinfo setup Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-15 14:07 ` Ovidiu Panait
2020-07-16 15:44 ` Simon Glass
2020-07-10 10:19 ` [PATCH v2 07/14] board_f: ppc: Factor out ppc-specific " Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:19 ` [PATCH v2 08/14] board_f: sh: Factor out sh-specific " Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:19 ` [PATCH v2 09/14] board_f: mips: Factor out mips-specific " Ovidiu Panait
2020-07-15 1:05 ` Simon Glass
2020-07-10 10:19 ` [PATCH v2 10/14] dm: blk: Use IS_ENABLED() instead of #ifdefs in blk_post_probe Ovidiu Panait
2020-07-10 10:19 ` [PATCH v2 11/14] drivers: serial: Make serial_initialize return int Ovidiu Panait
2020-07-10 10:19 ` [PATCH v2 12/14] common/board_r: Remove initr_serial wrapper Ovidiu Panait
2020-07-10 10:19 ` [PATCH v2 13/14] blkcache: Extend blkcache_init to cover CONFIG_NEEDS_MANUAL_RELOC Ovidiu Panait
2020-07-15 19:29 ` Eric Nelson
2020-07-10 10:19 ` [PATCH v2 14/14] common/board_r: Move blkcache_init call earlier in the boot sequence Ovidiu Panait
2020-07-13 17:23 ` Angelo Dureghello
2020-07-15 1:05 ` [PATCH v2 01/14] Kconfig: Introduce CONFIG_SYS_HAS_SRAM Simon Glass
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.