Page 2 of 2

Re: Can't use VESA linear framebuffer in long mode?

Posted: Wed Jun 27, 2012 6:28 am
by Gigasoft
A BIOS won't set up MMIO regions so that they conflict with system RAM or with each other. Every byte of system RAM is accessible through the addresses reported by the BIOS memory map (unless it's assigned to some other function). A0000-FFFFF is an exception, but access to this area of RAM can (usually) be restored if the MMIO regions sharing these addresses are not needed.

Re: Can't use VESA linear framebuffer in long mode?

Posted: Wed Jun 27, 2012 6:35 am
by scippie
Gigasoft wrote:A BIOS won't set up MMIO regions so that they conflict with system RAM or with each other. Every byte of system RAM is accessible through the addresses reported by the BIOS memory map (unless it's assigned to some other function). A0000-FFFFF is an exception, but access to this area of RAM can (usually) be restored if the MMIO regions sharing these addresses are not needed.
Ok thanks.

By the way, I was developing my first OS in the 80's (I was 12) so I know about the >= A0000 region :-)

Re: Can't use VESA linear framebuffer in long mode?

Posted: Wed Jun 27, 2012 6:53 am
by Gigasoft
scippie wrote:So you mean, the motherboard will give you an address like 0xC000000, but will actually internally be using a position above the memory you have installed?
You can't rely on this. What if it's a laptop and the user turns it upside down while the power is on? Then everything that was at the top will now be at the bottom. It's also possible that the motherboard and the graphics adapter are installed perfectly in line with each other, in which case neither is above the other.
So if you have a 32-bit system, install 4GiB on it, you will not be able to fully use it? (is that why windows only supports 3.? GiB on 32-bit?)
Windows has supported the use of more than 4GB for a long time, but it requires enabling PAE by editing the boot.ini file.

Re: Can't use VESA linear framebuffer in long mode?

Posted: Wed Jun 27, 2012 6:57 am
by scippie
Gigasoft wrote:What if it's a laptop and the user turns it upside down while the power is on?
Lol...

Re: Can't use VESA linear framebuffer in long mode?

Posted: Wed Jun 27, 2012 9:12 am
by Owen
Most BIOSes will leave a 512MB+ hole immediately below 4GB in which to map device MMIO spaces. Any RAM which would normally be located in this space is relocated above 4GB.
Gigasoft wrote:
So if you have a 32-bit system, install 4GiB on it, you will not be able to fully use it? (is that why windows only supports 3.? GiB on 32-bit?)
Windows has supported the use of more than 4GB for a long time, but it requires enabling PAE by editing the boot.ini file.
PAE has been disabled since XP SP2, because most of the drivers out there don't work under it