Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Aug 21, 2019 11:19 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 32 posts ]  Go to page Previous 1 2 3 Next
Author Message
PostPosted: Wed Feb 09, 2011 9:31 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 794
По поводу старой модели доступа к PCI и новой - почему бы не сделать условную компиляцию - где надо скомпилировать по старой модели доступа, а где можно - по новой?


Top
   
PostPosted: Tue Feb 15, 2011 9:19 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Не прошло и полгода, сделал определение устройств. Для моей системы за небольшим исключением результаты не отличаются от тех, что показывает Windows.
Spoiler: Show
Code:
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: Show
Скопировать файлы в /rd/1/drivers и запустить acpi. Туда же будет записан acpi.log


Top
   
PostPosted: Sun Feb 20, 2011 9:07 pm 
Offline

Joined: Sun Feb 04, 2007 2:07 pm
Posts: 178
Serge
Протестировал на свежей ночной сборке. Вылетает с ядрёной ошибкой. Логи прилагаются.


Attachments:
File comment: На всякий случай дамп ACPI таблицы программой ACPI Explorer.
ACPI_Dump.txt [77.43 KiB]
Downloaded 191 times
File comment: Мать ASUS A8R32-MVP Deluxe
log_error.7z [161.22 KiB]
Downloaded 185 times
Top
   
PostPosted: Thu Feb 24, 2011 2:36 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Отличная работа. :)
А текущий синтаксис именования носителей информации не годится?


Top
   
PostPosted: Fri Feb 25, 2011 11:41 am 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Протестировал на Thinkpad R51. Работает замечательно.


Attachments:
ACPI.LOG [10.73 KiB]
Downloaded 191 times
Top
   
PostPosted: Fri Feb 25, 2011 2:38 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Asper

Это ACPI имена, они весьма условны и различаются в разных БИОС.
Code:
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.


Top
   
PostPosted: Sun Feb 27, 2011 1:24 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
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.


Attachments:
ACPI.LOG [13.75 KiB]
Downloaded 190 times
Top
   
PostPosted: Sun Feb 27, 2011 5:14 pm 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
Здравствуйте!

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

AcpiOsGetRootPointer returning 0xf7830


Top
   
PostPosted: Sun Feb 27, 2011 5:20 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Asper

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

popovpa

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


Top
   
PostPosted: Sun Feb 27, 2011 5:27 pm 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
У меня не вылетал...эт же колибри..она бегает :)


Top
   
PostPosted: Mon Feb 28, 2011 6:32 pm 
Offline
User avatar

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


Top
   
PostPosted: Mon Feb 28, 2011 7:46 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Asper

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

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


Top
   
PostPosted: Wed Sep 21, 2011 1:29 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Исправил ошибку в ядре и обновил нумератор устройств. Новая версия записывает файл drivers/devices.dat с данными для работы в режиме APIC.


Top
   
PostPosted: Wed Sep 21, 2011 6:49 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Отлично! :) Т.е. теперь система может получить доступ ко всем устройствам компьютера, я правильно понимаю?


Top
   
PostPosted: Wed Sep 21, 2011 9:14 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Да, осталось разобраться с именованием устройств, потому что единого стандарта на имена не наблюдается.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 32 posts ]  Go to page Previous 1 2 3 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited