Переключатель уровня исключения aarch64 с EL1 на EL0 - PullRequest
0 голосов
/ 20 марта 2019

Я работаю над простым ядром и тестирую его на Qemu, который поддерживает RasPi3.

Во время загрузки Ras Pi переходит на уровень EL3, я устанавливаю spsr_el3 в 1 и elr_el3 в kernel_main, а затем используюЧтобы перейти в режим EL1.

Моя проблема: я создаю поток ядра, который все еще находится на уровне EL1.Я хочу переключить поток ядра на уровень пользователя.

Что я сделал, так это то, что этот поток ядра также установил spsr_el1 в 0 и elr_el1 в указатель на функцию, а затем eret.Но в этом случае прерывание синхронизации, я думаю, вызвано этим eret?

1 Ответ

0 голосов
/ 27 марта 2019

Вам нужно взглянуть на регистр синдрома исключения, ESR_EL1 или ESR_EL3, но вам также необходимо выяснить, переносите ли вы свое исключение на EL1 или EL3. Есть причины, по которым это может быть либо.

...