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.