Board.KolibriOS.org

Official KolibriOS board
It is currently Thu May 28, 2020 2:31 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 25 posts ]  Go to page Previous 1 2
Author Message
 Post subject: Re: VESA 1.2
PostPosted: Wed Aug 08, 2012 8:31 pm 
Offline
User avatar

Joined: Mon Jul 25, 2011 6:22 pm
Posts: 93
Изначально, в 16-битном (BIOS/DOS) режиме проще работать с VESA. Но если вы
предварительно получили данные VESA, то можно работать и в FrameBuffer - линейный адрес в памяти,
ЧИТАЙТЕ ДОКУМЕНТАЦИЮ ПО VESA 2.0+ :)

_________________
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!


Top
   
 Post subject: Re: VESA 1.2
PostPosted: Thu Aug 09, 2012 10:12 am 
Offline

Joined: Wed Sep 15, 2010 7:22 pm
Posts: 101
Цитата: "Установка видео режима через порты стандартна для всех видео карт"

Означает ли это возможность предварительной отладки драйвера с использованием эмулятора (QEMU, например) с последующей адаптацией к конкретной видео карте?

P.S.

Кончаю болтать не по теме: когда начну конкретно работать - создам отдельную тему.
Однако пока-что всё же рассчитываю на ответ :wink:


Top
   
 Post subject: Re: VESA 1.2
PostPosted: Thu Aug 09, 2012 2:57 pm 
Offline

Joined: Mon Jan 16, 2012 5:58 pm
Posts: 50
FireWall wrote:
Цитата: "Установка видео режима через порты стандартна для всех видео карт"

Означает ли это возможность предварительной отладки драйвера с использованием эмулятора (QEMU, например) с последующей адаптацией к конкретной видео карте?


С устройствами работают через их регистры в памти, через порты уже не работают, но регистры у каждой видео карты разные.
Если нужен доступ ко всем видео картам, то только VESA


Top
   
 Post subject: Re: VESA 1.2
PostPosted: Thu Aug 09, 2012 6:59 pm 
Offline

Joined: Wed Sep 15, 2010 7:22 pm
Posts: 101
Не понял ответа ...

Имеется в виду НЕТ ? (- предварительная отладка на эмуляторе невозможна и/или нецелесообразна, - нужно сразу работать на конкретном железе ?)

P.S.

Имеется в виду видео карта только с поддержкой VESA 1.2 , в которой Kolibri OS находит только очень проблематичные видеорежимы


Top
   
 Post subject: Re: VESA 1.2
PostPosted: Fri Aug 10, 2012 4:08 pm 
Offline

Joined: Mon Jan 16, 2012 5:58 pm
Posts: 50
Я не понял вопроса, т.е. что вообще требуется, версия VESA не важна, если нужен какой-нибудь видео режим, то средствами VESA перебираешь имеющиеся и если твой есть то установишь его, после чего у тебя будет просто адрес на память экранного буфера в памяти самой видеокарты и рисуй там на здоровье.
Отлаживать можно в QEMU


Top
   
 Post subject: Re: VESA 1.2
PostPosted: Fri Aug 10, 2012 5:49 pm 
Offline

Joined: Wed Sep 15, 2010 7:22 pm
Posts: 101
Исходный контекст:

Был вопрос:
(1) Насколько сложно включить линейный фрейм-буфер, управляя портами графической карты (как по In/OUT так и по их отображению в адресное пространство - MMIO)? [возможный конкретный контекст: чип i810, не поддерживающий VBE; но для которого есть Linux драйверы для разрешений >>800x600x16]

Я имею в виду : в Protected Mode , посредством портов (in/out или MMIO) отобразить область видео-памяти в адресное пространство (в контексте i810 вроде как - просто определить, ибо чип не именет собственной видео памяти) так, чтобы ядро Kolibri OS могла использовать эту область стандартным способом. Подчеркну - сделать это без вызовов функций BIOS.

(2)
Я вроде как получил ответ, что это не так уж и сложно, в частности: "Установка видео режима через порты стандартна для всех видео карт." Правда у меня закралось подозрение, что я был неправильно понят ...

Формулирую вопрос:
(3) Насколько реален (целесообразен) план с начальным использованием QEMU для написания драйвера Kolibri OS, устанавливающего более приемлемый видео-режим?

(4) План при этом таков:
(а) Пишется драйвер Kolibri OS для QEMU (эмулиремой видео-карты), который позволяет изменить видео-режим. Таким образом отлаживаются все детали технического взаимодействия драйвера с ядром Kolibri OS.
(б) На реальном железе (например, i810) остаётся отладить только специфический код изменения (установки) видео-режима.

(5) Я предвижу проблемы:
(i) Уже упоминалось: "С устройствами работают через их регистры в памти, через порты уже не работают" Я это понял как "На реальном железе можно и IN/OUT и MMIO; на эмуляторе - только MMIO" Иными словами: QEMU неадекватна в этом контексте и требует радикально иного подхода (например, поэтому часто не работает дискета в Kolibri OS на QEMU)
(ii) Если карта не поддерживает VBE , то в ней нельзя установить его аналог (аналог линейного фрейм-буфера) в принципе (а драйвер Linux/Windows, использует принципиально иной подход, который принципиально отличается от подхода Kolibri OS).

Итак, ещё раз повторяю вопрос:
Насколько реален (целесообразен) план с начальным использованием QEMU для написания драйвера Kolibri OS, устанавливающего более приемлемый видео-режим?


Top
   
 Post subject: Re: VESA 1.2
PostPosted: Fri Aug 10, 2012 7:10 pm 
Offline

Joined: Mon Jan 16, 2012 5:58 pm
Posts: 50
Установить видеорежим через VESA можно только в реальном режиме, а после перехода в защищённый уже нельзя, но дело в том, что этого и ненадо, т.к. получается что нормальный режим только один 1024*786.
Валялся гдето драйвер для графики через порты на OSDeve, он работал в 90%.
Если чип не имеет своей видео памяти, то он использует аперативку, а работа с ним идёт так же как и со всеми.
Современные intel hd4000 тоже могут не иметь свою память, но работают быстро и тянут DirectX11.


Top
   
 Post subject: Re: VESA 1.2
PostPosted: Tue Aug 14, 2012 12:06 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 797
Вот еще небольшое сообщение в тему http://board.flatassembler.net/topic.php?t=14501


Top
   
 Post subject: Re: VESA 1.2
PostPosted: Tue Aug 14, 2012 9:31 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1624
В VESA1 - которая писалась во время реального режима - видеопамять была организована не как единое целое, а банками, когда из всей видеопамяти процессор может работать только с окном aka банком размером 64K по адресу A000:0000 - возможны вариации, возможны два окна, подробности в спецификации. Для доступа ко всей видеопамяти нужна была процедура переключения банков, специфическая для видеокарты, которая устанавливает начало банка на указанное смещение. В ранних ядрах были, кажется, три процедуры для трёх разных карт без всякой возможности выбора нужной во время исполнения - только на уровне компиляции ядра. Полноценная поддержка VESA1 потребовала бы либо всевозможных процедур под все видеокарты, либо вызова процедуры, предоставляемой BIOS, через V86 - что требует существенных технических дёрганий, - либо вызова PM-процедуры BIOS, буде таковая существует - что бывает довольно редко. Поскольку полноценной поддержки не было, а код а) место занимал и б) требовал поддержки, в какой-то момент код решили просто закопать.

В VESA2 видеопамять - один непрерывный кусок, для которого, естественно, нет места в адресном пространстве реального режима, а также нет необходимости в переключении банков.

_________________
Сделаем мир лучше!


Top
   
 Post subject: Re: VESA 1.2
PostPosted: Wed Aug 15, 2012 12:32 pm 
Offline

Joined: Wed Sep 15, 2010 7:22 pm
Posts: 101
Некоторые исторические даты (информация для размышления):

(1) VESA BIOS Extensions (VBE core) 2.0 [November 1994]
http://en.wikipedia.org/wiki/VESA_BIOS_Extensions
(2) Pentium Pro, ... [1995]
http://en.wikipedia.org/wiki/X86
(3)
1993

FreeBSD
NetBSD
Newton OS
Windows NT 3.1 (First Windows NT kernel public release)
Open Genera 1.0
IBM 4690 Operating System
Novell NetWare 4
Slackware 1.0
Spring

1994

AIX 4.0, 4.1
RISC OS 3.5
NetBSD 1.0 (First multi-platform release, October 1994)

1995

Digital UNIX (aka Tru64 UNIX)
OpenBSD
OS/390
Plan 9 Second Edition (Commercial second release version was made available to the general public)
Ultrix 4.5 (Last major release)
Windows 95
http://en.wikipedia.org/wiki/Timeline_of_operating_systems
1996 год

Debian 1.1 (Buzz)
Debian 1.2 (Rex)
Windows NT 4.0

P.S.

Иными словами, прошло уже явно более 15 лет, как наступила "эра защищённого режима процессора" :)

В этой связи возникают довольно двоякие чувства:
- с одной стороны, архитектуры 80486 - Pentium Pro (т.е. - до 1996.года) могут вполне серьёзно рассматриваться в качестве целевой архитектуры (вроде - вдохнуть новую жизнь в старые компьютеры, дать возможность поиграться талантливым детям на "хламе" без страха за его сохранность, ...); другое дело, что как раз на них Kolibri OS либо не работает, либо работает так, что ... то же самое что не работает; (даже 500-й селерон с 128 Мб оперативной памяти запустить полноценно не получается , так как i810 из real mode позволяет установить только VGA режимы);VESA 1.2 была бы хоть каким - то утешением ...
- с другой стороны, сама по себе установка графического режима при загрузке операционной системы посредством VESA в real mode выглядит явным анахронизмом (особенно если учесть единственность такой установки графического режима); всё это наводит на мысли, уже высказанные в контексте Kolibri-B http://board.kolibrios.org/viewtopic.php?f=25&t=2085


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 25 posts ]  Go to page Previous 1 2

All times are UTC+03:00


Who is online

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