Page 3 of 4

Re: Serial ATA

Posted: Thu Dec 25, 2008 2:21 pm
by Serge
diamond

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

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

Re: Serial ATA

Posted: Thu Dec 25, 2008 5:56 pm
by diamond
Serge
> В смысле через BIOS ? Драйвер ищет контроллеры на PCI шине и видет всё что не отключено.
Какой драйвер? Я знаю только про ядро (detect/dev_hdcd.inc:SendCommandToHDD и fs/fs_lfn.inc:fs_OnHd*), которое при определении IDE-дисков и не думает про PCI.

Re: Serial ATA

Posted: Thu Dec 25, 2008 9:38 pm
by Serge
diamond

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

Re: Serial ATA

Posted: Thu Dec 25, 2008 10:31 pm
by diamond
Serge
Но общаться-то с устройством драйвер ведь будет через порты? Вот о них и речь. Базовый порт (не знаю точно, что именно подразумевается под этим в случае нескольких диапазонов ввода/вывода, но полагаю, что с этим можно разобраться) выдаёт BIOSовская функция и может выдавать драйвер - поэтому обсуждение и зашло о том, что в действительности драйвер должен выдавать.

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

Re: Serial ATA

Posted: Thu Dec 25, 2008 11:14 pm
by Serge
>А этот код из bootcode.inc ищет PCI-устройство, соответствующее контроллеру DMA, а вовсе не сами жёсткие диски.

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

Re: Serial ATA

Posted: Thu Dec 25, 2008 11:29 pm
by Serge
Я думаю проблемы с sata потому что Колибри работает только с одним контроллером. В новых чипсетах нет pata и на плату ставят внешний контроллер для старых hd и cd. Биос настраивает контроллеры в legacy mode а дальше как повезёт. Скорее всего внешний контроллер оказывается на дефолтных адресах.

Re: Serial ATA

Posted: Thu Dec 25, 2008 11:33 pm
by diamond
А разве есть какие-то проблемы с SATA?

Re: Serial ATA

Posted: Fri Dec 26, 2008 8:09 am
by Serge
А разве у всех видны диски ?

Re: Serial ATA

Posted: Fri Dec 26, 2008 12:25 pm
by diamond
Есть проблемы с USB-флешками (у Mario79 и camper), я с ними пытаюсь разобраться, но SATA-диски видны у всех.

Re: Serial ATA

Posted: Fri Dec 26, 2008 2:23 pm
by Serge
diamond

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

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

Re: Serial ATA

Posted: Mon Jan 19, 2009 3:17 am
by Pavia
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 устройств.

Re: Serial ATA

Posted: Tue Nov 23, 2010 4:18 pm
by Asper

Re: Serial ATA

Posted: Sun Jan 09, 2011 2:27 am
by Asper
Кто-нибудь занимается?

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

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

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

Re: Serial ATA

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

Re: Serial ATA

Posted: Wed Mar 02, 2011 1:20 pm
by Asper
Mario wrote:Asper
Если контроллер в режиме IDE, то теоретически только поддержки прерываний не хватает. Переписать на другие порты особой проблемы нет.
Значит по сути с патчем Ghost можно сделать?