I was wondering...

Hi!

I’m giving a look at graphic DDK, as I need to modify it so that it runs
correctly on a system that has absolutely no VESA compliant BIOS.

And I’m a bit lost!

I understood I must provide functions for mode determination and mode
switching but… which one?

It seems to me I must replace every functions that calls any vesa_* function
(those in vesa.h, that cannot be found in any C file in the DDK and that are
probably provided in a lib elsewhere and not supported on my hardware (chips
69000 without VESA bios). But what kind of info is relevant?

concerning supported modes (for example)
If I look at the doc it says : you must return the supported modes. OK I
know them (normal and vesa equivalent ones!).
If I look at the code :
if (vesa_InfoBlock(adp->vbios, &VIB) != NULL) {
/* Get the list of VESA modes */
if (vesa_ModeList(adp->vbios, &VIB, VModes) == NULL)
return -1;
etc…
Wow : all undocumented functions : what do they do?

Anyway the important line is :
list[j] = VModes _| 0x4000;
OK I understand I must fill in the list with supported modes but why ORing
with 0x4000?
\

By the way OFF topic question : what is the difference between
for (i = 0; i < DISP_MAX_MODES; i++) {
if (i < index)
continue;…
and
for (i = index; i < DISP_MAX_MODES; i++) {


The first code is in the driver and I could’nt see any difference.
-----------------------------

If I change this and answer something like list[1] = 0x50; (a supported
mode!)

And of course if I change every functions using the mode numbers (so that to
understand 0x50 as a mode)

Will it work?

Please help!!!

Didier HARRANG

BCI S.A.
3, rue du Velay, CE1740
Petite Montagne Sud
91017 EVRY Cedex, FRANCE
Tel : 33 (0)1 69 11 30 00
Fax : 33 (0)1 60 86 30 64
------------------------------------------------_

Didier Harrang <didier.harrang@bcisa.com> wrote:

Hi!

I’m giving a look at graphic DDK, as I need to modify it so that it runs
correctly on a system that has absolutely no VESA compliant BIOS.

And I’m a bit lost!

I understood I must provide functions for mode determination and mode
switching but… which one?

It seems to me I must replace every functions that calls any vesa_* function
(those in vesa.h, that cannot be found in any C file in the DDK and that are
probably provided in a lib elsewhere and not supported on my hardware (chips
69000 without VESA bios). But what kind of info is relevant?

I assume you plan to modify the chips_hiqv driver so that it
does not need the BIOS. The file mode.c is the only one you should
have to modify. You are correct in that you need to replace all the
calls to vesa_* with something else. What you will probably end
up with is a “direct” mode-switcher, i.e. one that programs the
display registers directly, with no BIOS dependencies. You can
look at one of the other sample driver (banshee or i810) for
an example of a direct mode-switcher.

The vesa_* functions are included in the DDK, they are located in
the disputil lib.

Dave

Thank you.

I’ll give a look.

Didier.

David Donohoe <ddonohoe@qnx.com> a écrit dans le message :
9p21ge$1um$1@nntp.qnx.com

Didier Harrang <> didier.harrang@bcisa.com> > wrote:
Hi!

I’m giving a look at graphic DDK, as I need to modify it so that it runs
correctly on a system that has absolutely no VESA compliant BIOS.

And I’m a bit lost!

I understood I must provide functions for mode determination and mode
switching but… which one?

It seems to me I must replace every functions that calls any vesa_*
function
(those in vesa.h, that cannot be found in any C file in the DDK and that
are
probably provided in a lib elsewhere and not supported on my hardware
(chips
69000 without VESA bios). But what kind of info is relevant?

I assume you plan to modify the chips_hiqv driver so that it
does not need the BIOS. The file mode.c is the only one you should
have to modify. You are correct in that you need to replace all the
calls to vesa_* with something else. What you will probably end
up with is a “direct” mode-switcher, i.e. one that programs the
display registers directly, with no BIOS dependencies. You can
look at one of the other sample driver (banshee or i810) for
an example of a direct mode-switcher.

The vesa_* functions are included in the DDK, they are located in
the disputil lib.

Dave