PSCI запускает мультикластерное ядро ​​процессора в ARM64 - PullRequest
0 голосов
/ 25 января 2019

AFAIK, на ARM, минимальное количество кода платформы в arch / arm / mach- для управления питанием и поддержки APMU SMP.

На ARM64 код платформы отсутствуетвсе, управление питанием и SMP-операции выполняются с использованием PSCI.enter image description here

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

В основном, в примере,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 задействовать ядра ЦП в других кластерах, кроме кластера, содержащего загрузочный ЦП?
  • Существует ли эффективный способ реализации мультикластера?загрузки процессорных ядер?(ссылка?)

В любом случае, спасибо.

...