History log of /haiku/src/system/boot/platform/openfirmware/video.cpp
Revision Date Author Comments
# a27d19ee 01-Jan-2021 PulkoMandy <pulkomandy@pulkomandy.tk>

openfirmware: move text cursor to top of screen before showing splashscreen

If we need to display some text during boot, it's nicer to have it on
top of the splashscreen, rather than scroll the display down.

Change-Id: I897073d31120ec3eebd2edc4632960db7eb7977d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3596
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# bba45f64 30-Dec-2020 PulkoMandy <pulkomandy@pulkomandy.tk>

openfirmware: fixup video driver for 64bit

We now have a bootsplash on sparc!

Change-Id: I583a3015a86618292088fe4379f548467d30ec4f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3572
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 95958839 27-Oct-2019 PulkoMandy <pulkomandy@pulkomandy.tk>

openfirmware: more fixes for 64bit systems.

Gets call-method working for sparc, and fix more places where we
accidentally truncate 64bit values or sign-extend 32 bit ones.

Change-Id: Ic79c55ffa8d2b475858def1639004412f17dd0c1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1986
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 04cbc258 02-Aug-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Use fast clearing of visible screen for splash

memset uses rep stosb on x86 during boot, with memory
not set to write-combining, which makes it slow.

Instead we do aligned writes of 2 x four bytes at once.
Only clear the minimum of size and width * height * 4
UEFI framebuffer size can be huge, upto 512MB here,
and rep stosb seems to be around 25-30MB/s

This is written as generic as possible to work on
old compilers and different platforms, without
expecting boot memset to be optimized.

This makes it almost unnoticable compared to not
clearing.


# 15db6949 01-Aug-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Don't clear video mem on UEFI, efi video mode refactor

Writes to videomem is slow without memory remapping
Can't do the mapping without leaving UEFI, so skipping
the clear. Afaict it should always be cleared by UEFI

This saves ~10 seconds of booting on my machine
(1920*1080*4 bytes)

EFI video mode (should have been it's own commit)
* Only do strcmp if there are enough params
* break when found


# 62d36f98 22-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Removed the addr_t conversion operators from FixedWidthPointer which makes comparison against NULL work properly.


# d8efc6ca 21-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Changes to kernel_args to make it identical for x86 and x86_64.

* Added a FixedWidthPointer template class which uses 64-bit storage to hold
a pointer. This is used in place of raw pointers in kernel_args.
* Added __attribute__((packed)) to kernel_args and all structures contained
within it. This is necessary due to different alignment behaviour for
32-bit and 64-bit compilation with GCC.
* With these changes, kernel_args will now come out the same size for both
the x86_64 kernel and the loader, excluding the preloaded_image structure
which has not yet been changed.
* Tested both an x86 GCC2 and GCC4 build, no problems caused by these changes.


# f5aaa387 21-Aug-2010 Andreas Färber <andreas.faerber@web.de>

boot_loader_openfirmware: Fetch EDID

Read the EDID from OF and pass it on to the kernel.

Last part of ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36ee6a87 21-Aug-2010 Andreas Färber <andreas.faerber@web.de>

boot_loader_openfirmware: Add frame buffer support

Use the OF "screen" device alias to query frame buffer properties. Postpone
the opening of the device as far as possible as it erases the screen output.
Initialize the kernel arguments and hook into generic code to display the
splash screen.

Like on x86, the frame buffer is enabled by default. To disable it, either
press ESC during early boot or, for debugging, make sure in start.cpp that
platform_boot_options() has the BOOT_OPTION_DEBUG_OUTPUT flag set.

Resolves ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38306 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0dfe97ad 21-Aug-2010 Andreas Färber <andreas.faerber@web.de>

boot_loader_openfirmware: Preparations for frame buffer

Initialize the frame buffer as not enabled. Add checks for this condition
and for the debug boot option to the video functions.

Code is adapted from bios_ia32 platform. Part of ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38299 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f0a8328 21-Aug-2010 Andreas Färber <andreas.faerber@web.de>

boot_loader_openfirmware: Coding style fixes

Rearrange copyright notice, reorder #includes.

No functional changes yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38298 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a3fa7d3 19-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

* Followed Ingo's suggestion and removed the now superfluous "length" correction
in ConsoleHandle::WriteAt().
* Updated license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15581 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5af32e75 13-Apr-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed src/kernel to src/system.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12359 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 62d36f98331067e472188f6c020c2ccd808f48cf 22-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Removed the addr_t conversion operators from FixedWidthPointer which makes comparison against NULL work properly.


# d8efc6caf6babe278c48e8aa3277376fb68ff455 21-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Changes to kernel_args to make it identical for x86 and x86_64.

* Added a FixedWidthPointer template class which uses 64-bit storage to hold
a pointer. This is used in place of raw pointers in kernel_args.
* Added __attribute__((packed)) to kernel_args and all structures contained
within it. This is necessary due to different alignment behaviour for
32-bit and 64-bit compilation with GCC.
* With these changes, kernel_args will now come out the same size for both
the x86_64 kernel and the loader, excluding the preloaded_image structure
which has not yet been changed.
* Tested both an x86 GCC2 and GCC4 build, no problems caused by these changes.


# f5aaa387bd39ae183938bd73b9620b1b67fffe7b 21-Aug-2010 Andreas Färber <andreas.faerber@web.de>

boot_loader_openfirmware: Fetch EDID

Read the EDID from OF and pass it on to the kernel.

Last part of ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36ee6a873142e9a493ebf52c9d050afce5d7d147 21-Aug-2010 Andreas Färber <andreas.faerber@web.de>

boot_loader_openfirmware: Add frame buffer support

Use the OF "screen" device alias to query frame buffer properties. Postpone
the opening of the device as far as possible as it erases the screen output.
Initialize the kernel arguments and hook into generic code to display the
splash screen.

Like on x86, the frame buffer is enabled by default. To disable it, either
press ESC during early boot or, for debugging, make sure in start.cpp that
platform_boot_options() has the BOOT_OPTION_DEBUG_OUTPUT flag set.

Resolves ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38306 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0dfe97ade17f42901a3c669b415fe0ead27b5963 21-Aug-2010 Andreas Färber <andreas.faerber@web.de>

boot_loader_openfirmware: Preparations for frame buffer

Initialize the frame buffer as not enabled. Add checks for this condition
and for the debug boot option to the video functions.

Code is adapted from bios_ia32 platform. Part of ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38299 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f0a83281f024f7104c855ac1791354b89f1880b 21-Aug-2010 Andreas Färber <andreas.faerber@web.de>

boot_loader_openfirmware: Coding style fixes

Rearrange copyright notice, reorder #includes.

No functional changes yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38298 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a3fa7d368448440e485ce03db59e25625b08c9c 19-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

* Followed Ingo's suggestion and removed the now superfluous "length" correction
in ConsoleHandle::WriteAt().
* Updated license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15581 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5af32e752606778be5dd7379f319fe43cb3f6b8c 13-Apr-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed src/kernel to src/system.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12359 a95241bf-73f2-0310-859d-f6bbb57e9c96