From owner-freebsd-hackers Wed Aug 20 02:45:12 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id CAA11660 for hackers-outgoing; Wed, 20 Aug 1997 02:45:12 -0700 (PDT) Received: from micron.efn.org (resnet.uoregon.edu [128.223.170.28]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id CAA11655 for ; Wed, 20 Aug 1997 02:45:02 -0700 (PDT) Received: (from mini@localhost) by micron.efn.org (8.8.5/8.8.5) id CAA01864; Wed, 20 Aug 1997 02:45:54 -0700 (PDT) Message-ID: <19970820024553.03988@micron.efn.org> Date: Wed, 20 Aug 1997 02:45:53 -0700 From: Jonathan Mini To: hackers@freebsd.org Subject: MDA and VGA memory overlaps. Reply-To: Jonathan Mini Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.76e X-files: The Truth is Out There. Sender: owner-freebsd-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk I am writing a set of drivers that replaces the syscons driver and manages the console via two devices (and a psuedo device) where basically one device is the display, (write only) the other is the keyboard (read only) and then the psuedo device is a tty the can bind to one of each (display+keyboard pair) and possible more (such as a mouse) to implement a tty. Oh, I should mention that it would also be possible to have a tty which didn't bind a device, in that case it simply would never diplay anything (with no display) or never get input (with no keytboard), etc, etc. Well, my problem is this : The MDA memory mapping lies INSIDE the VGA memory mapping. VGA uses 0xa0000-0xaffff (for graphics) and 0xb8000-0xbffff, (for text) and the MDA uses 0xb0000-0xb0fff. One of the goals of this is to allow a system to be able to have both the mda and vga devices configured, and both successfully probe/attach within the system. My question is : What do I do for memory mapping within the device configuration? As I see it I have three chocies : a) dont' trakc memory mappings within the config, as syscons does. b) don't track memory LENGTH, and give the vga the base of 0xa0000, and assume it's base+0x18000 for the position of the text buffer, c) make two devices for the vga.. one to handle text and one to handle video. I don't even want to think about device contention, although the solution is feasable. :( Right now I am using solution b, since it is simplest to implement. -- Jonathan Mini (j_mini@efn.org) Ingenious Productions Software Development P.O. Box 5693 Eugene, Or 97405