Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Apr 23, 2019 9:24 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 46 posts ]  Go to page Previous 1 2 3 4 Next
Author Message
 Post subject: Re: Serial ATA
PostPosted: Thu Dec 25, 2008 2:21 pm 
Offline
Kernel Developer

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

>В native mode ядро этих дисков и не увидит.

В смысле через BIOS ? Драйвер ищет контроллеры на PCI шине и видет всё что не отключено.


Top
   
 Post subject: Re: Serial ATA
PostPosted: Thu Dec 25, 2008 5:56 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Serge
> В смысле через BIOS ? Драйвер ищет контроллеры на PCI шине и видет всё что не отключено.
Какой драйвер? Я знаю только про ядро (detect/dev_hdcd.inc:SendCommandToHDD и fs/fs_lfn.inc:fs_OnHd*), которое при определении IDE-дисков и не думает про PCI.


Top
   
 Post subject: Re: Serial ATA
PostPosted: Thu Dec 25, 2008 9:38 pm 
Offline
Kernel Developer

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

Я имею ввиду что драйвер будет искать контроллеры через PCI.
Кстати ядро тоже ищет контроллер через PCI
Это из bootcode
; \begin{Mario79}
; find HDD IDE DMA PCI device
; check for PCI BIOS


Top
   
 Post subject: Re: Serial ATA
PostPosted: Thu Dec 25, 2008 10:31 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Serge
Но общаться-то с устройством драйвер ведь будет через порты? Вот о них и речь. Базовый порт (не знаю точно, что именно подразумевается под этим в случае нескольких диапазонов ввода/вывода, но полагаю, что с этим можно разобраться) выдаёт BIOSовская функция и может выдавать драйвер - поэтому обсуждение и зашло о том, что в действительности драйвер должен выдавать.

А этот код из bootcode.inc ищет PCI-устройство, соответствующее контроллеру DMA, а вовсе не сами жёсткие диски.


Top
   
 Post subject: Re: Serial ATA
PostPosted: Thu Dec 25, 2008 11:14 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
>А этот код из bootcode.inc ищет PCI-устройство, соответствующее контроллеру DMA, а вовсе не сами жёсткие диски.

Так и я о том же. Сначала надо найти контроллер. Он может работать в legacy mode через порты 0x1F0 и т.д или в native mode, тогда там совсем другие порты и линия irq. У некоторых pata контроллеров есть extended mode для работы через память а не порты. Драйвер может перевести контроллер в native в этом случае bios скорее всего потеряет контроллер.


Top
   
 Post subject: Re: Serial ATA
PostPosted: Thu Dec 25, 2008 11:29 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Я думаю проблемы с sata потому что Колибри работает только с одним контроллером. В новых чипсетах нет pata и на плату ставят внешний контроллер для старых hd и cd. Биос настраивает контроллеры в legacy mode а дальше как повезёт. Скорее всего внешний контроллер оказывается на дефолтных адресах.


Top
   
 Post subject: Re: Serial ATA
PostPosted: Thu Dec 25, 2008 11:33 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
А разве есть какие-то проблемы с SATA?


Top
   
 Post subject: Re: Serial ATA
PostPosted: Fri Dec 26, 2008 8:09 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
А разве у всех видны диски ?


Top
   
 Post subject: Re: Serial ATA
PostPosted: Fri Dec 26, 2008 12:25 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Есть проблемы с USB-флешками (у Mario79 и camper), я с ними пытаюсь разобраться, но SATA-диски видны у всех.


Top
   
 Post subject: Re: Serial ATA
PostPosted: Fri Dec 26, 2008 2:23 pm 
Offline
Kernel Developer

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

У меня в режиме с двумя контроллерами все диски видны только через БИОС. Если работа с дисками через БИОС стала основной то всё нормально. Кстати флешка не появилась. Моя биос понимает только fat12 флешку. В Колибри она не видна.

Я неправильно выразился. Проблема не с SATA а с дополнительными контроллерами. Старый код работает только с одним контроллером. На новых и не очень платах несколькy контроллеров - 1 SATA + 1 PATA или 2 SATA + внешний PATA.


Top
   
 Post subject: Re: Serial ATA
PostPosted: Mon Jan 19, 2009 3:17 am 
Offline

Joined: Sun Mar 11, 2007 4:05 pm
Posts: 64
Serge wrote:
diamond

Если SATA или PATA в native mode там будут другие базовые адреса. А есть способ получить серийный номер устройства через биос ?

Ghost
Ну не обязательно в явном виде. Система запрашивает параметры устройства, получает тип устройства, назначает имя по своему разумению и монтирует с этим именем. Ещё можно давать каждому устройству имя на PCI шине. У меня получится IDE D31:F1:Primary:Master, CD D31:F1:Secondary:Master, SATA D31:F2:Primary:Master. У sata нет деления на master и slave, но для совместимости можно считать что там primary master и secondary master.

Серега это на твоей системе нет slave. Существуют как SATA с 2 дисками где оба мастеры. А также и SATA с 4 дисками где идет полная эмуляция master и slave и два канала. Поэтой причине пришлось опрашивать и мастер и слейв и отсеивать фантомов на слейве для первого случия.
Помимо этого есть еще ACHI(AHCI ) так называемы родной режим для SATA.!!! Где обращение идет через MMIO (порты отоброженные впамять) и на одном канале может быть до 255 устройств.

_________________
http://wiki.osdev.ru/


Top
   
 Post subject: Re: Serial ATA
PostPosted: Tue Nov 23, 2010 4:18 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 979
SATA Revision 3.0


Top
   
 Post subject: Re: Serial ATA
PostPosted: Sun Jan 09, 2011 2:27 am 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 979
Кто-нибудь занимается?

Насчёт именования дисков, есть предложение оставить hd0, hd1, hd2 и hd3 для IDE, а для SATA выделять остальные hd4, h5, и т.д.

pcidev видит контроллеры SATA? IRQ установлены?

Quote:
2.Отсутствует поддержка LBA48 - а это большой объем переделки кода. В принципе можно обойтись поддержкой 32-х битной адресации, но с современной скоростью развития жестких через 1-2 года это опять упрется в трубу. Дело в коде который в Колибри жестко завязан на максимум 32 бита, расширение до 64-х бит кода работы с ФС потребует большой переделки, по сути написать с нуля по крайней мере на 50-70% кода.


Можно конкретизировать места подлежащие переделке (хотя бы список модулей) ?

Кстати, как насчёт Long LBA ?


Top
   
 Post subject: Re: Serial ATA
PostPosted: Tue Jan 11, 2011 8:03 pm 
Asper
Текст написан 2 года назад, за это время код подвергался модернизации в которой я не участвовал. Нужно смотреть исходники.
Насчет Long LBA ничего не скажу - спецификации не читал. Могу лишь предположить, что задействовали незадействованные биты в старшем dword.


Top
   
 Post subject: Re: Serial ATA
PostPosted: Wed Mar 02, 2011 1:20 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 979
Mario wrote:
Asper
Если контроллер в режиме IDE, то теоретически только поддержки прерываний не хватает. Переписать на другие порты особой проблемы нет.

Значит по сути с патчем Ghost можно сделать?


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

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


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