CSS: Put secondary CPUs in a pen when booting an EL3 payload
CSS: Put secondary CPUs in a pen when booting an EL3 payload

By default, only the primary CPU is powered on by SCP on CSS
platforms. Secondary CPUs are then powered on later using PSCI
calls.

However, it is possible to power on more than one CPU at boot time
using platform specific settings. In this case, several CPUs will
enter the Trusted Firmware and execute the cold boot path code.
This is currently not supported and secondary CPUs will panic.

This patch preserves this behaviour in the normal boot flow.
However, when booting an EL3 payload, secondary CPUs are now held in
a pen until their mailbox is populated, at which point they jump to
this address. Note that, since all CPUs share the same mailbox, they
will all be released from their holding pen at the same time and the
EL3 payload is responsible to arbitrate execution between CPUs if
required.

Change-Id: I83737e0c9f15ca5e73afbed2e9c761bc580735b9

sandrine-bailleux/arm-trusted-firmware,sandrine-bailleux-arm/arm-trusted-firmware,achingupta/arm-trusted-firmware,lsigithub/arm-trusted-firmware_public,davwan01/arm-trusted-firmware,davwan01/arm-trusted-firmware,sbranden/arm-trusted-firmware,lsigithub/arm-trusted-firmware_public,sandrine-bailleux-arm/arm-trusted-firmware,sandrine-bailleux/arm-trusted-firmware,achingupta/arm-trusted-firmware,sbranden/arm-trusted-firmware