#
015b4086 |
|
20-Oct-2021 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
vesa: live mode patching, nvidia version. Some improvements to allow setting 8, 15, 16 and 32bit modes, and detect the correct mode number after patching the BIOS automatically, instead of hardcoding it. Also move the patching code to a separate file. Fixes #10570. Change-Id: I920f448b59ad7373cb8595d92ce3fa52324be67e Reviewed-on: https://review.haiku-os.org/c/haiku/+/4629 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
1005a276 |
|
19-Oct-2021 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
vesa: live BIOS patching for Intel video devices The VESA standard does not define any way for software to set a custom video mode, which means normally we would be constrained to whichever modes the video card manufacturer decided to provide. However, since we run the BIOS in an emulated environment, it is possible (and even quite easy) to patch it and inject any video mode we want, provided we know the format to use and where to put the info in. This approach was used in the NewOS VESA driver, as well as in 915resolution (a tool that predates the availability of native drivers for Linux for Intel videocards). Later on it was also used in Chameleon and Clover, bootloaders that are used for hackintoshes (running MacOS on unsupported hardware). This commit implements full support for Intel cards only, AMD and NVidia will be added later (but there is preliminary code to detect them) Change-Id: I2c528ba18b3863f486da694860a10761efcbfb3f Reviewed-on: https://review.haiku-os.org/c/haiku/+/4624 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
fc53a631 |
|
12-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* On some systems, switching the resolution in VESA mode during runtime did not work and gave a "General System Error". Jan Kloetzke provided a temporary work around, the area which the BIOS can access is enlarged, although according to specs, this should not be needed. * After switching modes in the VESA driver, turn on write combining for the frame buffer area. This gives a huge speed boost for all graphics drawing. Only people for which mode changes did not work were using the full speed since the VESA mode switching support was added. * Cleanup in the Jamfile, some header directories were included multiple times. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26395 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d16ddc57 |
|
03-Jun-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The boot loader now passes on its EDID info to the kernel, and that will be put into a boot_item in frame_buffer_console_init(). * The VESA driver now supports gettings the EDID information as well; this is necessary now, since the app_server no longer takes over the mode the boot loader had chosen. * Note, we might want to do this via vm86 instead in the future, and remove the kernel part again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25786 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c6f7795 |
|
19-Dec-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved VGA planar mode blitting into the VESA kernel driver. * In grayscale mode, the AccelerantHWInterface now sets the palette correctly. * HWInterface now has a fVGADevice set by AccelerantHWInterface which will be used to talk to the VESA driver. * Completed planar blitting for all 4 planes; we now have a perfect 16 color grayscale mode when you choose "Standard VGA mode" in the boot loader with an unsupported graphics card (such as in Qemu). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19567 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c49e0c68 |
|
18-Sep-2006 |
Jérôme Duval <korli@users.berlios.de> |
dropped a useless arg of the KernelAddon rule, hope I don't mess anything git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18879 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44d56753 |
|
16-Aug-2006 |
Jérôme Duval <korli@users.berlios.de> |
KernelAddon and KernelStaticLibrary don't include kernel, kernel arch, boot platform headers anymore. Fixed the build of most of targets using these rules. Though the build can be still broken, feel free to fix. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
338b8dc3 |
|
29-Oct-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged changes from branch build_system_redesign at revision 14573. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
93ee2104 |
|
08-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added very basic VESA driver. Will be improved in the future (right now it doesn't really do anything, it just passes the initial frame buffer on to the app_server). While it seems to work on real hardware (if you set the video mode to 640x480x32, app_server restriction), under Bochs, the app_server crashes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12273 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fc53a631498c405f461d24a7e057fb826c41eb69 |
|
12-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* On some systems, switching the resolution in VESA mode during runtime did not work and gave a "General System Error". Jan Kloetzke provided a temporary work around, the area which the BIOS can access is enlarged, although according to specs, this should not be needed. * After switching modes in the VESA driver, turn on write combining for the frame buffer area. This gives a huge speed boost for all graphics drawing. Only people for which mode changes did not work were using the full speed since the VESA mode switching support was added. * Cleanup in the Jamfile, some header directories were included multiple times. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26395 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d16ddc579cc378b230e7782b82e6007063d1442d |
|
03-Jun-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The boot loader now passes on its EDID info to the kernel, and that will be put into a boot_item in frame_buffer_console_init(). * The VESA driver now supports gettings the EDID information as well; this is necessary now, since the app_server no longer takes over the mode the boot loader had chosen. * Note, we might want to do this via vm86 instead in the future, and remove the kernel part again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25786 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0c6f77951ed2366737266cae1bf0c2f98842e6f5 |
|
19-Dec-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved VGA planar mode blitting into the VESA kernel driver. * In grayscale mode, the AccelerantHWInterface now sets the palette correctly. * HWInterface now has a fVGADevice set by AccelerantHWInterface which will be used to talk to the VESA driver. * Completed planar blitting for all 4 planes; we now have a perfect 16 color grayscale mode when you choose "Standard VGA mode" in the boot loader with an unsupported graphics card (such as in Qemu). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19567 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c49e0c68b013ebe90a3a48d5e98b5788ba2e6542 |
|
18-Sep-2006 |
Jérôme Duval <korli@users.berlios.de> |
dropped a useless arg of the KernelAddon rule, hope I don't mess anything git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18879 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44d5675324128d940518aaf7f2096efe9965db3a |
|
16-Aug-2006 |
Jérôme Duval <korli@users.berlios.de> |
KernelAddon and KernelStaticLibrary don't include kernel, kernel arch, boot platform headers anymore. Fixed the build of most of targets using these rules. Though the build can be still broken, feel free to fix. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
338b8dc301721b1f472e8297a898d4eaa2f2ee3a |
|
29-Oct-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged changes from branch build_system_redesign at revision 14573. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
93ee21046d225f4f58eeeade87a937b8c10da6f1 |
|
08-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added very basic VESA driver. Will be improved in the future (right now it doesn't really do anything, it just passes the initial frame buffer on to the app_server). While it seems to work on real hardware (if you set the video mode to 640x480x32, app_server restriction), under Bochs, the app_server crashes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12273 a95241bf-73f2-0310-859d-f6bbb57e9c96
|