On 17 January 2012 13:50, Mark Langsdorf <mark.langsd...@calxeda.com> wrote: > + highbank_binfo.ram_size = ram_size; > + highbank_binfo.kernel_filename = kernel_filename; > + highbank_binfo.kernel_cmdline = kernel_cmdline; > + highbank_binfo.initrd_filename = initrd_filename; > + highbank_binfo.board_id = -1; /* provided by deviceTree */ > + highbank_binfo.nb_cpus = smp_cpus; > + highbank_binfo.loader_start = 0; > + highbank_binfo.smp_loader_start = SMP_BOOT_ADDR; > + arm_load_kernel(env, &highbank_binfo);
Unfortunately for you Evgeny's patch to arm_boot.c has been committed to master (commit 078758d0) which means you need to update this to specify a value for highbank_binfo.smp_bootreg_addr. The bad news is that if I'm reading this right: http://lxr.linux.no/#linux+v3.2.1/arch/arm/mach-highbank/highbank.c#L71 that value differs depending on which CPU is to be brought out of the pen, which implies that you probably need to implement your own secondary smp boot code. Incidentally I'm surprised this worked for you at all -- before Evgeny's patch the secondary bootloader code in arm_boot.c would have been polling 0x10000030, which the highbank kernel code doesn't ever change, so I don't see how you got the secondary cores into the kernel when using -kernel... -- PMM