AFAIK, на ARM, минимальное количество кода платформы в arch / arm / mach- для управления питанием и поддержки APMU SMP.
На ARM64 код платформы отсутствуетвсе, управление питанием и SMP-операции выполняются с использованием PSCI.![enter image description here](https://i.stack.imgur.com/8J2UK.png)
PSCI: Предоставляет общий интерфейс, который диспетчерское программное обеспечение может использовать для управления питанием в следующих ситуациях:
- Core idle management.
- Dynamic addition of cores to and removal of cores from the system, often referred to as hotplug.
- Secondary core boot.
- Moving trusted OS context from one core to another.
- System shutdown and reset.
В моей работе моя система ужевоспитал двойной cortexA57 в Cluster0, и не смог вызвать четырехъядерный cortexA53 в Cluster1 (оба типа armv8).Я хочу вывести 04 этих ядра в Cluster1, используя PSCI.
Я следовал процедуре CPU_ON, аналогичной приведенному ниже примеру: ![enter image description here](https://i.stack.imgur.com/jVB2U.png)
В основном, в примере,CPU_0 запрашивает включение CPU_1.Поток следует модели, аналогичной описанному выше потоку CPU_SUSPEND.CPU_0 запрашивает включение CPU_1 и предоставляет адрес точки входа и идентификатор контекста для NS-EL1.Гипервизор в EL2 перехватывает вызов, сохраняя требуемый адрес точки входа и идентификатор контекста, перед тем как выполнить тот же вызов для прошивки защищенной платформы и предоставить адрес точки входа EL2 и идентификатор контекста.Затем защищенная платформа FW запускает CPU_1, инициализирует его и возобновляет его на EL2, используя предоставленный адрес точки входа и идентификатор контекста.Наконец, гипервизор, инициализированный на CPU_1, возобновляет ядро на NS-EL1, используя первоначально предоставленный адрес точки входа и идентификатор контекста.
Я знал, что вызов CPU_ON: Включите ядро.Этот вызов используется для включения ядер, которые либо:
- Have not yet been booted into the calling supervisory software.
- Have been previously powered down with a CPU_OFF call.
Однако наша система все еще зависла на " Запуск ядра ... ".
У кого естьопыт работы с платформой PSCI может рассказать мне:
- Может ли PSCI задействовать ядра ЦП в других кластерах, кроме кластера, содержащего загрузочный ЦП?
- Существует ли эффективный способ реализации мультикластера?загрузки процессорных ядер?(ссылка?)
В любом случае, спасибо.