Участник:A1batross: различия между версиями

Материал из ALT Linux Wiki
(Добавил про PCI)
Строка 19: Строка 19:


</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 занят номером шины.

Версия от 20:27, 22 августа 2021

Тут буду складировать заметки по Эльбрусу, которые когда-нибудь, может быть, не уверен, но перерастут во что-то большее.

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 занят номером шины.