From: Petr V. <VAN...@vc...> - 2000-05-31 19:25:26
|
On 31 May 00 at 14:56, James Simmons wrote: > As for CVS. I refined the fbdev API a little more after much talk about > ideas on how to handle it on the fbdev list. Pretty much everything should > compile and work for you. Their might be some bugs here and their with all > the drivers being cleaned up. I applied a nice patch Petr posted on the > lkml mailing list. If you have SMP machines please test it. I don't have a > SMP machine so I can't. If you are talking about set_cursor() one, I believe that you can trigger it on up too, as scrollback code is handled from irq/bh context - so irqsave in spin_lock_irqsave() takes effect on UP too... But as I do not have UP, I cannot verify my suspect (boot with init=/bin/bash, at prompt type echo > /dev/tty2, switch to tty2 and back (to hide logo) and then do ls -lR / and hold down shift-pgup... if you have non-reentrant accelerated driver, it will die in 10 seconds ...). Petr |
From: James S. <jsi...@ac...> - 2000-06-02 14:42:09
|
On Fri, 2 Jun 2000, Vojtech Pavlik wrote: > On Thu, Jun 01, 2000 at 09:32:26PM -0400, James Simmons wrote: > > > vc_data we can have. With the present console system we have 64 allocated > > vc_data structs for one head. With fbdev you can have up to 256 heads and > > USB up to 127 keyboards. > > Well, no. 127 keyboards on one USB bus. And you can have multiple USB > busses - current VIA chipsets implement two, and there are Opti chips > that implement four USB busses on one chip. Ah :) How do you plan to get around the 256 device limit or does devfs fix that ? I know right now the limit for fbdev is set at 32 but can be easily changed to 256. Just change FB_MAX to 256. So we can have at least 256 complete VTs. Maybe more :) Only if motherboards had enough slots! > If possible, I would prefer not to have any static memory structures for > this. We'll run out of space sooner or later. > > > With a AT or PS/2 keyboard we can a total of 128 > > complete VTs. This means 128 * 64 = 8,192 vc_data structs. This means we > > have to adopt a dynamic approach to allocating VCs. > > Yes. Which in turn means a lot of problems with VT numbering and such. > But these need to be solved nevertheless. The best way to approach this is using alot of COW techniques. Allocate one struct for everything then when one changes its state we allocate a new struct and change the pointer to it. The text buffer will be tricky to handle since they vary from VC to VC. As for multihead. Well I attempted booting today with a Voodoo 3 card and a Matrox Millenium card. The matrox card came up and then it tried to initialize my voodoo card but my system freaked out. It hung and made a loud noise. Has anyone here has made two PCI video cards work at the same time in their system with no problems? Also I had this problem with BIOS with 2 keyboards. I used your trick to make the computer use the PS/2 mouse port for another PS/2 keyboard. It works after boot time. If I plug both in and turn my computer on it confuses my BIOS and just hanges there. Very annoying. After boot time I can insmod a module to see my second keyboard. Some ideas I have been thinking about. Right now the data structs for the console system are a mess. We have both vt_struct and vc_data struct. What I was thinking was to make vt_struct represent the real VT and vc_data represent the virtual consoles. Thus each vc_struct would have a pointer to a vt_struct which would represent the physical virtual terminal. Each vt_struct could hold what is per virtual terminal like consw. Each head would have its own driver. Thus the begining of VC pools. I might as well start working on this now. I will start will a single head system and lay the data structures out and then migrate to a multihead setup. Q: Why did they deprecate a.out support in linux? A: Because a nasty coff is bad for your elf. James Simmons [jsi...@li...] ____/| fbdev/console/gfx developer \ o.O| http://www.linux-fbdev.org =(_)= http://linuxgfx.sourceforge.net U http://linuxconsole.sourceforge.net |
From: Matan Ziv-Av <ma...@sv...> - 2000-06-02 17:05:55
|
On Fri, 2 Jun 2000, James Simmons wrote: > As for multihead. Well I attempted booting today with a Voodoo 3 card > and a Matrox Millenium card. The matrox card came up and then it tried to > initialize my voodoo card but my system freaked out. It hung and made a > loud noise. Has anyone here has made two PCI video cardswork at the same > time in their system with no problems? Also I had this problem with BIOS I have two nVidia cards. XFree86 4.0 does not work at all (just disables both upon starting), but I have no problem running vgacon on the primary display and nvvgacon on the secondary (as well as mdacon on a third video card). XFree86 3.3.6 runs only on the primary, and svgalib (1.9.*) runs on both PCI cards. I did not try fbdev in a long time, but looking at the code it seems to me that it does not support a non primary card. > with 2 keyboards. I used your trick to make the computer use the PS/2 > mouse port for another PS/2 keyboard. It works after boot time. If I plug > both in and turnmy computer on it confuses my BIOS and just hanges there. > Very annoying. After boot time I can insmod a module to see my second > keyboard. I use the second keyboard (on the ps/2 mouse port) with a user mode program I wrote, similar to joy2key. So as far as the kernel is concerned I have one console, but I actually have two. You can see it at http://www.arava.co.il/matan/misc/ps2key-0.1.tar.gz. -- Matan Ziv-Av. ma...@sv... |
From: James S. <jsi...@ac...> - 2000-06-03 02:53:51
|
> I have two nVidia cards. XFree86 4.0 does not work at all (just disables > both upon starting), but I have no problem running vgacon on the primary > display and nvvgacon on the secondary (as well as mdacon on a third > video card). XFree86 3.3.6 runs only on the primary, and svgalib > (1.9.*) runs on both PCI cards. I did not try fbdev in a long time, but > looking at the code it seems to me that it does not support a non > primary card. XFree86 4.0 isn't really designed for multihead. You can with fbdev support more than one display if the fbdev drivers are BIOS/OpenFirmware independent. Some like the matrox, aty and soon aty128 driver are. The program you need to do this is con2fb. It maps a VC range to a specific framebuffer device. Also their are boot commands to map vc to fb devices. Warning!!! If you don't map it right you can cause a oops. I plan it fix this. To do this I really have to do alot of code cleanup. > I use the second keyboard (on the ps/2 mouse port) with a user mode > program I wrote, similar to joy2key. So as far as the kernel is > concerned I have one console, but I actually have two. > You can see it at http://www.arava.co.il/matan/misc/ps2key-0.1.tar.gz. I believe the input layer can do this as well. What other goods do you have? Q: Why did they deprecate a.out support in linux? A: Because a nasty coff is bad for your elf. James Simmons [jsi...@li...] ____/| fbdev/console/gfx developer \ o.O| http://www.linux-fbdev.org =(_)= http://linuxgfx.sourceforge.net U http://linuxconsole.sourceforge.net |
From: Steffen S. <s.s...@ph...> - 2000-06-06 05:53:55
|
James Simmons wrote: > On Fri, 2 Jun 2000, Vojtech Pavlik wrote: > > > On Thu, Jun 01, 2000 at 09:32:26PM -0400, James Simmons wrote: > > > > > vc_data we can have. With the present console system we have 64 allocated > > > vc_data structs for one head. With fbdev you can have up to 256 heads and > > > USB up to 127 keyboards. > > > > Well, no. 127 keyboards on one USB bus. And you can have multiple USB > > busses - current VIA chipsets implement two, and there are Opti chips > > that implement four USB busses on one chip. > > Ah :) How do you plan to get around the 256 device limit or does devfs fix > that ? I know right now the limit for fbdev is set at 32 but can be easily > changed to 256. Just change FB_MAX to 256. So we can have at least 256 > complete VTs. Maybe more :) Only if motherboards had enough slots! As if that would be a serious limitation... From my KGI coding, I can only recommend you to impose no limits by the code you write but live with the limitations of the environment. > As for multihead. Well I attempted booting today with a Voodoo 3 card > and a Matrox Millenium card. The matrox card came up and then it tried to > initialize my voodoo card but my system freaked out. It hung and made a > loud noise. Welcome to the wonderful world of multihead video hardware programming. It's just nice to see the problems I have gone through seem to be inherent to the subject, not my fault :-)). > Has anyone here has made two PCI video cards work at the same > time in their system with no problems? Yes. S3 968 with S3 Trio, S3 968 with PermediaNT, PermediaNT with Permedia2, Permedia2 with Permedia2 (different vendors). As long as your drivers are capable of cold-booting the card... > Also I had this problem with BIOS > with 2 keyboards. I used your trick to make the computer use the PS/2 > mouse port for another PS/2 keyboard. It works after boot time. If I plug > both in and turn my computer on it confuses my BIOS and just hanges there. On my BIOSes this happens only the first time. Steffen _______________________________________________________________________________ Steffen Seeger mailto:se...@ph... |
From: Petr V. <VAN...@vc...> - 2000-06-02 16:39:32
|
On 2 Jun 00 at 10:42, James Simmons wrote: > As for multihead. Well I attempted booting today with a Voodoo 3 card > and a Matrox Millenium card. The matrox card came up and then it tried to > initialize my voodoo card but my system freaked out. It hung and made a > loud noise. Has anyone here has made two PCI video cards work at the same Yes. I had 4 Matroxes (Millennium I, Millennium II, Mystique and G200-AGP) in box for some time... It worked fine (with some fbmem patches which prevented me from doing stupid things). It was 4x matroxfb. I had also running matrox (G200) with ATI-GX (atyfb, vga16fb)... You should try swap your two videocards, making Matrox second head. You should also add 'video=matrox:novga,nobios' to your command line, but you should know that if you do it, it is possible that after reboot Voodo becomes your primary display or machine will not reboot without poweroff at all... Petr Vandrovec van...@vc... |
From: James S. <jsi...@ac...> - 2000-06-03 03:11:03
|
> Yes. I had 4 Matroxes (Millennium I, Millennium II, Mystique and > G200-AGP) in box for some time... It worked fine (with some fbmem > patches which prevented me from doing stupid things). It was 4x matroxfb. Patches :) Post them for us to look at. > I had also running matrox (G200) with ATI-GX (atyfb, vga16fb)... I have a ATI GX but with a strange RAMDAC that's not supported yet. That's later on the list. > You should try swap your two videocards, making Matrox second head. Voodoo is AGP and Matrox is PCI. My BIOS doesn't have any functions to switch the detection. I changed the order in fbmem to get matrox going first. > You should also add 'video=matrox:novga,nobios' to your command line, By default matrox uses the BIOS? > but you should know that if you do it, it is possible that after > reboot Voodo becomes your primary display or machine will not reboot > without poweroff at all... A cool poweroff should fix this right? Q: Why did they deprecate a.out support in linux? A: Because a nasty coff is bad for your elf. James Simmons [jsi...@li...] ____/| fbdev/console/gfx developer \ o.O| http://www.linux-fbdev.org =(_)= http://linuxgfx.sourceforge.net U http://linuxconsole.sourceforge.net |
From: Petr V. <van...@vc...> - 2000-06-03 21:10:32
|
On Fri, Jun 02, 2000 at 11:11:00PM -0400, James Simmons wrote: > > > Yes. I had 4 Matroxes (Millennium I, Millennium II, Mystique and > > G200-AGP) in box for some time... It worked fine (with some fbmem > > patches which prevented me from doing stupid things). It was 4x matroxfb. > > Patches :) Post them for us to look at. You know them... they add FBIOPUT_VT_... and, as side effect, returns -EXDEV when doing FBIOPUT_VSCREENINFO when you should not... ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/multihead.gz. This patch was generated for something like 2.3.49... > > I had also running matrox (G200) with ATI-GX (atyfb, vga16fb)... > > I have a ATI GX but with a strange RAMDAC that's not supported yet. > That's later on the list. If it has CH8398, then I had patches for it... Unfortunately, I stopped maintaining them sometime during last year. Maybe Geert or someone still has them... > > You should also add 'video=matrox:novga,nobios' to your command line, > > By default matrox uses the BIOS? No, but Voodoo may need videobios range for its own BIOS... If system BIOS or pci_enable_device() did not enable I/O or BIOS, then matroxfb will not enable it. But if it is enabled when matroxfb loads, it can disable them... I needed it for running matroxfb in PowerStack PPC, otherwise it crashed with sigbus. > > but you should know that if you do it, it is possible that after > > reboot Voodo becomes your primary display or machine will not reboot > > without poweroff at all... > > A cool poweroff should fix this right? It depends on BIOS and computer hardware. I have one ATX which I have to unplug from power if I boot with nobios... Petr Vandrovec van...@vc... |
From: James S. <jsi...@ac...> - 2000-06-05 02:27:39
|
> ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/multihead.gz. Just wanted people to taek alook at them on the list. > If it has CH8398, then I had patches for it... Unfortunately, I stopped > maintaining them sometime during last year. Maybe Geert or someone still > has them... Nope. It's a ATI 68860. I have a patch from harris but it is old and didn't compile. I didn't bother to intergrate it with the current atyfb driver. I plan to intergrate it. Q: Why did they deprecate a.out support in linux? A: Because a nasty coff is bad for your elf. James Simmons [jsi...@li...] ____/| fbdev/console/gfx developer \ o.O| http://www.linux-fbdev.org =(_)= http://linuxgfx.sourceforge.net U http://linuxconsole.sourceforge.net |
From: Brad D. <Br...@NE...> - 2000-06-03 04:35:04
|
> -----Original Message----- > From: James Simmons [mailto:jsi...@ac...] > > As for multihead. Well I attempted booting today with a Voodoo 3 card > and a Matrox Millenium card. The matrox card came up and then it tried to > initialize my voodoo card but my system freaked out. It hung and made a > loud noise. Has anyone here has made two PCI video cards work at the same > time in their system with no problems? Also I had this problem with BIOS I'm using atyfb (Mach64 GT) and aty128fb (Rage128 Pro). Both drivers compiled in: My bios allows me to choose which card gets booted: Boot atyfb: The Mach64 comes up fine and when the Rage128 tries to initialize, it says freeing nonexistent IO 0x9000 or something similar (0x9000 is the IO port address of the Rage128). The Rage128 never makes it through init, but the system works fine as would expect with 1 video card. Wasn't there some discussion about pci_enable_device() and multihead? I'll check the archives. Boot aty128fb: The Rage128 comes up fine. When the Mach64 starts detection all hell breaks loose. I get alternating green and black horizontal bars on the Mach64 and the system hardlocks. Modular: Boot atyfb and modular aty128fb: Mach64 comes up normal. insmod aty128fb yields nothing. lsmod simply says unused. I've probably overlooked something in the code -- I rarely try module. Boot aty128fb and modular atyfb: Rage128 comes up normal. insmod atyfb is very bad. system hardlocks. If I first softboot the Mach64 before insmoding it, I have some success. The system is a bit touchy and will eventually hardlock (races?). That's my $.02. PS - Keep a camera handy in case things start smoking... I want pictures for the web site ;). "When video cards attack". Brad Douglas br...@ne... http://www.linux-fbdev.org |
From: James S. <jsi...@ac...> - 2000-06-01 17:49:21
|
> If you are talking about set_cursor() one, I believe that you can trigger > it on up too, as scrollback code is handled from irq/bh context - so > irqsave in spin_lock_irqsave() takes effect on UP too... But as I do not > have UP, I cannot verify my suspect (boot with init=/bin/bash, at prompt > type echo > /dev/tty2, switch to tty2 and back (to hide logo) and then > do ls -lR / and hold down shift-pgup... if you have non-reentrant accelerated > driver, it will die in 10 seconds ...). I tried it with your matroxfb on a 2.2.14 kernel but that is accelerated. I had no problems. I haven't tried it yet with no acceleration yet. Has anyone else tried this. Q: Why did they deprecate a.out support in linux? A: Because a nasty coff is bad for your elf. James Simmons [jsi...@li...] ____/| fbdev/console/gfx developer \ o.O| http://www.linux-fbdev.org =(_)= http://linuxgfx.sourceforge.net U http://linuxconsole.sourceforge.net |