#
eb0b02b2 |
|
10-Dec-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
elfloader: use driver model for SMP on ARM Previously, each platform had its own implementation of init_cpus(). This is particularly cumbersome in the case of aarch64, where all platforms which support SMP use PSCI to do so. This patch moves SMP on ARM to be implemented using the driver model. It introduces a new driver type, DRIVER_SMP. This driver has a single method, `cpu_on`, which, when given an `elfloader_cpu` struct, turns on the CPU corresponding to that struct, launching it at the given entry point with the provided stack. This patch also makes the aarch64 and aarch32 CPU bringup logic much more similar. Both architectures now wait for CPUs to come up before starting the next. Note that the i.MX7 is left as-is, using the old mechanism, due to a lack of hardware to test on.
|