Re: CFE problem: starting secondary CPU.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've seen the case where the second CPU did not start
on a Broadcom 1250 running a 64-bit kernel, but I
don't know if anyone has a good solution. I just
rigged the values in the Linux kernel so that it knows
about the second CPU. It's a godawful hack, but I
needed something quick at the time.

Personally, I am not a fan of CFE and would love to
know if there's a better way to bootstrap.

--- Kaz Kylheku <kaz@xxxxxxxxxxxxxxxxx> wrote:

> Anyone seen a problem like this? cfe_cpu_start()
> works fine on a
> 32 bit kernel, but not on 64.
> 
> I added a function to cfe/smp.c:
> 
>   static asmlinkage void dummy()
>   {
>     prom_printf("dummy called\n");
>   }
> 
> This serves as the simplest possible "hello world". 
> 
> If I substitute this for the function passed to
> cfe_cpu_start(),
> on a 32 bit kernel, the slave CPU calls the function
> and the
> message is printed on the serial console.
> 
> On a 64 bit kernel, the function is never reached.
> The API call returns,
> but the
> secondary CPU never calls in.
> 
> The sign-extension of the address looks good. The
> function pointer looks
> like
> FFFFFFFF8XXXXXXX. This is cast to long before being
> assigned into the
> right field
> of the CFE request structure, where it is converted
> to 64 bit unsigned.
> 
> Inside CFE, the CPU is just looping around waiting
> for the address to
> call with
> a direct jump.
> 
> So it's a puzzling problem.
> 
> 
> 
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux