CFE problem: starting secondary CPU.

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

 



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.





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

  Powered by Linux