Re: Massive KGI-0.9 update

2000-01-05 Thread Jos Hulzink

On Sun, 2 Jan 2000, Jon M. Taylor wrote:
>   
>   B. S3 ViRGE
> 
>   a. Detects and maps card and regions
>   b. Sets/mmap()s VGA textmodes
>   c. All registers #defined and struct{}'ed
>   d. VGA registers read from card
>   e. Accels driver skeleton but no code yet
>   f. No MMIO-only mode yet
> 
I'm working on it now, so please contact me if you want to help for the
ViRGE. It would be very nice if we could use CVS for the KGI
tree. Steffen, Jon, can we please go back into CVS please ?

Current state of my code: Clock driver done. Chipsetdriver contains almost
all code, only checking must be done (still figuring out how to determine
the mode, this is quite different form the kgicon drivers...) Ramdac
driver inserted in chipset driver due to lack of register access in the
ramdac driver. Ramdac driver is an empty (but compiling) sceleton.

Is the problem that the KGI-card must be the second card solved already
? A ViRGE can't be a second card (At least not my DX).

Jos



Chipset Docs (was Re: Massive KGI-0.9 update)

2000-01-05 Thread Brian S. Julin

On Wed, 5 Jan 2000, Jon M. Taylor wrote:
> myself any troubles with M$.  Better safe than sorry.  Perhaps this should
> be listed in a FAQ somewhere, since a lot of people have been asking me
> about these ViRGE sources...?

If people want to send me lists of links for documentation, I can
compile it all for the WWW pages developers section.  If you send
something and you're not sure about the terms under which it can
be distributed, please say so and I'll try to find out.

BTW, If Steve or Marcus could apply that patch I sent for the WWW 
site that would be dandy; I'm starting to get emails about the broken
links.

--
Brian




Re: Massive KGI-0.9 update

2000-01-05 Thread Jon M. Taylor

On Wed, 5 Jan 2000, Brian S. Julin wrote:

> On Sun, 2 Jan 2000, Jon M. Taylor wrote:
> > 1. Three new drivers:
> > 
> > A. nVidia TNT2
> 
> Cooincidentally I just switched to a Diamond TNT2 based card, so I
> will try to give it a spin.  

There's not much there yet, but there is enough working I/O code
that it should be easy to add code the handle all MMIO ("control")
registers, not just the six or so DAC MMIO registers that are currently
handled by the driver.  The Riva series card have very logical and
well-organized MMIO register layouts.  And then it should be easy to port
the existing hardware programming code from the KGIcon driver.

I had hoped to have the time to do a lot of refactoring of the
existing KGIcon driver sources in the course of the port to KGI-0.9; the
current code is the quite obfuscated code which came from the XFree86
sources.  It is not very easy to understand, nor is it very "KGI like".  
A lot of the mode setup code is just a predefined series of register
values which are blindly dumped to the hardware.  Ack!  |-<.

But if you don't have a lot of time, it would be far better to
just port the existing code over and wait until later to refactor it.  At
least we'd have a working driver of some kind, and we'll not be seeing any
decend accels performance anyway until nVidia releases their DMA docs.

> What's the deal on TNT2 docs --
> anyone got a link collection for sample code?

AFAIK, all that exists is the KGI code (which is largely older
XFree86 code), the newest XFree86 code, and the GLX code.  I think the GLX
people have non-DMA triangles working at least, so that might help.
 
> > C. IBM VGA (graphics)
> > 
> > a. Skeleton; no working logic yet
> 
> Hmm, quandry -- I'll have to decide whether to make the SVGA the 
> boot display and work on the TNT (thus having to edit the bios settings
> whenever I need to play i82 :), or keep the TNT as the primary display
> and work on VGA... or has the boot display vs KGI issue been solved?

If you mean the BIOS POST problem, no.  KGI-0.9's boot init code
really does need to open a vm86() real-mode box and POST all the video
BIOSes which are present in the system.  And even that will only work on
x86 machines |-/.  XFree86 4.0 will come with x86 real mode emulator code
to get around this problem |-/.

> I suppose we need a vga driver pretty badly.

Yes, so more people can play with KGI-0.9.
 
> > 6. KDB now works with KGI, except for one last bug in the psaux keyboard
> > driver code which causes the KDB command parser to hang in an infinite
> > loop with interrupts disabled |-<.  I suspect a conflict between Steffen's
> > psaux code and KDB, which expects to run with the standard kernel psaux
> > code.  Having KDB available alongsize KGI will make driver development
> > much, much more pleasant and convenient.  Not tommorrow, however |->.
> 
> Have you tried it with the input-linux patch yet?  

Nope.  I only messed around with KDB for a few hours until I
realized that the psaux code was at fault, and then I decided that I
needed to spend the rest of my vacation time working on something more
immediately valuable.

Jon

---
'Cloning and the reprogramming of DNA is the first serious step in 
becoming one with God.'
- Scientist G. Richard Seed



Re: Massive KGI-0.9 update

2000-01-05 Thread Jon M. Taylor

On Wed, 5 Jan 2000, Rodolphe Ortalo wrote:

> BTW Jon, could you send me this 'Win32' driver source that you have ?
> I happen to have ViRGE somewhere and a spare computer now...

http://download.microsoft.com/download/win98/DDK/5/W9X/EN-US/dx5ddk.exe

I just read the license text, and it specifically states that I am
not allowed to redistribute the DDK or any part thereof.  So unfortunately
that means that people who want to examine the sample ViRGE sources will
have to download the whole 7+ megs package themselves from M$, at the URL
given above |-<.  Sorry about that, but I don't want to cause GGI or
myself any troubles with M$.  Better safe than sorry.  Perhaps this should
be listed in a FAQ somewhere, since a lot of people have been asking me
about these ViRGE sources...?

Jon

---
'Cloning and the reprogramming of DNA is the first serious step in 
becoming one with God.'
- Scientist G. Richard Seed



Re: Massive KGI-0.9 update

2000-01-05 Thread Jos Hulzink

Hi

Jon's code contains a little bug, the splash screen doesn't compile. It
will work after applying this patch on top of Jon's. (attachment 1)

Besides, don't enable the kernel debugger in the 2.2.13 kernel, for
compiling will fail. As far as I can see, this has to do with the fact
that the debugger needs some structures that are removed by applying this
patch. A pity, but for now, take it or don't install till we got a real
update.

(Jon, you already recieved this in your personal mailbox)

Jos



*** linux/drivers/kgi/dpy-i386.cWed Jan  5 19:39:30 2000
--- linuxkgi/drivers/kgi/dpy-i386.c Wed Jan  5 19:19:27 2000
***
*** 834,840 
  
  # ifdef CONFIG_KGI_SPLASH
  
!   kgi_boot_fb[boot_pos] = *s | (boot_fb[boot_pos] & 0xFF00);
  
/*  slow down to be able to read early boot messages
**  even when they scroll up.
--- 834,840 
  
  # ifdef CONFIG_KGI_SPLASH
  
!   kgi_boot_fb[kgi_boot_pos] = *s | (kgi_boot_fb[kgi_boot_pos] & 
0xFF00);
  
/*  slow down to be able to read early boot messages
**  even when they scroll up.



Re: Massive KGI-0.9 update

2000-01-05 Thread Brian S. Julin

On Sun, 2 Jan 2000, Jon M. Taylor wrote:
> 1. Three new drivers:
> 
>   A. nVidia TNT2

Cooincidentally I just switched to a Diamond TNT2 based card, so I
will try to give it a spin.  What's the deal on TNT2 docs --
anyone got a link collection for sample code?

>   C. IBM VGA (graphics)
> 
>   a. Skeleton; no working logic yet

Hmm, quandry -- I'll have to decide whether to make the SVGA the 
boot display and work on the TNT (thus having to edit the bios settings
whenever I need to play i82 :), or keep the TNT as the primary display
and work on VGA... or has the boot display vs KGI issue been solved?
I suppose we need a vga driver pretty badly.

> 6. KDB now works with KGI, except for one last bug in the psaux keyboard
> driver code which causes the KDB command parser to hang in an infinite
> loop with interrupts disabled |-<.  I suspect a conflict between Steffen's
> psaux code and KDB, which expects to run with the standard kernel psaux
> code.  Having KDB available alongsize KGI will make driver development
> much, much more pleasant and convenient.  Not tommorrow, however |->.

Have you tried it with the input-linux patch yet?  I've meddled with Steffen's 
psaux code before so I will try and take a look.  Never used KDB before but
it sounds worth learning.  (Sigh, there are still some mainboard timing kinks 
in my current system so things crash occasionally for no reason -- I hope 
that doesn't have me chasing nonexistant bugs.)

>   We are getting very close to this goal now, and I would like to
> once again encourage everyone who is reading this and has any free time to
> pitch in and help tighten down KGI-0.9.

I second this sentiment.  Even if you're just doing it to learn how to 
write kernel code, please play with KGI.

--
Brian



Re: Massive KGI-0.9 update

2000-01-05 Thread Rodolphe Ortalo

Thank you for all this work. Steffen, I guess you will
tell us when you have a KGI distrib. with these things?

Rodolphe

"Jon M. Taylor" wrote:
> I am flying out to the LinuxWorld Expo at New York City at the
> beginning of February with my boss.  We will be speaking at Eric Raymond's
> 'open source device drivers' conference session, which should be
> interesting |->.  What would be even more interesting, however, would be
> if I had a working prototype of KGI-0.9 + driver accels + LibGGI target
> support + GGIMesa 3D accels target support.  In other words, the complete
> top-to-bottom GGI/KGI solution that we have all been working towards for
> years now.
> 
> 
> We are getting very close to this goal now, and I would like to
> once again encourage everyone who is reading this and has any free time to
> pitch in and help tighten down KGI-0.9.  Even if all you have time to do
> is download the latest patches and test them over your lunch break while
> reading Slashdot, that would still be helpful.  Or you could take 30
> minutes and knock together a skeleton driver for your favorite chipset,
> and maybe that will make it easier for the next guy to add some I/O
> routines, and then the next guy can type in some register #defines, etc
> etc etc and before you know it you'll have a real driver on your hands.
> Every little bit helps, folks.  If you really believe in GGI/KGI, as I do,
> then please try to do whatever you can at this critical juncture to help
> it become the success it has the potential to become.
> 

Acknowledged.

So, 2000 may be interesting indeed...

BTW Jon, could you send me this 'Win32' driver source that you have ?
I happen to have ViRGE somewhere and a spare computer now...

R.O.



Massive KGI-0.9 update

2000-01-02 Thread Jon M. Taylor

Hello all!  To usher in the new millenium, I present to you a nice
fat chunk of updates that I have made to KGI-0.9 over the last two weeks,
which I had on vacation.  Steffen is a very very busy man recently with
all his Ph.D work, so I thought I'd do some housecleaning and fixing-up of
things here and there for him.  I'm not quite done yet, tomorrow is the
last day of my vacation and I still have a few loose ends to tie up (see
below).  But I wanted to tell you all about the new stuff tonight, so here
goes:



1. Three new drivers:

A. nVidia TNT2

a. Detects and maps card and reigons
b. Sets/mmap()s VGA textmodes 
c. All registers #defined and struct{}'ed
d. VGA and MMIO DAC registers read from card
e. No accels yet
f. No MMIO-only mode yet

B. S3 ViRGE

a. Detects and maps card and regions
b. Sets/mmap()s VGA textmodes
c. All registers #defined and struct{}'ed
d. VGA registers read from card
e. Accels driver skeleton but no code yet
f. No MMIO-only mode yet

C. IBM VGA (graphics)

a. Skeleton; no working logic yet


None of the drivers does anything but textmodes yet, but now that
I'm finally done with building the driver frameworks, graphics modes
available on both cards should roughly correspond to those available from
the KGIcon drivers, since that's where most of the code will probably come
from |->. If I get the time tomorrow, I'll fill in what I can of the TNT2
modesetting code, but for ViRGE I leave that task to Jos and the other
ViRGE hackers.  I think you guys will find the port to be quite easy.  If
someone else has some free cycles, fleshing out the VGA driver will be
even easier, since there are no accels and part of it is already written
in the existing VGA-text driver.

= 

2. LibKGI.  This is a typical crossplatform libtool library package, with
a bunch of functions and datatypes to enable crossplatform portability and
consistency for the KGI-0.9 functions and abstractions.  These were lifted
out of Steffen's KGI demo code, which still needs to be rewritten to use
the library.  Again, tomorrow |->. The yet-to-be-written LibGGI target for
KGI-0.9 will use LibKGI primitives instead of read/write/mmap/ioctl, which
will be a portability godsend when I start working on a Win32 version of
KGI.

==

3. New accel subsystem with sample skeleton ViRGE accels driver.  No big
deal, just fleshing out the whole build system.  It would have been nice
if I had had a little more time to do some work on the ViRGE accels
myself, but my Dad's computer has the ViRGE card and it has to stay here
in Sacramento while I have to go home to San Jose.  

A hint for anyone working on ViRGE accels: If you didn't already
know, the sample driver that comes with the old DirectX 5 DDK is for a
ViRGE!  It kind of sucks to have to download 7+ megs of DDK just to get
the ViRGE driver code, but that code is a gold mine.  Good stuff.  I
wouldn't have been able to write the ViRGE registers handling code and
#defines without the Win32 code to refer to, since my databook for ViRGE
has apparently wandered off somewhere

==

4. Lots of little cleanups all over the place in the core kernel code:
Makefiles, debugging, stuff like that.

==

5. The Magic SysRq key now works!  Man, it _sucked_ not having that
available when debugging, and it sure is nice to have it back.  And
speaking of debugging...

==

6. KDB now works with KGI, except for one last bug in the psaux keyboard
driver code which causes the KDB command parser to hang in an infinite
loop with interrupts disabled |-<.  I suspect a conflict between Steffen's
psaux code and KDB, which expects to run with the standard kernel psaux
code.  Having KDB available alongsize KGI will make driver development
much, much more pleasant and convenient.  Not tommorrow, however |->.

==

7. A kernel 2.3.31 version of the KGI patches.  I created this a while
ago, but it has the same psaux bug as KDB, as well as a few other oopsen.
I'll bug Steffen to put it in his master tree anyway, so people can hack
at it.  But I am still doing all my KGI-0.9 development under 2.2.13 for
now.

==

8. KGI-0.9 LibGGI target.  No I haven't even started this one yet, but it
won't be difficult at all.  I should be able to get a basic unaccelerated
target working by the end of tomorrow.  This one is #1 on the priority
list for tomorrow.

==

So there you have it.  Hopefully I will be able to wrap up the
LibGGI target and get some graphics modesetting code into the TNT2 driver
tomorrow, so I can wrap this whole episode up cleanly.  I probably won't
be able to do much KGI/GGI coding for a little while since I have several
new projects