linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jon Smirl <jonsmirl@yahoo.com>
To: Otto Solares <solca@guug.org>
Cc: linux-fbdev-devel@lists.sourceforge.net
Subject: Re: ioremap problem on highmem
Date: Mon, 13 Oct 2003 17:46:51 -0700 (PDT)	[thread overview]
Message-ID: <20031014004651.36307.qmail@web14914.mail.yahoo.com> (raw)
In-Reply-To: <20031014001445.GC454@guug.org>

Fix is not that simple. There is a basic conflict with mapping framebuffers
into the kernel address space and the kernel's need of that address space for
other purposes. Drivers need to be rewritten to do one of:

1) Map the frame buffer into the kernel address space a few pages at a time.
This is how kernel high mem support works.
2) Map the minimal amount of address space necessary for visible framebuffer.
This is what the VGA driver does. It works most of the time.
3) Use a user space program to map the framebuffer and do the drawing.
4) Use the reserve= to reserve the needed address space. This boots performance
sensitive page tables into highmem while keeping your slow framebuffer in
lowmem.

It is only fbconsole that uses the kernel mapped framebuffer. If you aren't
using fbconsole you could just delete the ioremap code from the framebuffer
driver. Another quick fix would be to eliminate the framebuffer ioremaps from
each driver and instead do it in the fbconsole driver. This would let people
still load fb drivers and not load fbconsole.

The more I learn about fbconsole the more I think it is a bad idea. This is no
comment on the skill of the people writing it, I just think the whole concept
of mapping the framebuffer in to kernel space needs to be eliminated. There is
only 1GB of kernel space and it make no sense to chew up 128MB or 256MB of it
mapping a framebuffer just to get a penguin at boot. I do think penguin is
cute, but not cute enough to waste kernel address space on.

Right now I am exploring this alternative:
1) System boots using VGA mode or whatever BIOS provides.
2) DRI drivers are loaded. They have been modified to use PCI subsys to find
hardware.
3) Run a console program. This program uses a user level lib (from standalone
mesa) to switch to graphics mode and draw the console. Like gnome-terminal does
under X.
4) Run X or standalone mesa on another VT. Everything shares DRI driver for
hardware interface.

The advantage to this is that there is a single hardware driver in the system -
the DRI one; the fb driver is gone. The only loss I see is no penguin at boot. 

Standalone Mesa is using the fb driver to 1) find the hardware, 2) change
modes. Under the new system the DRI driver finds the hardware. Mode
setting/EDID is done with a user level library - like X does. Once get this
finished Standalone Mesa won't need FB any more.


=====
Jon Smirl
jonsmirl@yahoo.com

__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php

  reply	other threads:[~2003-10-14  0:46 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-13 19:18 ioremap problem on highmem Otto Solares
2003-10-13 20:30 ` Jon Smirl
2003-10-14  0:14   ` Otto Solares
2003-10-14  0:46     ` Jon Smirl [this message]
2003-10-14  1:56       ` Otto Solares
2003-10-14  4:51         ` Jon Smirl
2003-10-15  1:13           ` Otto Solares
2003-10-15  1:37             ` Jon Smirl
2003-10-15 23:11             ` James Simmons
2003-10-16 10:15               ` Benjamin Herrenschmidt
2003-10-16 16:56                 ` Otto Solares
2003-10-17 16:58                   ` James Simmons
2003-10-14  8:30         ` Geert Uytterhoeven
2003-10-14  8:34       ` Geert Uytterhoeven
2003-10-14 14:42         ` Jon Smirl
2003-10-14 17:25           ` James Simmons
2003-10-14 17:23         ` James Simmons
2003-10-14 16:49       ` James Simmons
2003-10-14 17:59         ` Jon Smirl
2003-10-15 23:17           ` James Simmons
2003-10-16  0:34             ` Jon Smirl
2003-10-16 10:12               ` Benjamin Herrenschmidt
2003-10-16  0:43             ` I2C standalone vs integrated? Jon Smirl
2003-10-16 10:14               ` Benjamin Herrenschmidt
2003-10-17 16:43                 ` James Simmons
2003-10-16 10:09             ` ioremap problem on highmem Benjamin Herrenschmidt
2003-10-15 16:46       ` Benjamin Herrenschmidt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20031014004651.36307.qmail@web14914.mail.yahoo.com \
    --to=jonsmirl@yahoo.com \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=solca@guug.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).