реклама на сайте
подробности

 
 
> Чтение Config Space PCIe Rootport Altera
Zigor
сообщение Dec 19 2016, 13:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958



Добрый день!

Пытаюсь прочесть конфиг. пространство PCIe RootPort из NiosII. Просмотрел исходники Linux, использую функции для общения через интерфейс TLP на шине CRA.
К рутпорту цепляю endpoint - система переходит в L0 и DataLinkLayer работает.

Используемая функция:
pcie-altera.c

static int tlp_cfg_dword_read(struct altera_pcie *pcie, u8 bus, u32 devfn,
int where, u8 byte_en, u32 *value)
{
u32 headers[TLP_HDR_SIZE];


if (bus == pcie->root_bus_nr)
headers[0] = TLP_CFG_DW0(TLP_FMTTYPE_CFGRD0);
else
headers[0] = TLP_CFG_DW0(TLP_FMTTYPE_CFGRD1);


headers[1] = TLP_CFG_DW1(TLP_REQ_ID(pcie->root_bus_nr, RP_DEVFN),
TLP_READ_TAG, byte_en);
headers[2] = TLP_CFG_DW2(bus, devfn, where);


tlp_write_packet(pcie, headers, 0, false);


return tlp_read_packet(pcie, value);
}


Посылаю конф.запрос type 0 на чтение шины 0, dev 0, func 0 (на что должен откликнуться Rootport).
Т.е. это самая первая операция которую я делаю до енумерации.

Заголовок TLP header:

[0] 0x04000001
[1] 0x00001D0F
[2] 0x00000000

Функция возвращает PCIBIOS_DEVICE_NOT_FOUND.

Корректен ли мой отправляемый рутпорту запрос/пакет?

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
AVR
сообщение Dec 20 2016, 11:19
Сообщение #2


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



По делу подсказать, увы, не могу, однако есть ли возможность вклиниться (добавить прозрачного посредника) на шину отправки и приема сообщений, чтобы собрать какие пакеты пересылаются и принимаются?
Стоит задача реализовать работу PCI-E без ОС Linux и без драйверов и тому подобного?


--------------------
Go to the top of the page
 
+Quote Post
Zigor
сообщение Dec 20 2016, 12:55
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-10-10
Пользователь №: 59 958



Цитата(AVR @ Dec 20 2016, 15:19) *
По делу подсказать, увы, не могу, однако есть ли возможность вклиниться (добавить прозрачного посредника) на шину отправки и приема сообщений, чтобы собрать какие пакеты пересылаются и принимаются?
Стоит задача реализовать работу PCI-E без ОС Linux и без драйверов и тому подобного?


Да, для начала надо поднять шину без ОС. Напрямую с ниоса. В принципе ничего сложного быть не должно. Т.е. читай конфиг пространство и прописывай туда индексы шин. Но при попытки прочитать что-то из ConfigSpace своего RootPort на котором сидит ниос - в ответ тишина.

Через Avalon я не могу посмотреть ConfigSpace. Может надо в HIP PCIe что-то еще включить чтоб можно было отправлять и принимать TLP?

Т.е. какая последовательность обращений к своему RP должна быть?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 22:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01381 секунд с 7
ELECTRONIX ©2004-2016