* vesafb problem @ 2003-03-27 16:41 Walt H 2003-03-27 19:02 ` Jurriaan 0 siblings, 1 reply; 8+ messages in thread From: Walt H @ 2003-03-27 16:41 UTC (permalink / raw) To: linux-kernel Hello all, I've got a strange problem with my 760MPX system dual proc system. If I try to use vesafb to setup the video on boot, the system will boot fine, but will be unable to display anything on the console. The system appears to be largely unaffacted by any underlying problem, as it is stable after boot and seems to run fine. In looking through logs afterward, I find these suspect messages: mtrr: your CPUs had inconsistent fixed MTRR settings vesafb: abort, cannot ioremap video memory 0x8000000 @ 0xe8000000 I've tried using the rivafb frame buffer, which also does not work. From what I could see in scanning the archives, this appears to possibly be a BIOS issue, however, I'm game to throw nearly anything at it to try and resolve it. Hardware is as follows: Chaintech 7KDD 760MPX chipset motherboard 2 x AMD 2400MP 1 GB Ram Nvidia GeForce 4600 I've tried a vanilla 2.4.20 linux kernel as well as my current 2.4.20-ck patched kernel, both with same result. I've also tried compiling as UP, which has no effect. I'm currently using acpi and apic, however, I've tried disabling both, to no avail. Any other ideas? Please CC me, as I'm not susbscribed. Thanks, -Walt PS. Maybe unrelated, but... I have to pass mem=nopentium as boot param, otherwise I system appears to get corrupted memory issues within short period of time after boot. ie: unable to launch apps, segfaults etc... ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: vesafb problem 2003-03-27 16:41 vesafb problem Walt H @ 2003-03-27 19:02 ` Jurriaan 2003-03-27 19:34 ` Walt H 2003-03-27 22:27 ` Walt H 0 siblings, 2 replies; 8+ messages in thread From: Jurriaan @ 2003-03-27 19:02 UTC (permalink / raw) To: Walt H; +Cc: linux-kernel From: Walt H <waltabbyh@comcast.net> Date: Thu, Mar 27, 2003 at 08:41:54AM -0800 > Hello all, > > I've got a strange problem with my 760MPX system dual proc system. If I > try to use vesafb to setup the video on boot, the system will boot fine, > but will be unable to display anything on the console. The system > appears to be largely unaffacted by any underlying problem, as it is > stable after boot and seems to run fine. In looking through logs > afterward, I find these suspect messages: > > mtrr: your CPUs had inconsistent fixed MTRR settings > vesafb: abort, cannot ioremap video memory 0x8000000 @ 0xe8000000 > > I've tried using the rivafb frame buffer, which also does not work. From > what I could see in scanning the archives, this appears to possibly be a > BIOS issue, however, I'm game to throw nearly anything at it to try and > resolve it. Hardware is as follows: > > Chaintech 7KDD 760MPX chipset motherboard > 2 x AMD 2400MP > 1 GB Ram > Nvidia GeForce 4600 > 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 -- War does not determine who is right -- only who is left. Bertrand Russell Debian (Unstable) GNU/Linux 2.5.65-mm3 4276 bogomips load av: 0.90 0.80 0.61 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: vesafb problem 2003-03-27 19:02 ` Jurriaan @ 2003-03-27 19:34 ` Walt H 2003-03-27 21:39 ` Bongani Hlope 2003-03-27 22:27 ` Walt H 1 sibling, 1 reply; 8+ messages in thread From: Walt H @ 2003-03-27 19:34 UTC (permalink / raw) To: thunder7; +Cc: linux-kernel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: vesafb problem 2003-03-27 19:34 ` Walt H @ 2003-03-27 21:39 ` Bongani Hlope 2003-03-27 22:30 ` Walt H 0 siblings, 1 reply; 8+ messages in thread From: Bongani Hlope @ 2003-03-27 21:39 UTC (permalink / raw) To: Walt H; +Cc: thunder7, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1946 bytes --] On Thu, 27 Mar 2003 11:34:25 -0800 Walt H <waltabbyh@comcast.net> wrote: > Jurriaan wrote: > > > > > I had a similar problem with 1 Gb Ram, and received this answer on the > > linux-kernel mailinglist: <sip> > > 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 <snip> > > This means with "mem=512M", you will probably have about 500M of > > vmalloc space, which is more than enough to ioremap the framebuffer. > > <snip> > > 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 Strange I'm having the same problem, but I only have 256MB of memory and my GeForce 2 only has 32MB. This is what's on my messages file: vesafb: framebuffer at 0xe0000000, mapped to 0xd0807000, size 32768k vesafb: mode is 800x600x16, linelength=1600, pages=3 vesafb: protected mode interface info at c000:c060 vesafb: scrolling: redraw vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0 Looking for splash picture.... found (800x600, 13683 bytes). Console: switching to colour frame buffer device 82x30 fb0: VESA VGA frame buffer device [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: vesafb problem 2003-03-27 21:39 ` Bongani Hlope @ 2003-03-27 22:30 ` Walt H 2003-03-28 3:55 ` Bongani Hlope 0 siblings, 1 reply; 8+ messages in thread From: Walt H @ 2003-03-27 22:30 UTC (permalink / raw) To: Bongani Hlope; +Cc: thunder7, linux-kernel Bongani Hlope wrote: > Strange I'm having the same problem, but I only have 256MB of memory and my GeForce 2 only has 32MB. This is what's on my messages file: > > > vesafb: framebuffer at 0xe0000000, mapped to 0xd0807000, size 32768k > vesafb: mode is 800x600x16, linelength=1600, pages=3 > vesafb: protected mode interface info at c000:c060 > vesafb: scrolling: redraw > vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0 > Looking for splash picture.... found (800x600, 13683 bytes). > Console: switching to colour frame buffer device 82x30 > fb0: VESA VGA frame buffer device > Hmmm. That's a different problem than I'm experiencing. Your system appears to be correctly remapping the framebuffer and switching to it. You don't get a graphical boot? Seems as if you should from the log snippet you posted. -Walt ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: vesafb problem 2003-03-27 22:30 ` Walt H @ 2003-03-28 3:55 ` Bongani Hlope 0 siblings, 0 replies; 8+ messages in thread From: Bongani Hlope @ 2003-03-28 3:55 UTC (permalink / raw) To: Walt H; +Cc: thunder7, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1035 bytes --] On Thu, 27 Mar 2003 14:30:21 -0800 Walt H <waltabbyh@comcast.net> wrote: > Bongani Hlope wrote: > > > Strange I'm having the same problem, but I only have 256MB of memory and my GeForce 2 only has 32MB. This is what's on my messages file: > > > > > > vesafb: framebuffer at 0xe0000000, mapped to 0xd0807000, size 32768k > > vesafb: mode is 800x600x16, linelength=1600, pages=3 > > vesafb: protected mode interface info at c000:c060 > > vesafb: scrolling: redraw > > vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0 > > Looking for splash picture.... found (800x600, 13683 bytes). > > Console: switching to colour frame buffer device 82x30 > > fb0: VESA VGA frame buffer device > > > > Hmmm. That's a different problem than I'm experiencing. Your system > appears to be correctly remapping the framebuffer and switching to it. > You don't get a graphical boot? Seems as if you should from the log > snippet you posted. It is just black until X starts up, and if I try to switch to a virtual terminal I get a corrupt screen [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: vesafb problem 2003-03-27 19:02 ` Jurriaan 2003-03-27 19:34 ` Walt H @ 2003-03-27 22:27 ` Walt H 2003-03-27 23:11 ` Walt H 1 sibling, 1 reply; 8+ messages in thread From: Walt H @ 2003-03-27 22:27 UTC (permalink / raw) To: thunder7; +Cc: linux-kernel > 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 Well, I've answered my own question regarding highmem. Reserving 256MB ram causes high-mem mapped IO to fail. I can have penguins, but no filesystems or no penguins and a useable system. I'm guessing that I could probably turn off HIGHMEM and HIGHMEM-IO and might be able to get penguins back, but at the cost of reduced system performance. I'm not a kernel hacker, but I might just see how bad I can break vesafb to remap only the necessary memory for the requested video mode. Perhaps that would fix the whole thing? -Walt ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: vesafb problem 2003-03-27 22:27 ` Walt H @ 2003-03-27 23:11 ` Walt H 0 siblings, 0 replies; 8+ messages in thread From: Walt H @ 2003-03-27 23:11 UTC (permalink / raw) To: Walt H; +Cc: thunder7, linux-kernel Walt H wrote: > Well, I've answered my own question regarding highmem. Reserving 256MB > ram causes high-mem mapped IO to fail. I can have penguins, but no > filesystems or no penguins and a useable system. I'm guessing that I > could probably turn off HIGHMEM and HIGHMEM-IO and might be able to get > penguins back, but at the cost of reduced system performance. I'm not a > kernel hacker, but I might just see how bad I can break vesafb to remap > only the necessary memory for the requested video mode. Perhaps that > would fix the whole thing? > > -Walt > Well, here's what I've done. I've made a change in video/vesafb.c to change __init vesafb_init to only allocate the amount of memory required for the requested framebuffer (I think). So far, it appears to work fine. I haven't tried many modes yet, but it's worked with what I've thrown at it. Thanks again, The trivial change I made was changing this: video_size = screen_info.lfb_size * 65536; to this: video_size = screen_info.lfb_width * screen_info.lfb_height * video_bpp; -Walt ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2003-03-28 3:44 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-03-27 16:41 vesafb problem Walt H 2003-03-27 19:02 ` Jurriaan 2003-03-27 19:34 ` Walt H 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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox