[U-Boot] [PATCH] x86: enable cpu-specific functions for x86_64 target

Add __weak prefix to the following functions to allow override: misc_init_r(), checkcpu(), print_cpuinfo().
Signed-off-by: Ivan Gorinov ivan.gorinov@intel.com --- arch/x86/cpu/x86_64/cpu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/cpu/x86_64/cpu.c b/arch/x86/cpu/x86_64/cpu.c index 18b3e94..6f14efc 100644 --- a/arch/x86/cpu/x86_64/cpu.c +++ b/arch/x86/cpu/x86_64/cpu.c @@ -59,17 +59,17 @@ int x86_mp_init(void) return 0; }
-int misc_init_r(void) +__weak int misc_init_r(void) { return 0; }
-int checkcpu(void) +__weak int checkcpu(void) { return 0; }
-int print_cpuinfo(void) +__weak int print_cpuinfo(void) { return 0; }

Hi Ivan,
On 25 May 2018 at 16:00, Ivan Gorinov ivan.gorinov@intel.com wrote:
Add __weak prefix to the following functions to allow override: misc_init_r(), checkcpu(), print_cpuinfo().
Signed-off-by: Ivan Gorinov ivan.gorinov@intel.com
arch/x86/cpu/x86_64/cpu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/cpu/x86_64/cpu.c b/arch/x86/cpu/x86_64/cpu.c index 18b3e94..6f14efc 100644 --- a/arch/x86/cpu/x86_64/cpu.c +++ b/arch/x86/cpu/x86_64/cpu.c @@ -59,17 +59,17 @@ int x86_mp_init(void) return 0; }
-int misc_init_r(void) +__weak int misc_init_r(void) { return 0; }
-int checkcpu(void) +__weak int checkcpu(void) { return 0; }
-int print_cpuinfo(void) +__weak int print_cpuinfo(void) { return 0; } -- 2.7.4
We should do with with a different CPU driver I think. What exactly is the problem?
Regards, Simon

On Sat, 2018-05-26 at 18:53 -0600, Simon Glass wrote:
We should do with with a different CPU driver I think. What exactly is the problem?
+1.
The approach feels wrong. It looks like whatever you are going to add later needs actually a fully-established folder under arch/x86/cpu rather than (dirty) hacks here and there.

On Sat, May 26, 2018 at 06:53:40PM -0600, Simon Glass wrote:
Hi Ivan,
On 25 May 2018 at 16:00, Ivan Gorinov ivan.gorinov@intel.com wrote:
Add __weak prefix to the following functions to allow override: misc_init_r(), checkcpu(), print_cpuinfo().
Signed-off-by: Ivan Gorinov ivan.gorinov@intel.com
arch/x86/cpu/x86_64/cpu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/cpu/x86_64/cpu.c b/arch/x86/cpu/x86_64/cpu.c index 18b3e94..6f14efc 100644 --- a/arch/x86/cpu/x86_64/cpu.c +++ b/arch/x86/cpu/x86_64/cpu.c @@ -59,17 +59,17 @@ int x86_mp_init(void) return 0; }
-int misc_init_r(void) +__weak int misc_init_r(void) { return 0; }
-int checkcpu(void) +__weak int checkcpu(void) { return 0; }
-int print_cpuinfo(void) +__weak int print_cpuinfo(void) { return 0; } -- 2.7.4
We should do with with a different CPU driver I think. What exactly is the problem?
When I change a Minnowboard configuration (baytrail) to run in 64-bit mode, there are two conflicting definitions of misc_init_r():
arch/x86/cpu/x86_64/cpu.c board/intel/minnowmax/minnowmax.c
On other CPU models, functions checkcpu() and print_cpuinfo() conflict with model-specific definitions for Tangier, Ivy Bridge, Broadwell, Quark.
participants (3)
-
Andy Shevchenko
-
Ivan Gorinov
-
Simon Glass