From: Walt H <waltabbyh@comcast.net>
To: thunder7@xs4all.nl
Cc: linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: vesafb problem
Date: Thu, 27 Mar 2003 11:34:25 -0800 [thread overview]
Message-ID: <3E835241.9060407@comcast.net> (raw)
In-Reply-To: <20030327190222.GA4060@middle.of.nowhere>
Jurriaan wrote:
>
> I had a similar problem with 1 Gb Ram, and received this answer on the
> linux-kernel mailinglist:
>
> ======================================================
> To: thunder7@xs4all.nl
> Cc: linux-kernel@vger.kernel.org
> Subject: Re: 2.5.64: ioremap_nocache() failes with 1 gigabyte memory, works with 512 Mb?
> From: Roland Dreier <roland@topspin.com>
> Date: 14 Mar 2003 00:15:26 -0800
>
> thunder7> Now I added some information to the printk, and I now
> thunder7> know:
>
> thunder7> fb: Can't remap 3Dfx Voodoo5 register area. (start d0000000 length 8000000)
>
> Length 0x8000000 means the driver is trying to ioremap a 128MB.
>
> thunder7> If I boot my kernel with 'mem=512M' I can use the
> thunder7> framebuffer just fine (well, it doesn't work and writes
> thunder7> funky patters to the screen, but at least
> thunder7> ioremap_nocache() works fine).
>
> thunder7> What is the reason ioremap_nocache() fails? Is this
> thunder7> something that can be prevented? I am not entirely clear
> thunder7> on what is happening anyway (real memory, virtual
> thunder7> memory, nocache-memory, io-memory - a little bit above
> thunder7> my head :-) ).
>
> ioremap_nocache() uses "vmalloc space". The kernel has some address
> space it uses for kernel virtual memory mappings -- that is, for
> mapping vmalloc()'ed memory and ioremap()'ed memory.
>
> On i386, the kernel uses whatever part of the top 1 GB of address space
> is not used for directly mapped RAM (aka lowmem). (There are a few
> other things that take some address space but that is approximately
> true).
>
> This means with "mem=512M", you will probably have about 500M of
> vmalloc space, which is more than enough to ioremap the framebuffer.
>
> With the full 1 GB of memory, you might think that there would be no
> vmalloc space available at all. However, <asm/page.h> defines a
> constant VMALLOC_RESERVE (which by default is 128 MB), and the kernel
> makes sure that there is at least this much vmalloc space available.
> However, by the time you load the module, at least some of this space
> has been consumed, so the ioremap fails. (If nothing else uses
> vmalloc space, just loading a module will call vmalloc() to get space
> for the module to be loaded into!)
>
> One not very good way for you to proceed would be to change the
> definition of VMALLOC_RESERVE from (128 << 20) to something like (256
> << 20), which should leave the driver room to ioremap the framebuffer.
> This is a little ugly. However, I don't see why a framebuffer driver
> would need to ioremap _all_ of a video card's memory -- so a better
> solution would be to fix the driver to only ioremap what it needs to.
>
> Best,
> Roland
> ======================================================
>
> To see if this is it, booting with mem=512M would be a good test.
>
> Kind regards,
> Jurriaan
Thanks for the reply. That is indeed what is doing it. When I added
mem=512M, I had two smiling penguins on boot :) My vid card does have
128MB Ram, but I also tend to agree that I'm not sure that the
framebuffer needs to remap *all* of its memory. But, for now, I think
I'll add the hack (256 << 20) to make it work. Any ideas if this might
have unforseen bad effects? Might it screw up highmem I/O? Thanks again,
-Walt
next prev parent reply other threads:[~2003-03-27 19:24 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-27 16:41 vesafb problem Walt H
2003-03-27 19:02 ` Jurriaan
2003-03-27 19:34 ` Walt H [this message]
2003-03-27 21:39 ` Bongani Hlope
2003-03-27 22:30 ` Walt H
2003-03-28 3:55 ` Bongani Hlope
2003-03-27 22:27 ` Walt H
2003-03-27 23:11 ` Walt H
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=3E835241.9060407@comcast.net \
--to=waltabbyh@comcast.net \
--cc=linux-kernel@vger.kernel.org \
--cc=thunder7@xs4all.nl \
/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