RE: CFE problem: starting secondary CPU.

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

 



Jonathan Day wrote:
> 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.

Do you have a patch for that?

> It's a godawful hack, but I
> needed something quick at the time.

I wrote another hack. I struggled with it for hours and
then finally got it to work. Whoo! 

The idea is based on the hypothesis that the 64 bit
kernel's environment somehow makes the CFE calls unreliable.

Under this hack, the CPUs are started early through CFE,
before most other initializations. They go into a holding function
which is almost identical to the one inside CFE, 
except that it's running kernel code.

Then later at the point where the CPU's are to be released
into the kernel, it's purely an in-kernel operation, no
longer involving any calls to CFE.



Remarks:



I have some CFE code which reads environment variables
using CFE. Under 64 bit, there is a mysterious oops in it.
The code looks good, and runs fine under 32.

What could it be? Maybe CFE doesn't like being called from
a task! Something about the 64 bit stack?

Note that code which starts the other CPU's is called from a
kernel thread which calls the init() function, not from
the mainline.

I will investigate further.


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

  Powered by Linux