|
адресация pci |
|
|
|
Aug 30 2011, 05:17
|
Гуру
     
Группа: Свой
Сообщений: 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# должны соответствовать двум младшим разрядам адреса порта ?
|
|
|
|
|
 |
Ответов
|
Oct 11 2011, 15:29
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Спасибо. переделал вроде правильно работает, Может еще что посоветуете? Код TBarReg GetPciBar(uint8_t bus, uint8_t dev, uint8_t func,uint8_t barnum) { TBarReg barstr; uint32_t BarReg1 = 0, BarReg2 = 0;
BarReg1 = PciReadConfigDWord(bus, dev, func, barnum); PciWriteConfigDWord(bus, dev, func, barnum,0xffffffff); BarReg2 = PciReadConfigDWord(bus, dev, func, barnum); PciWriteConfigDWord(bus, dev, func, barnum,BarReg1);
if(BarReg1!=0){
if(BarReg1&0x00000001){ BarReg2&=0x0000ffff; barstr.Value = BarReg1; barstr.RangeStart = BarReg2&~0x07; barstr.Size = 0x0000ffff-(BarReg2&~0x07); barstr.RangeEnd = barstr.RangeStart+barstr.Size; memcpy(barstr.TypeB,"P I/O",6);
}else{ barstr.Value = BarReg1; barstr.RangeStart = BarReg2&~0x0f; barstr.Size = 0xffffffff-(BarReg2&~0x07); barstr.RangeEnd = barstr.RangeStart+barstr.Size; memcpy(barstr.TypeB,"MEMORY",6);
}//end else }else{ barstr.Value = 0; barstr.RangeStart = 0; barstr.RangeEnd = 0; barstr.Size = 0; memcpy(barstr.TypeB,"No BAR",6); }//end else bartemp != 0
return barstr; }//end GetPciBar
|
|
|
|
Сообщений в этой теме
sergey sva адресация pci Aug 30 2011, 05:17 XVR Цитата(sergey sva @ Aug 30 2011, 09:17) Н... Aug 30 2011, 08:12 sergey sva ЦитатаБиты на C/BE могут выбрать от 1 до 4 байтов ... Aug 30 2011, 14:27 XVR Цитата(sergey sva @ Aug 30 2011, 18:27) В... Aug 30 2011, 18:46 vitan Цитата(sergey sva @ Aug 30 2011, 18:27) В... Aug 30 2011, 18:54  XVR Цитата(vitan @ Aug 30 2011, 22:54) CBE ин... Aug 31 2011, 06:41   vitan Цитата(XVR @ Aug 31 2011, 10:41) Не отклю... Aug 31 2011, 09:55 sergey sva Еще вопрос , На моем ПК 5разъемов PCI, как устройс... Sep 4 2011, 11:52 vitan Цитата(sergey sva @ Sep 4 2011, 15:52) Ещ... Sep 4 2011, 15:51 XVR Цитата(sergey sva @ Sep 4 2011, 15:52) Ещ... Sep 4 2011, 19:11 sergey sva ЦитатаНе, ну нельзя же так мучить общественность
Н... Sep 4 2011, 16:11 sergey sva Ясно немного. При транзакции записи в конфигурац... Sep 4 2011, 19:32 XVR Цитата(sergey sva @ Sep 4 2011, 23:32) Но... Sep 5 2011, 08:35 sergey sva понятно спасибо буду дальше разбираться. Sep 5 2011, 08:51 sergey sva В процессе конфигурации на шинах ad0-1 мастером ус... Sep 6 2011, 08:52 XVR Цитата(sergey sva @ Sep 6 2011, 12:52) Од... Sep 6 2011, 09:02  vitan Цитата(XVR @ Sep 6 2011, 13:02) если мне ... Sep 6 2011, 11:46 sergey sva Вычитал из книги Петрова вывод m66en должен соедин... Sep 7 2011, 04:46 vitan Цитата(sergey sva @ Sep 7 2011, 08:46) Вы... Sep 7 2011, 06:52 sergey sva )) книга с интернета в текстовом формате кто то на... Sep 7 2011, 07:43 XVR ЦитатаНемного не понял как адресуется бар например... Sep 7 2011, 10:46 sergey sva ЦитатаПисать будет ОС (с PC)
Система будет перебир... Sep 7 2011, 11:29 XVR ЦитатаСистема будет перебирать все адреса, наприме... Sep 7 2011, 12:07 sergey sva Понятно, не то что в книгах пишут))
ЦитатаПусть э... Sep 8 2011, 05:02 XVR Цитата(sergey sva @ Sep 8 2011, 09:02) Лю... Sep 8 2011, 08:23 sergey sva ЦитатаRO намертво привязаны к константам и запись ... Sep 8 2011, 08:42 XVR Цитата0xFFFFFF81 это нужно сдвинуть на 128 байт?Не... Sep 8 2011, 18:16 sergey sva Набросал функцию которая должна из прочитанного ба... Oct 10 2011, 16:05 XVR Вы забыли записать в BAR FFFFFFF. Oct 10 2011, 16:58 sergey sva ок сейчас попробую, а правильно делаю?
Вот к приме... Oct 10 2011, 18:03 sergey sva Вот в спецификации написано, в чем ошибся не сообр... Oct 11 2011, 05:46 XVR Цитатав чем ошибся не соображу?Для того, что бы об... Oct 11 2011, 09:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|