Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт сен 21, 2017 4:40 am

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




Начать новую тему  Ответить на тему  [ 32 сообщения ]  На страницу Пред. 1 2 3 След.
Автор Сообщение
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Ср фев 09, 2011 9:31 am 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
По поводу старой модели доступа к PCI и новой - почему бы не сделать условную компиляцию - где надо скомпилировать по старой модели доступа, а где можно - по новой?


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Вт фев 15, 2011 9:19 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Не прошло и полгода, сделал определение устройств. Для моей системы за небольшим исключением результаты не отличаются от тех, что показывает Windows.
Спойлер: Показать
Код:
PCI_8086_2570 bus:0 devfn: 0
  MMIO range d0000000 - dfffffff

PCI_8086_2571 bus:0 devfn: 8

PCI_8086_24d2 bus:0 devfn: e8
  IO range bc00 - bc1f
  APIC IRQ: 16

PCI_8086_24d4 bus:0 devfn: e9
  IO range b000 - b01f
  APIC IRQ: 19

PCI_8086_24d7 bus:0 devfn: ea
  IO range b400 - b41f
  APIC IRQ: 18

PCI_8086_24de bus:0 devfn: eb
  IO range b800 - b81f
  APIC IRQ: 16

PCI_8086_24dd bus:0 devfn: ef
  MMIO range f2100000 - f21003ff
  APIC IRQ: 23

PCI_8086_244e bus:0 devfn: f0

PCI_8086_24d0 bus:0 devfn: f8

PCI_8086_24d1 bus:0 devfn: fa
  IO range 1f0 - 1f7
  IO range 3f6 - 3f6
  IO range 170 - 177
  IO range 376 - 376
  IO range f000 - f00f
  APIC IRQ: 18

PCI_8086_24d3 bus:0 devfn: fb
  IO range 1400 - 141f
  APIC IRQ: 17

PCI_8086_24d5 bus:0 devfn: fd
  IO range d800 - d8ff
  IO range dc00 - dc3f
  MMIO range f2101000 - f21011ff
  MMIO range f2102000 - f21020ff
  APIC IRQ: 17

PCI_1002_9495 bus:1 devfn: 0
  MMIO range e0000000 - efffffff
  IO range 9000 - 90ff
  MMIO range f1000000 - f100ffff
  MMIO range 0 - 1ffff
  APIC IRQ: 16

PCI_1002_aa38 bus:1 devfn: 1
  MMIO range f1010000 - f1013fff
  APIC IRQ: 17

PCI_1106_3106 bus:2 devfn: 8
  IO range a000 - a0ff
  MMIO range f2000000 - f20000ff
  APIC IRQ: 21

MEM
 Memory range 0d0000-0d7fff
 Memory range 0f0000-0f7fff
 Memory range 0f8000-0fbfff
 Memory range 0fc000-0fffff
 Memory range 03fff0000-03fffffff
 Memory range 00-09ffff
 Memory range 0100000-03ffeffff
 Memory range 0fec00000-0fec00fff
 Memory range 0fee00000-0fee00fff
 Memory range 0fed20000-0fed8ffff
 Memory range 0ffb00000-0ffbfffff
 Memory range 0fff00000-0ffffffff
 Memory range 0e0000-0effff

PCI0
 Address range 00-0ff
 IO range 0cf8-0cff
 Address range 00-0cf7
 Address range 0d00-0fff
 IO range 01000-010bf
 Address range 010c0-013ff
 Address range 01400-0ffff
 Address range 0a0000-0bffff
 Address range 0c0000-0dffff
 Address range 040000000-0febfffff

SYSR
 IO range 010-01f
 IO range 022-03f
 IO range 044-05f
 IO range 062-063
 IO range 065-06f
 IO range 074-07f
 IO range 091-093
 IO range 0a2-0bf
 IO range 0e0-0ef
 IO range 04d0-04d1
 IO range 0290-029f
 IO range 0800-0805

PIC
 IO range 020-021
 IO range 0a0-0a1
 IRQ 2

DMA1
 DMA  channel 4
 IO range 00-0f
 IO range 080-090
 IO range 094-09f
 IO range 0c0-0df

TMR
 IO range 040-043
 IRQ 0

RTC
 IO range 070-073
 IRQ 8

SPKR
 IO range 061-061

COPR
 IO range 0f0-0ff
 IRQ 13

UAR1
 IO range 03f8-03ff
 IRQ 4

LPT1
 IO range 0378-037f
 IRQ 7
Пора думать об ущемлении прав программистов организации доступа к устройствам. Нужна система имён для устройств. Функции для перечисления и поиска и т.п.

Update.

Перечисление устройств для желающих узнать из чего сделан их компьютер.
Спойлер: Показать
Скопировать файлы в /rd/1/drivers и запустить acpi. Туда же будет записан acpi.log


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Вс фев 20, 2011 9:07 pm 
Не в сети

Зарегистрирован: Вс фев 04, 2007 2:07 pm
Сообщения: 176
Serge
Протестировал на свежей ночной сборке. Вылетает с ядрёной ошибкой. Логи прилагаются.


Вложения:
Комментарий к файлу: На всякий случай дамп ACPI таблицы программой ACPI Explorer.
ACPI_Dump.txt [77.43 КБ]
115 скачиваний
Комментарий к файлу: Мать ASUS A8R32-MVP Deluxe
log_error.7z [161.22 КБ]
110 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Чт фев 24, 2011 2:36 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Отличная работа. :)
А текущий синтаксис именования носителей информации не годится?


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Пт фев 25, 2011 11:41 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Протестировал на Thinkpad R51. Работает замечательно.


Вложения:
ACPI.LOG [10.73 КБ]
115 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Пт фев 25, 2011 2:38 pm 
Не в сети
Kernel Developer

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

Это ACPI имена, они весьма условны и различаются в разных БИОС.
Код:
ACPI: Adding [\_SB_.PCI0.PX40.SYSR] HID: PNP0C02
ACPI: Adding [\_SB_.PCI0.PX40.PIC_] HID: PNP0000
ACPI: Adding [\_SB_.PCI0.PX40.DMA1] HID: PNP0200
ACPI: Adding [\_SB_.PCI0.PX40.TMR_] HID: PNP0100
ACPI: Adding [\_SB_.PCI0.PX40.RTC_] HID: PNP0B00
ACPI: Adding [\_SB_.PCI0.PX40.SPKR] HID: PNP0800
ACPI: Adding [\_SB_.PCI0.PX40.COPR] HID: PNP0C04
ACPI: Adding [\_SB_.PCI0.PX40.UAR1] HID: PNP0501
ACPI: Adding [\_SB_.PCI0.PX40.LPT1] HID: PNP0400
Однозначно устройства отпределяются только по кодам PNP.


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Вс фев 27, 2011 1:24 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Serge
Это
http://msdn.microsoft.com/en-us/windows/hardware/gg463195
http://lists.freedesktop.org/archives/hal/attachments/20051021/f2513b14/hal-add-update_pnp_ids-0001.bin
http://www-pc.uni-regensburg.de/systemsw/TECHTOOL/w95devid.htm
?

Потестировал на Acer Aspire 5742Z.


Вложения:
ACPI.LOG [13.75 КБ]
111 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Вс фев 27, 2011 5:14 pm 
Не в сети
Moderator

Зарегистрирован: Чт апр 08, 2010 8:11 pm
Сообщения: 265
Здравствуйте!

А у меня вот такое написал в лог:

AcpiOsGetRootPointer returning 0xf7830


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Вс фев 27, 2011 5:20 pm 
Не в сети
Kernel Developer

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

Да, HID и CID коды устройств. Все имена взяты из данных ACPI, сам я пока ничего не назначаю.

popovpa

После чего вылетел ?


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Вс фев 27, 2011 5:27 pm 
Не в сети
Moderator

Зарегистрирован: Чт апр 08, 2010 8:11 pm
Сообщения: 265
У меня не вылетал...эт же колибри..она бегает :)


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Пн фев 28, 2011 6:32 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Serge
Ты как-то говорил, что драйверу должно быть всё равно как называть устройство, если использовать логические номера и структуру конфигурации устройства. Если это актуально и для текущего кода, то имеет смысл давать устройствам краткие названия, а дополнительную информацию об устройстве получать по запросу от драйвера. Тогда для носителей информации: для жёстких дисков можно оставить hd, для CD/DVD cd, для Floppy fd, для USB дисков ud. Конечно можно давать буквенные обозначения как Win/DOS, но надо ли?
Для остальных устройств даже не знаю имеет ли смысл давать какие-то имена.


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Пн фев 28, 2011 7:46 pm 
Не в сети
Kernel Developer

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

1. Стандартные имена нужны. Иначе как искать устройства ? Есть же не только PCI, но и порты, вентиляторы, батареи, термодатчики и т.п. ACPI определяет все эти устройства и с ними можно работать. Но чтобы получть доступ к устройству драйверу надо его сначала найти в списке.

2. hd, cd это имена логических устройств. Диспетчер с ними ещё не работает. Сейчас в списке только устройства pci и остальные устройства, требующие ресурсы - прерывания, порты и т.д.


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Ср сен 21, 2011 1:29 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Исправил ошибку в ядре и обновил нумератор устройств. Новая версия записывает файл drivers/devices.dat с данными для работы в режиме APIC.


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Ср сен 21, 2011 6:49 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Отлично! :) Т.е. теперь система может получить доступ ко всем устройствам компьютера, я правильно понимаю?


Вернуться к началу
 Заголовок сообщения: Re: Диспетчер устройств
СообщениеДобавлено: Ср сен 21, 2011 9:14 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Да, осталось разобраться с именованием устройств, потому что единого стандарта на имена не наблюдается.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 32 сообщения ]  На страницу Пред. 1 2 3 След.

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


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

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


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

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