Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Nov 23, 2019 12:00 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 262 posts ]  Go to page 1 2 3 4 518 Next
Author Message
PostPosted: Tue Jun 25, 2013 6:52 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
SVN r.3702

1) Добавлена поддержка режима SATA IDE для HDD и ATAPI устройств.
Имейте ввиду, что если в BIOS стоят режимы RAID или AHCI, для SATA контроллера, то вы получите по прежнему дырку от бублика. Также имейте ввиду, что если вы для работы с Колибри таки переключили режим контроллера SATA и BIOS (называется либо IDE, либо ATA, возможны и другие варианты - у меня только эти), то перед загрузкой в другие ОС верните прежний режим - особенно если там стоял режим AHCI. В противном случае другие ОС (Linux, Windows и др.) будут сильно "удивлены", особенно если вы пользуетесь гибернацией.

2) Добавлено LBA48 чтение для PIO режима. Запись по прежнему только LBA28. Будет исправлено несколько позже.
SATA IDE работают пока в PIO режиме, поскольку я еще не разобрался можно ли повесить SATA контроллер в режиме IDE на "стандартные" прерывания 14 и 15. Как выяснилось порты отнюдь не стандартные используются, так что хз насчет прерываний. SATA в режиме AHCI повешены на прерывания выше 15-го.

Для стандартного IDE (настоящий) контроллера активируется DMA режим, если он есть, со старым LBA28. Не знаю встречались ли в природе жесткие диски более 128 Гб с PATA разъемом - я лично не встречал. Если у вас такой есть в наличие просьба здесь отписаться.

Также имейте ввиду, что несмотря на наличие LBA48 (который поддерживает очень большие диски до 128 ПиБ), в настоящее время поддерживаются только диски объемом до 2 Тб, по причине использования старого кэша с адресацией до 2 в 32 степени.

Диски /bd по умолчанию отключены. Включать их имеет смысл, лишь когда у вас BIOS стоит режим AHCI и соответственно /hd диски не видны вообще. Для SATA в режиме IDE - включенные /bd диски могут вызывать разнообразные по симптомам проблемы. Не включайте их для SATA в режиме IDE.

И последняя просьба - не пишите багрепорты в стиле озвученном в крике отчаяния:
Spoiler: Show
Quote:
Дмитрий Переверзев
Павел, из-за чего? Ёлки, почему все (поголовно) рассказывают об ошибках примерно так:
"Машина сломалась! Совсем-совсем сломалась!". И даже не говорят о видимых неполадках - двигатель глохнет на высоких оборотах, или зеркало заднего вида отвалилось

Подробно описывайте свое железо, настройки BIOS и обязательно прилагайте лог BOARD и лог PCIDEV. Текст, фотография - не важно в каком формате, лишь бы был.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Jun 25, 2013 9:37 am 
Offline

Joined: Mon Jun 17, 2013 3:17 pm
Posts: 17
Имеется PATA диск обьёмом около 300 гиг. Стоит в старом компе на i815 чипсете+. К сожалению комп подключен к телевизору через HDMI и в VESA режиме ничего не видно будет.

_________________
UnКайF - это некоторое число такого же размера, как указатель. Что оно означает, знает только ядро. Драйвер может только передавать его ядру, когда хочет что-нибудь сделать. (c) CleverMouse


Top
   
PostPosted: Tue Jun 25, 2013 9:48 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
Не используй sti.
pushfd
cli
...
...
popfd


Top
   
PostPosted: Wed Jun 26, 2013 1:46 am 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
eBox-3310MX с подключенным SATA SSD диском на 16GB (KingSpec KSD-SU25.1-016MJ) стал зависать при определённых настройках BIOS. До этого изменения, при всех настройках работало. Прилагаю boardlog + pcidev + фото BIOS при тех настройках, при которых работает. А если поменять одну строчку (IDE Operate Mode) с Legacy Mode на Native Mode, то через несколько секунд после загрузки зависает (лог снять не хватает времени). Но как раз именно с Native Mode работает Windows.
Spoiler: Show
Attachment:
2013-06-26_01.19.56.jpg
2013-06-26_01.19.56.jpg [ 139.03 KiB | Viewed 13171 times ]

Attachment:
2013-06-26_01.20.14.jpg
2013-06-26_01.20.14.jpg [ 124 KiB | Viewed 13171 times ]
Для тех, кто не в курсе, замечу, что на самом деле eBox имеет только PATA контроллер, но так как PATA-диски ушли в прошлое, производитель eBox добавил ещё и PATA->SATA bridge, через который, собственно, и подключаются SATA диски.


Attachments:
ebox_sata_pcidev.txt [1.63 KiB]
Downloaded 263 times
ebox_sata_test.txt [6.07 KiB]
Downloaded 234 times
Top
   
PostPosted: Wed Jun 26, 2013 2:07 am 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
eBox-3310MX: Лог board + pcidev при тех настройках BIOS, при которых зависает после загрузки если вставить SATA диск. Логи были сняты, естественно, без диска.


Attachments:
ebox_native_mode_pcidev.txt [1.62 KiB]
Downloaded 229 times
ebox_native_mode_log.txt [5.93 KiB]
Downloaded 202 times
Top
   
PostPosted: Wed Jun 26, 2013 2:26 am 
Offline
User avatar

Joined: Thu May 30, 2013 2:35 am
Posts: 48
award 6.00pg
mb sapphire am2rd790fx (790fx/sb600)
hdd0 wd 80 gb ide
hdd1 samsung 80 gb sata
hdd2 samsung 200 gb sata
dvdrw samsung sata

Настроек на sata-контроллер лишь три - native ide/legacy ide/raid
В native видны только sata устройства,в legacy лишь ide hdd


Attachments:
LEGACY.rar [1.79 KiB]
Downloaded 221 times
NATIVE.rar [1.82 KiB]
Downloaded 226 times

_________________
Кристофер Робин сел в «Форд» и взмахнул кнутом…
Top
   
PostPosted: Wed Jun 26, 2013 2:39 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
X-Ray wrote:
award 6.00pg
mb sapphire am2rd790fx (790fx/sb600)
hdd0 wd 80 gb ide
hdd1 samsung 80 gb sata
hdd2 samsung 200 gb sata
dvdrw samsung sata

Настроек на sata-контроллер лишь три - native ide/legacy ide/raid
В native видны только sata устройства,в legacy лишь ide hdd

А какая из больших ОС используется и при какой настройке есть доступ ко всем дискам в большой ОС?

З.Ы. Забавно, что собственно AHCI контроллера ни в каком режиме не видно, и похоже что это два IDE контроллера, которые на шине PCI меняются местами в зависимости от настройки. Похоже придется таки вводить таблицу на минимум два контроллера, а так не хотелось. Ведь еще и HD диски выше 4-го придется делать.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Wed Jun 26, 2013 2:49 am 
Offline
User avatar

Joined: Thu May 30, 2013 2:35 am
Posts: 48
Win XP. В режиме native видно все диски,в legacy сейчас проверю (если смогу снова подключиться к соседскому роутеру,карта лагает,гребанный ralink)

_________________
Кристофер Робин сел в «Форд» и взмахнул кнутом…


Top
   
PostPosted: Wed Jun 26, 2013 5:45 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
SVN r.3706
1) Добавлена LBA48 запись для PIO режима.
DMA по прежнему только для контролеров 0180 (т.е. исходных PATA IDE) и до 128 Гб.

2)
Serge wrote:
Mario_r4
Не используй sti.
pushfd
cli
...
...
popfd

Сделано.

3)
Quote:
hidnplayr « Tue Jun 25, 2013 9:00 am » Mario_r4: Just so you know,
Code:
movzx eax,[IDE_BAR0_val]
DEBUGF 1, "K : BAR0 %x \n", eax

can also be written as
Code:
DEBUGF 1, "K : BAR0 %x \n", [IDE_BAR0_val]:1

Также сделано с некоторыми коррекциями.
Done! Thanks!

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Wed Jun 26, 2013 2:24 pm 
Offline
User avatar

Joined: Thu May 30, 2013 2:35 am
Posts: 48
Интернет-таки отвалился(
В режиме legacy win xp заново нашел дисковод dvd-rw (sata) и два ide-контроллера,изменений никаких нет.

_________________
Кристофер Робин сел в «Форд» и взмахнул кнутом…


Top
   
PostPosted: Wed Jun 26, 2013 2:39 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
X-Ray wrote:
Интернет-таки отвалился(
В режиме legacy win xp заново нашел дисковод dvd-rw (sata) и два ide-контроллера,изменений никаких нет.

Тогда мои размышления были правильные и два контроллера просто меняются местами на шине PCI. Я буду заниматься доработкой поддерживающей одновременно более одного контроллера немного позже.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Wed Jun 26, 2013 10:36 pm 
Offline

Joined: Sun Feb 18, 2007 8:34 pm
Posts: 158
Скорее контроллеры меняются функциями, а не местами. А то что второй переключается в режим совместимости при использовании настройки NATIVE, так это скорее всего как раз ради экономии IRQ-линий, чтобы можно было использовать IRQ14/15. Задействовать IRQ14/15 под что-либо еще сложно, а часто и невозможно. На моем компе второй контроллер не может работать в режиме совместимости (байт интерфейса 85h), поэтому он при любых настройках работает в нативном режиме и забирает под себя доп. IRQ-линию. Хотя в принципе можно разделять одну IRQ-линию между несколькими контроллерами, работающими в нативном режиме.


Top
   
PostPosted: Thu Jun 27, 2013 2:01 am 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1351
Phantom-84 абсолютно прав.

По крайней мере во всех AMD-чипсетах один контроллер SATA, но в зависимости от BIOS-настройки он представляется системе как IDE, AHCI или RAID.
Spoiler: Show
The SB800 SATA will have different device IDs for different drivers, because they are
totally different devices from the driver point of view. It’s not sufficient for the OS to know
whether to load IDE, AHCI, or RAID driver. In a non-fresh installed condition, Windows
will match the 4 IDs (vendor ID, device ID, sub-system ID and sub-vendor ID) first, and if
they are matched, it will load the driver and will not check the sub-class code. This will
cause blue screen in WinXP if SATA RAID driver is loaded, SATA controller is in IDE
mode, and device ID is shared.

кстати, BIOS-настройка может быть очень легко изменена при старте ядра.
Spoiler: Show
1. Enable the subclass code register (PCI config register 0Ah) and the program interface register (PCI config register 09h) to be programmable
SATA_PCI_config 0x40 [0] = 1

2.Program SATA Controller mode in
a) IDE mode, or
SATA_PCI_config 0x09 = 0x8F (default)
SATA_PCI_config 0x0A = 0x01
b) AHCI mode, or
SATA_PCI_config 0x09 = 0x01
SATA_PCI_config 0x0A = 0x06
c) RAID mode
SATA_PCI_config 0x09 = 0x00
SATA_PCI_config 0x0A = 0x04

3. Clear the bit to convert the subclass code register to be a read-only register.
SATA_PCI_config 0x40 [0] = 0

Поскольку 9-й и 10-й байты конфигспейса просто отображают функцию устройства, такой финт может сработать и в других чипсетах (а вот регистр 0х40 в PCI-стандарте не определен, так что на интелах выключатель может сидеть где-то в другом месте).


Top
   
PostPosted: Thu Jun 27, 2013 9:30 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
SVN r.3712
1) Поддержка LBA48 для чтения и записи в режиме DMA, для жестких дисков.
2) Чистка и оптимизация кода

Промежуточные итоги:
1) Теперь стандартные PATA контроллеры 0180 и 018A поддерживают LBA48 в режимах PIO и DMA.
2) Также SATA контроллеры 0185 и 018F в режиме эмуляции IDE поддерживают LBA48 в режиме PIO.

Задачи на будущее:
1) Система пока не умеет работать с прерываниями отличающимися от 14 и 15, потому собственно только PIO для SATA IDE. Собственно в этом сама задача - написать код работы с нестандартными прерываниями.
2) Система пока не умеет работать с более чем одним физическим контроллером на шине PCI. Соответственно задача реализовать таблицу контроллеров и написать весь прочий код.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Thu Jun 27, 2013 3:41 pm 
Offline

Joined: Sun Feb 18, 2007 8:34 pm
Posts: 158
art_zh wrote:
но в зависимости от BIOS-настройки он представляется системе как IDE, AHCI или RAID.
Это само собой. Правда, я имел в виду немного другое, а именно изменения, происходящие с двумя PCI IDE-контроллерами в логах X-Ray при изменении настройки LEGACY/NATIVE.

Mario_r4 прав, SATA-контроллер может отображаться в виде двух PCI IDE-, хотя на данной материнке есть IDE-порт, а значит наверняка и обычный PCI IDE-контроллер, который может быть одним из двух видимых PCI IDE-.


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

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 7 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