Участник:A1batross: различия между версиями
A1batross (обсуждение | вклад) Нет описания правки |
A1batross (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
Тут буду складировать заметки по Эльбрусу, которые когда-нибудь, может быть, не уверен, но перерастут во что-то большее. | Тут буду складировать заметки по Эльбрусу, которые когда-нибудь, может быть, не уверен, но перерастут во что-то большее. | ||
Не все обязательно являются правдой в последней инстанции, так как получены в основном из работы с машиной по SSH и чтением исходных кодов ядра. | |||
=== syscall 12 === | === syscall 12 === | ||
Строка 7: | Строка 9: | ||
<code> | <code> | ||
{ | { | ||
addd 0, 0, %b[0] | addd 0, 0, %b[0] | ||
addd 0, bootblock, %b[1] | addd 0, bootblock, %b[1] | ||
sdisp %ctpr1, 12 | sdisp %ctpr1, 12 | ||
} | } | ||
call %ctpr1, wbs = 5 | call %ctpr1, wbs = 5 | ||
</code> | </code> | ||
=== Elbrus PCI === | |||
IOHub из себя представляет PCI шину, к которой подключены мосты, уже к которым подключаются сами устройства. Получается такая древовидная структура. Встроенные в мост или SoC висят на первой шине и являются Conventional PCI устройствами, к второй подключается PCI-Express. | |||
==== PCI config ==== | |||
Доступ к конфигурации осуществляется через адресное пространство, базовый адрес которого получаем из чтения регистра SIC_rt_pcicfgb(0x90). Адресное пространство имеет ширину в 28 бит, поэтому в него кодируются следующие данные: | |||
* 0:11 заняты адресом регистра PCI устройства. | |||
* 12:19 занят devfn. | |||
* 20:27 занят номером шины. |
Текущая версия от 23:28, 22 августа 2021
Тут буду складировать заметки по Эльбрусу, которые когда-нибудь, может быть, не уверен, но перерастут во что-то большее.
Не все обязательно являются правдой в последней инстанции, так как получены в основном из работы с машиной по SSH и чтением исходных кодов ядра.
syscall 12
Принимает только 1 аргумент -- 64-битный указатель на bootblock. sys_num, похоже, всегда равен 0.
{
addd 0, 0, %b[0]
addd 0, bootblock, %b[1]
sdisp %ctpr1, 12
}
call %ctpr1, wbs = 5
Elbrus PCI
IOHub из себя представляет PCI шину, к которой подключены мосты, уже к которым подключаются сами устройства. Получается такая древовидная структура. Встроенные в мост или SoC висят на первой шине и являются Conventional PCI устройствами, к второй подключается PCI-Express.
PCI config
Доступ к конфигурации осуществляется через адресное пространство, базовый адрес которого получаем из чтения регистра SIC_rt_pcicfgb(0x90). Адресное пространство имеет ширину в 28 бит, поэтому в него кодируются следующие данные:
- 0:11 заняты адресом регистра PCI устройства.
- 12:19 занят devfn.
- 20:27 занят номером шины.