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

 
 
> Чтение портов I\O PCI, Странно.....(((
Mavric84
сообщение Jul 10 2007, 09:19
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 15-10-05
Пользователь №: 9 699



Кто сталивался с такой траблой........

Имеется PCI target(собственный, построен на Спартане2)...
Смысл заключается в следующием........Внутри кристала организовываю 3 регистра(для тестирования) которые тактируются по CLK. В первый регистр данные пишутся при записи по 2 адресу, и читаются(путем открывания буферов) тоже по 2 адресу... все ок, что записал то и прочитал,.......... но если в такой же регистр записать по предположим 3 адресу, а прочитать по 4 ( адрес не имеет значение главное что бы адрес записи и чтения были разные) то читается по 4 не то что было записанно по 3, а 00. Но если между командами записи в 3 и чтением 4 вставить команду записи в 4 FF то все проходит нормально(прочитаю в 4-ом то что записал в 3-й)..... или пример чтения константы предположим по 6 адресу........ константа прочитается в том случае если перед чтением регистра будет стоять команда записи в этот регистр значения FF........

Читал и спеку и книгу ничего подобного не нашел.....(прошу не путать с чтением BARов, там читается, как раз так)... но почему это происходит Вводом-выводом? непонятно...((( help.gif

Если потребуется могу выложить принт скрины регистров.....

Сообщение отредактировал Mavric84 - Jul 10 2007, 09:21
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
BSV
сообщение Jul 13 2007, 21:17
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Управляющая программа работает под DOS или под чем-то еще?


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
Mavric84
сообщение Jul 15 2007, 15:51
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 15-10-05
Пользователь №: 9 699



Цитата(BSV @ Jul 14 2007, 01:17) *
Управляющая программа работает под DOS или под чем-то еще?


Под МСВСом wacko.gif ...
И при загрузки углядел интересненькую строчку....: I/O 4096 (0xFFFFFFFF)

Сообщение отредактировал Mavric84 - Jul 15 2007, 16:07
Go to the top of the page
 
+Quote Post
makc
сообщение Jul 15 2007, 16:39
Сообщение #4


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Mavric84 @ Jul 15 2007, 19:51) *
Под МСВСом wacko.gif ...

Сочувствую. Однако у меня под этой же самой системой при работе с PCI в части пространства ввода/вывода из-под пользовательского приложения (iopl + inw и т.п.) и из-под драйвера (модуля ядра) никаких проблем не наблюдалось. Работал со множеством разных устройств.

Цитата
И при загрузки углядел интересненькую строчку....: I/O 4096 (0xFFFFFFFF)


Лето, телепаты в отпусках. crying.gif Остались простые люди. 1111493779.gif Вы бы посвятили нас - где именно Вы такое увидели? И что говорит 'cat /proc/pci'? cranky.gif


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Mavric84
сообщение Jul 15 2007, 17:01
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 15-10-05
Пользователь №: 9 699



Цитата(makc @ Jul 15 2007, 20:39) *
Сочувствую. Однако у меня под этой же самой системой при работе с PCI в части пространства ввода/вывода из-под пользовательского приложения (iopl + inw и т.п.) и из-под драйвера (модуля ядра) никаких проблем не наблюдалось. Работал со множеством разных устройств.
Лето, телепаты в отпусках. crying.gif Остались простые люди. 1111493779.gif Вы бы посвятили нас - где именно Вы такое увидели? И что говорит 'cat /proc/pci'? cranky.gif


Нда... туго без телепатов...
Строка появляется после того как происходит выбор операционки и начинается загрузка ядра и в этих именно строчках и появляется...
По 'cat /proc/pci' скажу в понедельник... Хочу попробовать на другой машине и с нормальной линухой...попоробую на федоре..
Go to the top of the page
 
+Quote Post
makc
сообщение Jul 15 2007, 18:26
Сообщение #6


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Mavric84 @ Jul 15 2007, 21:01) *
Нда... туго без телепатов...
Строка появляется после того как происходит выбор операционки и начинается загрузка ядра и в этих именно строчках и появляется...


Согласитесь, строка немного оторвана от контекста... smile.gif
Поэтому она может относиться к чему угодно - сказать что-либо определенное в этом случае сложно.

Цитата
По 'cat /proc/pci' скажу в понедельник... Хочу попробовать на другой машине и с нормальной линухой...попоробую на федоре..


А еще лучше и результаты dmesg приведите. После этого, если Вы дадите пример Вашей программы, можно будет уже сказать что-нибудь более определенное.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Mavric84
сообщение Jul 16 2007, 05:54
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 15-10-05
Пользователь №: 9 699



Цитата(makc @ Jul 15 2007, 22:26) *
Согласитесь, строка немного оторвана от контекста... smile.gif
Поэтому она может относиться к чему угодно - сказать что-либо определенное в этом случае сложно.
А еще лучше и результаты dmesg приведите. После этого, если Вы дадите пример Вашей программы, можно будет уже сказать что-нибудь более определенное.


/dmseg
...
blk: queue c0358740, I/O limit 4095Mb (mask 0xFFFFFFFF)
...

/proc/pci

Bus 0, dev 1, func. 0:
Miltimedia controller: Moxa tehnologies Co Ltd Smartio c16 H/PCI
irq 9
Master, Latensy=80
I/O at 0xd87f
Non prefetchable 32 bit memory at (0xe70010ff)
I/O at 0xDC1f

МСВС 3.0

программа выполнена в виде модуля в котором и организованно обращение к регистрам...
outb...
inb..
printk
3 оператора, ничего другого нет....
Go to the top of the page
 
+Quote Post
makc
сообщение Jul 16 2007, 06:02
Сообщение #8


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Mavric84 @ Jul 16 2007, 09:54) *
/dmseg
...
blk: queue c0358740, I/O limit 4095Mb (mask 0xFFFFFFFF)
...


О чем я и говорил: эти строки к Вашему устройству ни коим образом не относятся (это соощения подсистемы блочного ввода/вывода).

Цитата
/proc/pci

Bus 0, dev 1, func. 0:
Miltimedia controller: Moxa tehnologies Co Ltd Smartio c16 H/PCI
irq 9
Master, Latensy=80
I/O at 0xd87f
Non prefetchable 32 bit memory at (0xe70010ff)
I/O at 0xDC1f

МСВС 3.0


Вы цитируете вывод этой программы или по памяти его перепечатываете?
На подозрения наводит "Latensy" и базовые адреса пространства ввода/вывода, у которых младший байт не равен 00.

Цитата
программа выполнена в виде модуля в котором и организованно обращение к регистрам...
outb...
inb..
printk
3 оператора, ничего другого нет....


Вот бы еще увидеть, что именно Вы в ней делаете (код) и каким образом получаете адреса и обращаетесь по ним...

PS: Если честно, то наше общение выглядит так, как будто бы я Вас пытаю, а не хочу помочь. Короче говоря - если хотите помощи, давайте исчерпывающую информацию, исходные данные.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Mavric84
сообщение Jul 16 2007, 06:37
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 15-10-05
Пользователь №: 9 699



Цитата(makc @ Jul 16 2007, 10:02) *
О чем я и говорил: эти строки к Вашему устройству ни коим образом не относятся (это соощения подсистемы блочного ввода/вывода).
Вы цитируете вывод этой программы или по памяти его перепечатываете?
На подозрения наводит "Latensy" и базовые адреса пространства ввода/вывода, у которых младший байт не равен 00.
Вот бы еще увидеть, что именно Вы в ней делаете (код) и каким образом получаете адреса и обращаетесь по ним...

PS: Если честно, то наше общение выглядит так, как будто бы я Вас пытаю, а не хочу помочь. Короче говоря - если хотите помощи, давайте исчерпывающую информацию, исходные данные.


Базовые адр. конечно с 00(d800 и dc00 соотв.(просто переписывал))
Программа отлажена на PLX9050
Программа не моя... пишет программист-начальник... она отлажена, как уже писал на plx9050

printk("\n ------------PCI present-----------\n");
// ПРТЕДЕМСЕН ОБМЙЮЙЕ БДБРТЕТБ бул32
ret_val=pcibios_find_device(0x1393,0x1680,0,&busnum,&devnum);
if(ret_val == PCIBIOS_SUCCESSFUL)
printk("\nret=%d busnum=%d devnum=%d",ret_val,busnum,devnum);
else {
printk("\n ADAPTER NOT FOUND ...ended... \n");
return 1;
}
//ЮЙФБЕН ЛПЖЙЗХТБГЙА БДБРФЕТБ бул
//Vendor_id Device_id
pcibios_read_config_dword(busnum,devnum,0,&val1);
printk("\n Device_id & Vendor_id =%x",val1);

//---------------------------------------------------------------------------------------------
//ВБЪПЧЩК БДТЕУ 0
pcibios_read_config_dword(busnum,devnum,PCI_BASE_ADDRESS_0,&val1);
printk("\n Bas.Adr.0 =%x",val1);
if((val1 & 0x1) == 0x1) {
//ЬФП РПТФЩ МПЛБМШОЩЕ
reg00=val1-1;
}

//ВБЪПЧЩК БДТЕУ 1


/*обращение к портам*/

//outb(0xff,reg0+4);
//outb(0xff,reg0+2);

temp1=inb(reg0+4); /* константа которая должна чиаться по 4 адресу(читаю ... */
printk("\nREG4==%X\n",temp1); /* путем открывания буферов) прочитается она если только */
/* по 4 адр. прописать предварительно FF

outb(0x55,reg0+4); /* в порт и.о. по 4 адресу пишем 55 и через передатчик по кольцу заводим на*/ temp1=inb(reg0+2); /* приемники и читаем по 2 адресу... все прочитается, если перед записью в */
printk("\nREG2==%X\n",temp1); /* 4 поставить запись во 2 регистр этих самых FF

//outb(0xff,reg0+4); /* */
temp1=inb(reg0+4); /* так же прочитается константа если раскоментровать строку выше*/
printk("\nREG4==%X\n",temp1);


return 1;

Сообщение отредактировал Mavric84 - Jul 16 2007, 06:53
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Mavric84   Чтение портов I\O PCI   Jul 10 2007, 09:19
- - BSV   Какой размерности регистры? Байтовые?   Jul 10 2007, 10:52
|- - Mavric84   Цитата(BSV @ Jul 10 2007, 14:52) Какой ра...   Jul 10 2007, 11:10
- - BSV   Почитайте внимательно раздел 3.2.2. Addressing спе...   Jul 10 2007, 12:15
|- - Mavric84   Цитата(BSV @ Jul 10 2007, 16:15) Почитайт...   Jul 10 2007, 13:36
|- - Mavric84   Цитата(Mavric84 @ Jul 10 2007, 17:36) Чит...   Jul 13 2007, 07:50
- - makc   На первый взгляд все в порядке. Но на мысли наводи...   Jul 16 2007, 07:50
- - Mavric84   Цитата(makc @ Jul 16 2007, 11:50) На перв...   Jul 16 2007, 08:37
- - makc   Цитата(Mavric84 @ Jul 16 2007, 12:37) Нем...   Jul 16 2007, 08:47
- - Mavric84   Цитата(makc @ Jul 16 2007, 12:47) Пардон,...   Jul 16 2007, 09:30
- - makc   Цитата(Mavric84 @ Jul 16 2007, 13:30) Бы...   Jul 16 2007, 11:01
- - Mavric84   Цитата(makc @ Jul 16 2007, 15:01) Если ре...   Jul 16 2007, 12:34


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

 


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


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