Re: SATA в режиме IDE - полная поддержка
Posted: Sat Aug 24, 2013 2:29 am
Unduing
Просьба внимательно протестировать SVN r.3870.
Просьба внимательно протестировать SVN r.3870.
Official KolibriOS board
http://board.kolibrios.org/
Пока нет, потом при следующих ревизиях, если вылезет что-нибудь, то понадобятся.Unduing wrote:Логи нужны?
Нет, не прокатило. Режим UltraDMA уже выбран согласно информационному блоку (512 байт) получаемому при обнаружении устройства.Phantom-84 wrote:Тогда пользуемся SET FEATURES и выставляем желаемый режим на свой страх и риск.
Что на всех SATA работающих в режиме Native неправильно настроено? Стабильно вешается на всех ведь. Имхается мне что проблема может быть и в общем коде обработке прерываний самой Колибри. Там вообще все ядро ведь повисает. Даже Beep замирает и графическая часть.Serge wrote:Mario_r4
Это может быть из-за неправильной настройки роутера прерываний. Надо смотреть документацию на чипсет и проверить как там подключено прерывание к 8259 и запрограммирован линк.
Если оно работает в SATA IDE, но порты не Legacy и прерывания не 14 и 15, а сам контроллер 018F - то что это еще может быть?Serge wrote:А ты уверен, что снимаешь запрос прерывания с устройства в native ?
Устройству назначено 10-е прерывание.Serge wrote:А если проверить в режиме APIC ?
Я имел ввиду то, что сигнал прерывания от устройства сам по себе не снимается. Его надо явно сбрасывать. В ядре я ничего похожего не нашёл. В ISA режиме не фатально, а в PCI приводит к зависанию ядра.Если оно работает в SATA IDE, но порты не Legacy и прерывания не 14 и 15, а сам контроллер 018F - то что это еще может быть?
Хм.. а ведь ты гений! Ты натолкнул меня на мысль.Serge wrote:Я имел ввиду то, что сигнал прерывания от устройства сам по себе не снимается. Его надо явно сбрасывать. В ядре я ничего похожего не нашёл. В ISA режиме не фатально, а в PCI приводит к зависанию ядра.
Code: Select all
; clear Bus Master IDE Status register
; clear Error bit and Interrupt bit
add edx, 2
mov al, 6 ; 110b
out dx, alCode: Select all
; clear Bus Master IDE Status register
; clear Interrupt bit
add edx, 2
mov al, 4 ; 100b
out dx, alА вот эту часть твоего сообщения я не понял. Причем тут APIC? Вроде так без APIC заработало, не знаю как будет делиться с другими устройствами правда.Serge wrote: Проверка в APIC
Вектор прерывания надо считывать уже после инициализации ядра, оно его меняет.
Плеер не причём. Очень тормозная реализация файловой системы.HD видео на примере сериала House и контейнера mkv правда, все равно подтормаживает спустя десяток секунд - загрузка процессора i5-450 стопроцентная, но тут уже с сами видеоплеером нужно разбираться.
Эмм... а я помню еще то время, когда даже /bd дисков хватало и не заикалось. Интересно это было в параллельном мире или фантомные воспоминания?Serge wrote:Плеер не причём. Очень тормозная реализация файловой системы.
Fat32. А текущая реализация ntfs безнадёжна. Если надо считать файл за раз, ещё нормально. Но последовательное чтение просто кошмар. Хотя это ко всей vfs относится.... а я помню еще то время, когда даже /bd дисков хватало и не заикалось
Так в том то и дело, что я читал с той же NTFS и даже с того же раздела и даже файл тот же. Вся разница в том, что в той реализации плеера происходила рассинхронизация видео и звука, но ничего не заикалось, в текущей реализации плеера видео и звук синхронно заикаются. Вернее первые 10 секунд они не заикаются, а вот потом начинают регулярно раз в 2-3 секунды. Я разумный человек и понимаю, что производительности даже моего неслабого i5-450 при таком подходе не хватает, но мне почему то думается что какая-либо оптимизация декодера возможна, просто ты сам в ту сторону не копал еще. Пенять исключительно на файловую систему не рационально.Serge wrote:Fat32. А текущая реализация ntfs безнадёжна. Если надо считать файл за раз, ещё нормально. Но последовательное чтение просто кошмар. Хотя это ко всей vfs относится.