SATA в режиме IDE - полная поддержка

Internal structure and you change requests/suggestions
  • Mario_r4
    Какая разница, сколько потоков будет, если файловая система не позволяет читать диск быстрее, чем надо плееру.
  • Serge wrote:Mario_r4
    Какая разница, сколько потоков будет, если файловая система не позволяет читать диск быстрее, чем надо плееру.
    Ладно найду свободное время распакую в RAW и вот тогда будет точный показатель, есть ли вина файловой системы. Пока что я вижу, что файлы SD качества воспроизводятся вполне нормально, а HD качества (которые лишь в 2,5 раза больше http://www.lostfilm.tv/browse.php?cat=51 все зависит от качества сжатия) начинают "квакать". Загрузка же для HD 100% процессора всегда. Для SD качества 20-25%.

    З.Ы. И все же мне не понятно почему старая версия плеера не заикалась, хоть и была рассинхронизация. Ведь хватало же каким то чудом скорости чтения с диска.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • У меня есть подозрение, что для ntfs продолжительность одиночной операции чтения файла пропорциональна размеру файла. То есть чем длиннее файл, тем меньше максимально возможная скорость чтения. Для примера рип 15Гб с битрейтом 2Мб/с встаёт сразу. 1.5 Гб с битрейтом 260Мб/с чуть-чуть не успевает (на фат32 без подтормаживания). 135Мб с битрейтом 480Мб/с идёт без рывков.

    Update.
    А вот нихрена. Сделал тест последовательного чтения ntfs и получил в среднем 195000Кб/с независимо от размера файла. Это AHCI на новом диске и результат очень даже внушает.
    С другой стороны видеофайл может считываться не последовательно. Если в конце расположены служебные данные и к ним идёт периодически обращение, будет просадка.
    Update 2.
    А вот опять нихрена.
    Проверил скорость чтения фреймами в ffmpeg. В среднем 2-5% медленнее. Гигабайт пролетает за пять секунд.
    На фс я зря грешил, хотя может быть ещё лучше.
  • Serge wrote:Update 2.
    А вот опять нихрена.
    Проверил скорость чтения фреймами в ffmpeg. В среднем 2-5% медленнее. Гигабайт пролетает за пять секунд.
    На фс я зря грешил, хотя может быть ещё лучше.
    Так в чем же проблема?
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Так насчет центрально темы - у меня были слишком радужные перспективы.

    Итак что я теперь имею для UltraDMA режима:
    1) Dell Inspiron (native) - работает жесткий, но любое обращение к DVD приводу вешает систему. Оно и понятно, поскольку там PIO и обработчик прерывания не отрабатывает. Проблема решаема допилкой кода ATAPI - несущественная проблема в общем.
    2) eBox (legacy|native) - в legacy все замечательно, но в native ситуация не изменилась - все еще виснет при обращении к диску.
    3) Мамка Asus (native) - работало и раньше, при первом обращении к жесткому по прежнему отваливается USB стек, потому что они делят между собой одно прерывание.
    4) Мамка Asrock (native) - виснет по прежнему при первом обращении.
    Все вышеприведенное разумеется в PIO режиме отрабатывает без проблем.

    Буду думать дальше.

    З.Ы. Для тех кто желает проверить вот ядрышко:
    kernel.7z (86.07 KiB)
    Downloaded 205 times
    Только предварительно уберите из AUTORUN.DAT строку запускающую /SYS/SEARCHAP - т.к. любое обращение к /cd повесит систему, о чем я уже писал выше. Также логи рабочих/нерабочих конфигураций очень нужны - я там добавил вывод о PIO/DMA/UDMA режимах.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Serge wrote:Проверка в APIC
    Вектор прерывания надо считывать уже после инициализации ядра, оно его меняет.
    Что конкретно нужно сделать с назначением прерывания для контроллера DMA. Написать отдельный драйвер или как вообще? Как все дело синхронизировать вообще?
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Не видит жёсткий диск.
    Моё делезо: ноутбук MSI U90
    Attachments
    PCIDEV.TXT (2.32 KiB)
    Downloaded 194 times
    BOARDLOG.TXT (2.75 KiB)
    Downloaded 183 times
  • gc986 wrote:Не видит жёсткий диск.
    Моё делезо: ноутбук MSI U90
    А жесткий диск какой фирмы и модели можно посмотреть например в Windows или какая основная ОС там установлена?
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Что конкретно нужно сделать с назначением прерывания для контроллера DMA
    После вызова APIC_init прочитать правильный номер линии из регистра pcicfg:0x3C.
  • Serge wrote:
    Что конкретно нужно сделать с назначением прерывания для контроллера DMA
    После вызова APIC_init прочитать правильный номер линии из регистра pcicfg:0x3C.
    А запускать нумератор устройств уже не нужно?
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Нет, патчится только номер линии.
  • Serge wrote:
    Что конкретно нужно сделать с назначением прерывания для контроллера DMA
    После вызова APIC_init прочитать правильный номер линии из регистра pcicfg:0x3C.
    Для проверки правильности идеи сделал вот так:
    Spoiler:

    Code: Select all

            DEBUGF  1, "K : BAR0 %x \n", [IDE_BAR0_val]:4
            DEBUGF  1, "K : BAR1 %x \n", [IDE_BAR1_val]:4
            DEBUGF  1, "K : BAR2 %x \n", [IDE_BAR2_val]:4
            DEBUGF  1, "K : BAR3 %x \n", [IDE_BAR3_val]:4
            DEBUGF  1, "K : BAR4 %x \n", [IDEContrRegsBaseAddr]:4
            DEBUGF  1, "K : IDEContrProgrammingInterface %x \n", [IDEContrProgrammingInterface]:4
            DEBUGF  1, "K : IDE_Interrupt %x \n", [IDE_Interrupt]:4
    
    	mov	eax,57
    	mov	ebp,0xB103
    	mov     ecx, 1*10000h	; + 1*100h + 0x80
    	mov	cx,[IDEContrProgrammingInterface]
    	xor	esi,esi
    	call	sys_pcibios
    	
    	mov	eax,57
    	mov     ebp, 0xB10A
    	mov     edi, 0x3c        ; memory base is config register at 0x3c
    	push	ecx
    	call	sys_pcibios
    	DEBUGF  1, "K : IDE_Interrupt APIC %x \n",ecx
    	pop	ecx
    	
    	mov	eax,57
    	mov     ebp, 0xB10A
    	mov     edi, 0x20        ; memory base is config register at 0x20
    	call	sys_pcibios
    	DEBUGF  1, "K : IDEContrRegsBaseAddr APIC %x \n",ecx
    Как результат - на компьютерах с Legacy возвращается 0, как до, так и после APIC_init, а на компьютерах с Native возвращается то же самое значение, как до, так и после APIC_init. Вывод для смещения 0x20 делал исключительно для контрольного результата, естественно он совпал с BAR4 полученным в Real Mode. Если я где то неправ и не так считывал, то просьба ткнуть носом.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • gc986 wrote:Не видит жёсткий диск.
    Моё делезо: ноутбук MSI U90
    Просьба протестировать.
    kernel.7z (85.99 KiB)
    Downloaded 195 times
    Если будет ошибка или все нормально, то выложить логи. Если зависнет при обращении, то просто отписаться здесь.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4
    А ты запускал нумератор устройств и сохранял devices.dat в образе ?
  • Who is online

    Users browsing this forum: No registered users and 1 guest