Page 2 of 3
Re: Диспетчер устройств
Posted: Wed Feb 09, 2011 9:31 am
by XVilka
По поводу старой модели доступа к PCI и новой - почему бы не сделать условную компиляцию - где надо скомпилировать по старой модели доступа, а где можно - по новой?
Re: Диспетчер устройств
Posted: Tue Feb 15, 2011 9:19 pm
by Serge
Не прошло и полгода, сделал определение устройств. Для моей системы за небольшим исключением результаты не отличаются от тех, что показывает Windows.
Spoiler:
Code: Select all
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.
Перечисление устройств для желающих узнать из чего сделан их компьютер.
Spoiler:
Скопировать файлы в /rd/1/drivers и запустить acpi. Туда же будет записан acpi.log
Re: Диспетчер устройств
Posted: Sun Feb 20, 2011 9:07 pm
by Maxis
Serge
Протестировал на свежей ночной сборке. Вылетает с ядрёной ошибкой. Логи прилагаются.
Re: Диспетчер устройств
Posted: Thu Feb 24, 2011 2:36 pm
by Asper
Отличная работа.
А текущий синтаксис именования носителей информации не годится?
Re: Диспетчер устройств
Posted: Fri Feb 25, 2011 11:41 am
by Asper
Протестировал на Thinkpad R51. Работает замечательно.
Re: Диспетчер устройств
Posted: Fri Feb 25, 2011 2:38 pm
by Serge
Asper
Это ACPI имена, они весьма условны и различаются в разных БИОС.
Code: Select all
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: Диспетчер устройств
Posted: Sun Feb 27, 2011 1:24 pm
by Asper
Re: Диспетчер устройств
Posted: Sun Feb 27, 2011 5:14 pm
by popovpa
Здравствуйте!
А у меня вот такое написал в лог:
AcpiOsGetRootPointer returning 0xf7830
Re: Диспетчер устройств
Posted: Sun Feb 27, 2011 5:20 pm
by Serge
Asper
Да, HID и CID коды устройств. Все имена взяты из данных ACPI, сам я пока ничего не назначаю.
popovpa
После чего вылетел ?
Re: Диспетчер устройств
Posted: Sun Feb 27, 2011 5:27 pm
by popovpa
У меня не вылетал...эт же колибри..она бегает
Re: Диспетчер устройств
Posted: Mon Feb 28, 2011 6:32 pm
by Asper
Serge
Ты как-то говорил, что драйверу должно быть всё равно как называть устройство, если использовать логические номера и структуру конфигурации устройства. Если это актуально и для текущего кода, то имеет смысл давать устройствам краткие названия, а дополнительную информацию об устройстве получать по запросу от драйвера. Тогда для носителей информации: для жёстких дисков можно оставить hd, для CD/DVD cd, для Floppy fd, для USB дисков ud. Конечно можно давать буквенные обозначения как Win/DOS, но надо ли?
Для остальных устройств даже не знаю имеет ли смысл давать какие-то имена.
Re: Диспетчер устройств
Posted: Mon Feb 28, 2011 7:46 pm
by Serge
Asper
1. Стандартные имена нужны. Иначе как искать устройства ? Есть же не только PCI, но и порты, вентиляторы, батареи, термодатчики и т.п. ACPI определяет все эти устройства и с ними можно работать. Но чтобы получть доступ к устройству драйверу надо его сначала найти в списке.
2. hd, cd это имена логических устройств. Диспетчер с ними ещё не работает. Сейчас в списке только устройства pci и остальные устройства, требующие ресурсы - прерывания, порты и т.д.
Re: Диспетчер устройств
Posted: Wed Sep 21, 2011 1:29 pm
by Serge
Исправил ошибку в ядре и обновил
нумератор устройств. Новая версия записывает файл drivers/devices.dat с данными для работы в режиме APIC.
Re: Диспетчер устройств
Posted: Wed Sep 21, 2011 6:49 pm
by Asper
Отлично!
Т.е. теперь система может получить доступ ко всем устройствам компьютера, я правильно понимаю?
Re: Диспетчер устройств
Posted: Wed Sep 21, 2011 9:14 pm
by Serge
Да, осталось разобраться с именованием устройств, потому что единого стандарта на имена не наблюдается.