Page 1 of 2

RAID/SATA

Posted: Thu Mar 08, 2007 10:25 pm
by semiono
Привет!
Моё железо:
Asus A8N-SLI DELUXE
nForce4 /nForce4 MCP ITE: IT8712
2Gb memory
Я даже не знаю поддерживает ли Menuet sata вообще?
Вроде пока диски свои не видел, но у меня вообще сложная история,
обычно я использую включенный raid контроллёр и что у меня там,
я сам толком не понимаю...
Хотелось бы чтоб производители обратили внимание на поддержку
sata/raid вообще и на nForce4 чип вчасности...
Если что вот прилагаю драйвер...
nForce4
Может быть hd диски надо примонтировать специальной коммандой?
Или дрова есть для этого?
Я очень надеюсь что сообщество примет меня,
хотя я полный чайник, но стал уже фанатом kolibri
как только увидел её сразу! =)
Если надо будет что протестировать на моём hw пожалуйста!
Всё что смогу please!

Posted: Fri Mar 09, 2007 12:52 am
by semiono
На VMware создал FAT32 раздел и он стал видим из kolibri! Так и есть не везёт мне с sata, и многие OS не хотят его признавать...
Что же делать...

Posted: Fri Mar 09, 2007 7:00 am
by mike.dld

Posted: Fri Mar 09, 2007 10:37 pm
by semiono
Очень жаль но у меня нету совместимого режима. Был когда-то с другим железом...

Posted: Sun Jun 10, 2007 2:42 pm
by semiono
Так как у меня нет и не было Enhanced Mode aka PATA выход нашёлся такой.
Я вдруг вспомнил, что CDROM's сидят на IDE-шном хосте (:
Как я вообще про это позабыл!
Вообщем поставил IDE винт, правда этот шаг был назад в будущее ;-
Теперь счастлив с колибри, но это не всё...
IDE винт на IDE контролле я обычно превратил в nVidia nFoece4 RAID "массив" = adapter0 channel0 raid array stripping 128K
Могу сказать, коллибри работает с этим хорошо!
По прежнему v7 так же не видит SATA's винты, но да фиг с этим.
У меня нерешён правда один вопрос...
А как грубом запустить KolibriOS без NTLoader, напрямую?

PS в новом релизе маус стал медленный почему-то, простая PS/2 мышь, это можно настроить?
И ещё в KFAR (F4) - edit нельзя сделать?

Posted: Sun Jun 10, 2007 3:16 pm
by mike.dld

Posted: Sun Jun 10, 2007 8:04 pm
by semiono
Спасиб!!!

Posted: Mon Jun 11, 2007 11:22 am
by diamond
semiono wrote:PS в новом релизе маус стал медленный почему-то, простая PS/2 мышь, это можно настроить?
Можно: в настройках (вызывается нажатием кнопки S на панели) увеличиваешь скорость мыши. Раньше там стояло 3, но в 0.7.0.0 я поставил 1 (т.е. без ускорения), а то по мелким объектам попасть довольно сложно (например, в сапёр играть неудобно).
semiono wrote:И ещё в KFAR (F4) - edit нельзя сделать?
Можно, но будет это не скоро.

Posted: Wed Jun 13, 2007 4:45 pm
by Mario79
diamond
Нужно было хотя-бы 2 выставить, а то сейчас все юзеры начнут сообщать что мышь медленная и будет считаться что это баг.

semiono
У меня мамка ASUS A8N5X с nVIDIA nForce4.
SATA котроллеры есть, но нет жесткого диска с SATA, и его не будет еще месяца 3-4, так как я купил в кредит цифровую камеру.
Как только смогу приобрести такой жесткий диск я займусь этим вопросом и заодно с 48 битной адресацией. Без самого железа сложно написать его поддержку.
Если за это время кто-нибудь раньше меня займется проблемой, то будет хорошо, но я сомневаюсь, что таковые будут.

Posted: Wed Jun 13, 2007 6:18 pm
by Pavia
Mario79
Да соглассен, без железа трудно писать. С SATA особых проблем нет, была одна решил. Хотя вопросы пока остались. LBA48 тоже не сложный.
Сам я не берусь пол ядра переписовать.
LBA48 очень прост. Вопервых скажу что используются другии команды с приставкой EXT.
Присутствие поддержке LBA 48 определяется из информационной структуре полученной по IDENTIFY DEVICE слово 83 Бит 10.
Запись адресса и число читаемых/записываемых секторов осуществляется в два прахода сначала младшии затем старшии. Затем выставляется команда.
Записанные значения можно прочитать используя HOB бит.

Control Block

Code: Select all

+---------------+-----+-----+-----+-----+-----+-----+-----+-----+
|Register       |  7  |  6  |  5  |  4  |  3  |  2  |  1  |  0  |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+
|Device Control | HOB |  r  |  r  |  r  |  r  | SRST| nIEN|  0  |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+
HOB - (high order byte) служит для LBA48. Любая запись в регистр Command Block очищает этот бит.
r – резерв
SRST - программный сброс(Reset) контролера
nIEN - управляет INTRQ сигналом


Если у нас LBA48 то установка HOB=0 позволяет читать первичную запись. А HOB=1 вторичную запись из регистров Command Block

HOB - High Order Bit (бит 7) в Device Control register. Напоминаю что Device Control register это порт контроля (к примеру 03F4h+2)
Читать из этого регистра нельзя, так как из него вернуться другие данные.
Бит устанавливается посылкой 80h (HOB=1) или 0h (HOB=0). Любая запись в Command Block приводит к сбросу HOB=0, поэтому после посылке команды HOB=0.


А вот с SATA контролером, есть такая особенность. Он может масскироваться под IDE, RAID. Насчет указаний как работать с RAID я не нашел =( .
Ищем контролеры IDE, RAID. Читаем из их конфигурационного пространства PCI BAR регистры.

Code: Select all

+-------+---------+-------------------------------------------------+
|10h-13h| PCMD_BAR| Primary Command Block Base Address              |
|       |         | Базовый адрес портов команд первичного канала   |
+-------+---------+-------------------------------------------------+
|14h-17h| PCNL_BAR| Primary Control Block Base Address              |
|       |         | Базовый адрес порта контроля первичного канала  |
+-------+---------+-------------------------------------------------+
|18h-1Bh| SCMD_BAR| Secondary Command Block Base Address            |
|       |         | Базовый адрес портов команд вторичного канала   |
+-------+---------+-------------------------------------------------+
|1Ch-1Fh| SCNL_BAR| Secondary Control Block Base Address            |
|       |         | Базовый адрес порта контроля вторичного канала  |
+-------+---------+-------------------------------------------------+
|20h-23h| BM_BASE | Bus Master Base Address                         |
|       |         | Базовый адрес регистров для режима захвата шины |
+-------+---------+-------------------------------------------------+
Считанные данные добовляются к стандартным портам. Напоминаю, что если в BAR лежит адрес 00 это говорит, что он отустствует.

Первичный канал: порты команд 01F0h-01F7h
Порт контроля 03F4h+2
прерывание IRQ14
Вторичный канал: порты команд 0170h-0177h
порт контроля 0374h+2
прерывание IRQ15

Порт контроля базовым считается адрес 03F4h. А сам регистр находиться по смещению +2.

Еще была особенность в определении SATA диска через EXECUTE DEVICE DIAGNOSTIC, решил через дополнительную проверку на IDENTIFY DEVICE.
А вот если у нас контролер определяется как SATA, то это AHCI. И он уже программируется через регистры отоброженные в память. Его я еще не изучал.

PS. Надеюсь чем то помог.

Posted: Sat Jun 23, 2007 12:01 am
by Gluk
всем доброго времени суток!
1) у мя новая колибритестилка - на базе ПеньД, с радеоновской видюхой, без AC'97, с сатавскими дивидюком и винтом.
2) а)без звука грустно =( б) конкретнее ничего не скажу, ибо эвересту на этой машине еще нема =( в) собстна, есть проблемка.. а именно, как уже ясно, сатовский винт Колибрей не виделся =( но я залез сюды, узнал про компатибле моде, себе сделал.. и Колибри увидела диск hd0/1/, т.е., собстна, диск C:/ по-Виндозному. а он НФТС'ный. меня это не устроило, я скачал прогу ПартишнМэйджик, дабы сделать ФАТ32тый раздел на пару гигов (винт на 320гб, так что не жалко). скачал, попытался сие сотворить, но прога меня обрадовала своей дэмоверсионностью =(. тогда я переместил 50 гигов игр с диска D на диск С, удалил раздел D, и создал из него три штуки: D, M, и Q. последний, двухгиговый, переФАТ32рмотировал, обозвал KOLIBRI, поставил Колибри на загрузку с него (mtldr-кой), ребутнулся.. и обломался =( нет, Колибри по-счастию у меня заработала =) но вот только хард она видела в виде одного лишь C:/ =( тогда я вспомнил, что и до всяких разбиений/форматирований она видела только его =( а ведь был еще D.. потом я так примерно понял что птичке не нравится Secondary'тость всех остальных разделов =( а сделать Примарьность может только вышеупомянутый Партишн Мэйджик, коий дэмоверсен, и коий я качал через жпрс на протяжении около восьми часов, из-за чего чуть свидание не проспал =( так что.. HELP ME! ='( что делать?..

Posted: Sat Jun 23, 2007 12:27 am
by Heavyiron
Проблема тут не в партишн мэджике. И primary/secondary тут тоже не причем (кроме того термины эти немного неуместны для 1 винта, тут скорее primary/logical и колибри дружит с обоими вариантами)! Все дело в 320-гиговости винта :) Как выход - попробуй создать фат32-раздел в пределах первых 120 гигов. Этот раздел по идее должен стать видимым.

Posted: Sat Jun 23, 2007 1:14 am
by Gluk
спасибо! =) только без проги спец. это значит переустановку системы вроде как.. посоветует кто прогу?.. // извиняюсь, спутал термины =) // а.. откуда считаются "первые" гиги (=)))))) ? то есть мне от C отрезать нужно, верно я понял?..

Posted: Sat Jun 23, 2007 1:25 am
by Gluk
P.S.: объем диска С:/ = 160 гб.. но я нигде не встречал упоминаний про подобные ограничения 0_0

Предлагаю создать список Колибриевских ограничений.. заодно, на мой взгляд, это могло бы помочь сформировать рейтинг основных задач на данный момент для программеров.. я бы и сам взялся за что-нибудь, не слишком сложное (ибо программер пока слабый очень), но нужное для проекта (иначе не будет внутреннего стимула, и я забью на енто =( ), но не знаю собственно что нужно и при том не очень сложно (и есть доки по этому.. а то я пытался искать, еще одно свидание чуть не проспал.. да серьезно =) =( )..
вот..

Posted: Sat Jun 23, 2007 11:44 am
by Heavyiron
Тот же партишн мэджик позволяет менять размер раздела без потери данных, а значит без переустановки системы.... размер считается слева направо :) И для системного диска, если на нем ничего больше не хранить, как правило, достаточно 10 ГБ (учитывая 320 гиговость, и то, что места не жалко можно взять с запасом 15 :) ).

PS: и поосторожнее со свиданиями ;) комп и колибри подождут!