OSDev

для всех
Текущее время: 27 апр 2024, 19:13

Часовой пояс: UTC + 3 часа




Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Драйверы
СообщениеДобавлено: 21 апр 2012, 04:48 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Если вы знаете, какой драйвер нужен системе или как написать драйвер, или функцию драйвера, то пишите. Хорошие варианты обсудим, хорошие функции добавим обязательно.
Приоритетные драйвера для системы (из открытых спецификаций от Интел):
дисков(Ahci) сделан
флешек(Ehci) доделываю
звука (HDA) начат
APIC начат
Сеть
RTL8111B_8168B сделан
Видео

Для доработки системы будет очень полезная информация о вашем удачном опыте общения с железяками, пишите всё, что вспомните.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйверы
СообщениеДобавлено: 21 апр 2012, 09:45 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Что дрова для IDE-режима уже не нужны?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйверы
СообщениеДобавлено: 21 апр 2012, 10:26 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Драйвер IDE в системе работал до написания драйвера Ahci. Он был убран из системы на совсем, хотя они друг другу не мешают, т.к. определяются по класскоду и если есть один, то другого нету. А вот например сетевуха и видюха и несколько других устройств PCI - PCI имеют один класскод, хотя различны так же по device vendor. Я заметил, что если класскод различен, то контроллер общий для всез устройств от разных производителей, а если один, то приходится расматривать каждое устройство в отдельности определяя его по производителю и номеру модели.
Все стройства работающие на одном контроллере и имеющие один класскод могут работать на одном драйвере, эта система универсальна. Это диски, флешки и звук. Видео и сетевые устройства имеют свои драйвера, также мышки и веб камера и другие юсб устройства имеют дополнительные драйвера находяшиеся на одном контроллере. Нужен ещё драйвер для APIC который работает одинаково на всех ПК.
Впринципи всё так и работает на системе Linux, Windows и уже сделано, но читать открытые драйвера из Линукса я ещё не умею и так же считаю, что писать драйвер лучше по спецификациям. Я скопирывал все открытые спецификации Интел и изучаю их.
Пишу драйвера, как и всю систему на ФАСМ а не на С+. Колибри так же написана на АСМ и уже реализована работа сети, это настройка сетевухи на получение и отправку покетов (для нормальной жизни сетевухи порой достаточно только этой функции), так же настроен формат покетов TCP IP и так же приём html, но браузер пишется на С+, а я планирую написать браузер так же на АСМ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйверы
СообщениеДобавлено: 28 июл 2012, 17:26 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Доделал работу с USB контроллер EHCI теперь создаёт объекты устройств, пронумеровывает, запрашивает дискриптор устройства и конфигурации, и строковый о устройстве. Теперь вывожу пораметры устройства его свойства и название.
В драйвере AHCI тоже создаётся объект и для сдрома и для винта, объект винта создаёт объекты файловых систем, но инфу о себе ещё не выводит, т.к. не доразбирал запрос инфы с винта через ATA.
Флешки после доработки чтения сектора станут тоже создавать объекты файловых систем и автоматом добавятся в обзорах файлов.
Бинарник обнавил и кто рискнёт загрузиться с флешки увидет инфу о ЮСБ устройствах и т.д. .
Вложение:
1.jpg
1.jpg [ 50.31 КБ | Просмотров: 7884 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйверы
СообщениеДобавлено: 01 авг 2012, 14:37 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
С устройствами ЮСБ получается два этапа, первый это создание объекта устройство и его конфигурирование, что включает в себя запрос дескриптора устройства, нумерации, дескриптора конфигурации, посылка конфигурации, запрос юнитов(у картридера их несколько), а потом уже драйвер персонально для типа устройства.
Для флешки достаточно просто добавить три функции, INQUIRY, READ10, WRITE10 и в идеале обработку ошибок.
Кстати на подготовленный объект ЮСБ с сообщениями от прерываний не так и трудно писать драйвера, будь то веб камера или мышка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйверы
СообщениеДобавлено: 25 сен 2012, 06:04 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Настраивал цепочку для pci прерывания и заметил, что номера прерываний от pic меньше номеров от ioapic на 6, тем самым облегчил переход.
У меня теперь устройства настраивают прерывания нормально, например если на 11 прерывании 3 устройства, то они спокойна встают в цепочку и настраиваются все на 17ое прерывание. При нулевом объекте на 17ом прерывании добавляю в поле адрес объекта и включаю прерывание, а потом уже(поле становится не нулевым) в имеющийся объект ставлю цепочку. Цепочка двухсторонняя и устройство из цепочки может выйти(при его удалении).
При вызове прерывания вызываются обработчики всех объектов в цепочке, а обработчики проверяют свои биты событий устройства и если они 1 то обрабатывают события.
Вот удача то привалила небольшая. На моём ноутбуке такая схема будет работать хорошо, не знаю как на других.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Драйверы
СообщениеДобавлено: 31 окт 2012, 10:44 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Для ATA дисков контроллера AHCI сделал идентификацию, чтение сектора в свободной команде и запись, для ATAPI тоже по мелочи.
Сдромы по scasi работают, функции совершенно другие получаются, хотя эти команды знаю от работы с флэшкой.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


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

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


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

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