Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт ноя 20, 2018 11:03 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 262 сообщения ]  На страницу Пред. 1 2 3 4 518 След.
Автор Сообщение
СообщениеДобавлено: Чт июн 27, 2013 7:44 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Ну не может быть такого - один и тот же контроллер не имеет права "отмечаться" как два разных устройства,
иначе ему пожизненно гарантирован полный набор заморочек с энумератором и PM .


Вернуться к началу
СообщениеДобавлено: Чт июн 27, 2013 8:09 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Что то вы запутались - имхо на той матери два контроллера просто:
1) PATA IDE - обычно сейчас оставляют только один разъем, но были более старые модели MB, когда на плате присутствовали 2 разъема PATA и 2-4 SATA.
2) SATA с эмуляцией IDE, но без AHCI - судя по тому, что нет такой настройки в BIOS, и нет в обоих режимах устройства AHCI в PCIDEV.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
СообщениеДобавлено: Пт июн 28, 2013 12:29 am 
Не в сети

Зарегистрирован: Вс фев 18, 2007 8:34 pm
Сообщения: 158
art_zh писал(а):
Ну не может быть такого - один и тот же контроллер не имеет права "отмечаться" как два разных устройства,
иначе ему пожизненно гарантирован полный набор заморочек с энумератором и PM .
Может. У меня на компе SATA-контроллер отображается как AHCI или как два PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).

Mario_r4 писал(а):
Что то вы запутались - имхо на той матери два контроллера просто:
1) PATA IDE - обычно сейчас оставляют только один разъем, но были более старые модели MB, когда на плате присутствовали 2 разъема PATA и 2-4 SATA.
2) SATA с эмуляцией IDE, но без AHCI - судя по тому, что нет такой настройки в BIOS, и нет в обоих режимах устройства AHCI в PCIDEV.
Я не запутался, а неправильно понял фразу "что собственно AHCI контроллера ни в каком режиме не видно, и похоже что это два IDE контроллера". Подумал, что речь идет о появлении двух PCI IDE-контроллеров вместо AHCI. То что там наверняка два контроллера, SATA- и обычный PCI IDE-, это понятно. Просто я подумал, что PCI IDE- может быть отключен, а SATA- отображается, как два PCI IDE-. Но, присмотревшись, могу с тобой согласиться. Многофункциональное устройство на шине - это SATA-контроллер, однофункциональное - обычный PCI IDE-контроллер.

Кстати для справки. На моем компе, том же самом, про который я уже несколько раз говорил, обычный PCI IDE-контроллер может быть явно включен/отключен в BIOS Setup. Если его включить, то будут видны либо AHCI и один PCI IDE-контроллер, либо сразу 3 (!!!) PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).


Вернуться к началу
СообщениеДобавлено: Пт июн 28, 2013 12:33 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Phantom-84 писал(а):
либо сразу 3 (!!!) PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).

Охренеть! Дайте два три!

Придется таблицу делать с учетом всех возможных устройств.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
СообщениеДобавлено: Пт июн 28, 2013 3:38 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Phantom-84 писал(а):
art_zh писал(а):
Ну не может быть такого - один и тот же контроллер не имеет права "отмечаться" как два разных устройства,
иначе ему пожизненно гарантирован полный набор заморочек с энумератором и PM .
Может. У меня на компе SATA-контроллер отображается как AHCI или как два PCI IDE-контроллера в зависимости от выбранного режима (AHCI/IDE).

Два IDE-контроллера - они два (разных) контроллера и есть. Каждый ведет свои диски, у каждого свои собственные порты, DMA и т.п.
PCI-энумератор ессно должен эти контроллеры различать, потому и разные устройства.

КО говорил о невозможности идентификации контроллера AHCI/SATA одновременно как AHCI и как SATA. Иначе один физический ресурс (конкретный жесткий диск) получит два разных канала управления и передачи данных.


Вернуться к началу
СообщениеДобавлено: Сб июн 29, 2013 1:17 am 
Не в сети

Зарегистрирован: Вс фев 18, 2007 8:34 pm
Сообщения: 158
Ну, понятно. Я редко использую сочетание "AHCI-контроллер". А SATA-контроллер, работающий в IDE-режиме, также как и PATA- (т.е. обычный PCI IDE-) называю PCI IDE-контроллером, если речь идет о его отображении на шине.


Вернуться к началу
СообщениеДобавлено: Вт июл 02, 2013 4:04 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
yogev_ezra писал(а):
А если поменять одну строчку (IDE Operate Mode) с Legacy Mode на Native Mode, то через несколько секунд после загрузки зависает (лог снять не хватает времени). Но как раз именно с Native Mode работает Windows.

Вот что я нарыл в ATA Host Adapter Standards Proposal:
Спойлер: Показать
3.2 Adapter Modes

3.2.1 Legacy Mode
An Adapter is in Legacy Mode when the control of the transfer is through the ATA Command and Control Block Registers. Any data transfers are via PIO mode through the Data register. The addresses of the Command or Control block are configurable in this mode.

3.2.2 Compatibility Mode
This mode is only applicable to implementations on PC systems implementing the PC architecture. An Adapter is in Compatibility when the control of the transfer is through the ATA Command and Control Block Registers and registers in the Adapter. The addresses of the Command or Control block are defined as well as the interrupt lines (IRQs). Table 1defines the four standard I/O address banks.

3.2.3 PCI Native Mode
This mode is only applicable to Adapters bridging to the PCI bus. In this mode the control of the transfer is through the ATA Command and Control Block Registers and registers in the Adapter. The addresses of the Command or Control block are defined in the BAR of the Adapter and are defined by the Host software. There is only one Host interrupt line for all the channels attached to an Adapter.

По моему личному субъективному оценочному суждению "Native Mode" работает исключительно в режиме DMA и попытки обратиться к нему в PIO режиме, как раз и создают аварийную ситуацию. Ранее до моих изменений код обращался по стандартным и неправильным (для этого режима) адресам портов, потому накладок не происходило. Поскольку код пока не умеет работать с прерываниями отличающимися от 14 и 15, то придется потерпеть.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
СообщениеДобавлено: Вт июл 02, 2013 9:13 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
Mario_r4
Все режимы поддерживают PIO, потому что идентификация устройства проводится в PIO.
Проблема скорее в прерываниях. БИОС выделяет линию, но не прописывает вектор в PCICFG.


Вернуться к началу
СообщениеДобавлено: Вт июл 02, 2013 9:23 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Serge писал(а):
Проблема скорее в прерываниях. БИОС выделяет линию, но не прописывает вектор в PCICFG.

Я может чего то не понимаю, но как это мешает работе в PIO режиме? Проблема то как раз с PIO наблюдается.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
СообщениеДобавлено: Вт июл 02, 2013 9:36 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
прерывания и в PIO работают. А необработанное прерывание вешает систему или контроллер.


Вернуться к началу
СообщениеДобавлено: Вт июл 02, 2013 10:28 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Serge писал(а):
прерывания и в PIO работают. А необработанное прерывание вешает систему или контроллер.

Т.е. в нормальной ситуации при вызове PIO стоит затычка, а в искомой ситуации прописан вектор в далекие ебеня?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
СообщениеДобавлено: Вт июл 02, 2013 10:39 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
Дефолтные обработчики стоят на irq 14 и 15. А в native может быть любой вектор. Если драйвер не ставит обработчик, конец будет немного предсказуем. У меня, кстати, так и не заработало. В одном режиме irg 11 в другом irq --.
Там есть регистр разрешения/запрещения прерываний. Если не получается поставить обработчик, надо работать в режиме опроса. Запретить прерывание и проверять биты состояния в цикле с паузами. Это и в ДМА и в ПИО должно работать. Медленно, но верно.


Вернуться к началу
СообщениеДобавлено: Вт июл 02, 2013 10:57 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Serge писал(а):
У меня, кстати, так и не заработало. В одном режиме irg 11 в другом irq --.

Где же багрепорт, логи?
Какой мне прок от "-Трамвай сломался! -Как сломался? - Совсем, совсем сломался!"

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
СообщениеДобавлено: Вт июл 02, 2013 11:16 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
Виноват, в последней ревизии native работает.


Вложения:
NATIVE.TXT [5.99 КБ]
51 скачивание
pcidev-legacy.txt [2.31 КБ]
54 скачивания
LEGACY.TXT [5.83 КБ]
49 скачиваний
Вернуться к началу
СообщениеДобавлено: Вт июл 02, 2013 11:17 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
+


Вложения:
pcidev-native.txt [2.29 КБ]
50 скачиваний
Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 262 сообщения ]  На страницу Пред. 1 2 3 4 518 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB