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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> адресация pci
sergey sva
сообщение Aug 30 2011, 05:17
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
Шина PCI использует 32-разрядную адресацию портов ввода-вывода. В фазе адреса задатчик указывает точный адрес младшего из байтов, к которому осуществляется обращение. Для передачи значащих байтов будут использоваться те линии AD, которые соответствуют положению этих байтов в двойном слове. Например, если выполняется чтение байта из порта 00001012h, то в фазе адреса будет задан именно этот адрес, а сам байт будет находиться на линиях AD[23:16], чему соответствует комбинация 1011 на линиях C/BE[3:0]#.

Линии разрешения байтов C/BE# должны соответствовать двум младшим разрядам адреса порта.

Немного не понятно подскажите,
Например мастеру нужно прочитать ввод вывод, мастер устанавливает frame, на C/BE команда 0010 на AD адрес и фронт такта, в следующих тактах C/BE указывает где расположен байт на линиях AD. Но если C/Be 0000 то байт будет на ad0-ad7 . тут написано
Цитата
Линии разрешения байтов C/BE# должны соответствовать двум младшим разрядам адреса порта
?
Go to the top of the page
 
+Quote Post
XVR
сообщение Aug 30 2011, 08:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sergey sva @ Aug 30 2011, 09:17) *
Но если C/Be 0000 то байт будет на ad0-ad7 .
Он будет на ad0-ad31, и не байт, а двойное слово (32 бита)
2 младших бита адреса просто игнорируются, а требуемый размер и положение внутри двойного слова задается именно битами на C/BE. Логически весь обмен на PCI производится двойными словами, выровненными на границу двойного слова. Биты на C/BE могут выбрать от 1 до 4 байтов внутри этого двойного слова, с которыми в реальности и производится обмен

Go to the top of the page
 
+Quote Post
sergey sva
сообщение Aug 30 2011, 14:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
Биты на C/BE могут выбрать от 1 до 4 байтов
Выбираем например C/BE 0001 младший байт младшего слова target должен вывести на шины ad0-ad7 ? на остальных что будет?
Go to the top of the page
 
+Quote Post
XVR
сообщение Aug 30 2011, 18:46
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sergey sva @ Aug 30 2011, 18:27) *
Выбираем например C/BE 0001 младший байт младшего слова target должен вывести на шины ad0-ad7 ? на остальных что будет?

Что угодно.

Go to the top of the page
 
+Quote Post
vitan
сообщение Aug 30 2011, 18:54
Сообщение #5


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(sergey sva @ Aug 30 2011, 18:27) *
Выбираем например C/BE 0001 младший байт младшего слова target должен вывести на шины ad0-ad7 ? на остальных что будет?

CBE инверсные, младший байт надо по 1110 выдавать. Остальные отключены от шины, скорее всего будет 1, но не факт. Если 64-разрядная шина, то точно будет 1, ибо там должны быть предусмотрены подтяжки на AD63:32.
Go to the top of the page
 
+Quote Post
XVR
сообщение Aug 31 2011, 06:41
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(vitan @ Aug 30 2011, 22:54) *
CBE инверсные, младший байт надо по 1110 выдавать.
Это да.
Цитата
Остальные отключены от шины, скорее всего будет 1, но не факт.
Не отключены. Активное устройство обязанно драйвить все исходящие шины. Данные с этих разрядов AD использоваться не будут, но какие то данные там присуствовать должны.
Go to the top of the page
 
+Quote Post
vitan
сообщение Aug 31 2011, 09:55
Сообщение #7


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(XVR @ Aug 31 2011, 10:41) *
Не отключены.

Да, пардон, запамятовал (п.3.2.4, второй абзац).
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 4 2011, 11:52
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Еще вопрос , На моем ПК 5разъемов PCI, как устройство узнает в каком оно слоте если на ad0-1 всегда 0 оно же должно ответить сигналом adsel если адрес совпал?

Сообщение отредактировал sergey sva - Sep 4 2011, 11:53
Go to the top of the page
 
+Quote Post
vitan
сообщение Sep 4 2011, 15:51
Сообщение #9


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(sergey sva @ Sep 4 2011, 15:52) *
Еще вопрос , На моем ПК 5разъемов PCI, как устройство узнает в каком оно слоте если на ad0-1 всегда 0 оно же должно ответить сигналом adsel если адрес совпал?

Не, ну нельзя же так мучить общественность... Ну почитайте же стандарт, он в открытом доступе.
1. Сигнал называеnся IDSEL, а не adsel
2. Ответить этим сигналом устройство не может, ибо это для него вход.
3. Метод генерации IDSEL может быть любым, но обычно реализуют предложенный в стандарте.
Фактически устройство может знать только логический номер слота. Физическое его расположение оно никогда не узнает. В стандарте CompactPCI, например, для этого предусмотрены пины т.н. географического адреса (для общего развития).
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 4 2011, 16:11
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
Не, ну нельзя же так мучить общественность

Ну я не специально разбираюсь с vhdl и PCI всего неделю.
Цитата
Сигнал называеnся IDSEL, а не adsel

Отпечатка вышла. хотел написать devsel
Сейчас бы хоть один пример запустить что бы можно было дальше разбираться, три примера прикрутил все собираются без ошибок заливаются,
но комп не запускается после перезагрузки вентиляторы работают стартовый экран не появляется. Буду дальше разбираться.

Сообщение отредактировал sergey sva - Sep 4 2011, 19:16
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 4 2011, 19:11
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sergey sva @ Sep 4 2011, 15:52) *
Еще вопрос , На моем ПК 5разъемов PCI, как устройство узнает в каком оно слоте
Устройство не должно интересовать в каком оно слоте. Равно как и сколько этих слотов вообще. Ваше устройство должно реагировать на адреса, прописанные в BARx ОС при инициализации PCI. ОС в процессе инициализации перебирает все устройства, какие найдет. Перебирает оно их по конфигурационному пространству, доступ к которому как раз и производится по географическому признаку (т.е. по номеру разъема, в вашем случае). Занимается этой адресацией PCI хаб, и если вы не пытаетесь разработать именно хаб, то способ как он это делает вас интересовать не должен

Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 4 2011, 19:32
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Ясно немного. При транзакции записи в конфигурационное пространство на шинах ad будет
номеров шины (разряды 23–16), устройства (15–11), функции (10–8) и регистра (7–2)
Номер шины это имеется ввиду через мосты ,если устройство включено через мост то 1 если через два то 2? номер устройства,что то я уже перепутался здесь написано про конфигурацию со стороны драйвера ?ссылка

Сообщение отредактировал sergey sva - Sep 4 2011, 19:33
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 5 2011, 08:35
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sergey sva @ Sep 4 2011, 23:32) *
Номер шины это имеется ввиду через мосты ,
Ну если грубо, то да.
Цитата
если устройство включено через мост то 1 если через два то 2?
Нет. Каждый мост в системе представляется шиной. Когда система сканирует конфигурацию PCI, она находит все мосты и присваивает им последовательные номера. Эти номера и будут номером шины.
Цитата
здесь написано про конфигурацию со стороны драйвера ?
Про доступ к Config Space там написано со стороны ядра ОС. Драйвер обычно на такой уровень не спускается. ОС (точнее даже BIOS) самостоятельно находит все устройства на PCI шине, самостоятельно их настраивает и отдает драйверу каждого конкретного устройства уже в готовом к работе виде. Драйвер в регистры из Configuration Space уже обычно не обращается.

Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 5 2011, 08:51
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



понятно спасибо буду дальше разбираться.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Sep 6 2011, 08:52
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



В процессе конфигурации на шинах ad0-1 мастером устанавливается формат конфигурации (0-1), а что будет на остальных ad3-31?
Один формат краткий номер функции и номер регистра, в другом номер шины ... для чего два формата?
Go to the top of the page
 
+Quote Post

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

 


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


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