SMP boot sequence

Hello,

I have successfully booted QNX on the HoneyComb. I thought it would take a few weeks, but thanks to ARMv8 being a lot more standardized than previous architectures it only took a couple of hours ;-).
So far only a single core is seen and I would like to bring up the other cores. Does anyone know the state of these cores after boot? Does u-boot do anything with these?
The goal is to make the cores jump to the same physical address as the one I gave u-boot for the RAM image, so they can start the boot sequence.

Thanks,
–Elad

Looks like I need to issue PSCI calls via SMC.

Yes all Host OS core control is done via the standardized PSCI calls into TF-A

Thanks, it was actually quite easy… All 16 cores boot.
Next is to find where is the rest of RAM… The manual (and FDT) only specify 0x80000000-0xffffffff for the first 2GB. Need to hunt down those elusive remaining 30GB…

I’m pleasantly surprised as to how easy it is to work with this board.

–Elad

P.S.,
Also need to silence that awful fan!

There are 3 memory ranges. You can download the lx2160a reference manual from NXP’s site. It is a free download, just requires creating an account.

Yes, I have the manual. I missed “GPP DRAM Region #2”, but in any case it wasn’t clear that the firmware would assign the addresses sequentially from the bottom.

Also, there seem to be regions that need to be avoided within the lower 2GB. I can boot a working system with 1GB (0x80000000-0xbfffffff) but not with 2GB. Still investigating that.

–Elad

OK, all good now:

System page at phys:0000000080012000 user:ffffff8040414000 kern:ffffff8040411000
Starting next program at vffffff8060075820
All ClockCycles offsets within tolerance
Welcome to QNX Neutrino on the HoneyComb-LX2 (Armv8-A Cortex-A72 core)
Starting watchdog...
Starting Serial driver...
# pidin info
CPU:AARCH64 FreeMem:29GB/29GB BootTime:Jan 01 00:00:00 GMT 1970
 Actual resident free memory:29GB
Processes: 9, Threads: 75
Processor1: 1091555459 Cortex-A72 2000MHz FPU 
Processor2: 1091555459 Cortex-A72 2000MHz FPU 
Processor3: 1091555459 Cortex-A72 2000MHz FPU 
Processor4: 1091555459 Cortex-A72 2000MHz FPU 
Processor5: 1091555459 Cortex-A72 2000MHz FPU 
Processor6: 1091555459 Cortex-A72 2000MHz FPU 
Processor7: 1091555459 Cortex-A72 2000MHz FPU 
Processor8: 1091555459 Cortex-A72 2000MHz FPU 
Processor9: 1091555459 Cortex-A72 2000MHz FPU 
Processor10: 1091555459 Cortex-A72 2000MHz FPU 
Processor11: 1091555459 Cortex-A72 2000MHz FPU 
Processor12: 1091555459 Cortex-A72 2000MHz FPU 
Processor13: 1091555459 Cortex-A72 2000MHz FPU 
Processor14: 1091555459 Cortex-A72 2000MHz FPU 
Processor15: 1091555459 Cortex-A72 2000MHz FPU 
Processor16: 1091555459 Cortex-A72 2000MHz FPU