[haiku-commits] r37999 - haiku/trunk/src/system/boot/arch/arm

  • From: revol@xxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 10 Aug 2010 12:01:54 +0200 (CEST)

Author: mmu_man
Date: 2010-08-10 12:01:54 +0200 (Tue, 10 Aug 2010)
New Revision: 37999
Changeset: http://dev.haiku-os.org/changeset/37999

Modified:
   haiku/trunk/src/system/boot/arch/arm/arch_video_920.cpp
Log:
Attempt to use the framebuffer already set up by U-Boot... doesn't work yet 
though.


Modified: haiku/trunk/src/system/boot/arch/arm/arch_video_920.cpp
===================================================================
--- haiku/trunk/src/system/boot/arch/arm/arch_video_920.cpp     2010-08-10 
10:00:16 UTC (rev 37998)
+++ haiku/trunk/src/system/boot/arch/arm/arch_video_920.cpp     2010-08-10 
10:01:54 UTC (rev 37999)
@@ -41,18 +41,43 @@
 #if BOARD_CPU_ARM920T
 //     #pragma mark -
 
+extern void *gFrameBufferBase;
 
 status_t
 arch_probe_video_mode(void)
 {
-       return B_ERROR;
+       gKernelArgs.frame_buffer.depth = 16;
+       gKernelArgs.frame_buffer.width = 1024;
+       gKernelArgs.frame_buffer.height = 768;
+       gKernelArgs.frame_buffer.bytes_per_row = gKernelArgs.frame_buffer.width 
* 2;
+       gKernelArgs.frame_buffer.physical_buffer.size = 
gKernelArgs.frame_buffer.width
+               * gKernelArgs.frame_buffer.height
+               * gKernelArgs.frame_buffer.depth / 8;
+
+#if 0
+       if (!gFrameBufferBase) {
+               int err = platform_allocate_region(&gFrameBufferBase, 
gKernelArgs.frame_buffer.physical_buffer.size, 0, false);
+               if (err < B_OK) return err;
+               gKernelArgs.frame_buffer.physical_buffer.start = 
(addr_t)gFrameBufferBase;
+               dprintf("video framebuffer: %p\n", gFrameBufferBase);
+       }
+#else
+       gFrameBufferBase = (void *)0x88000000;
+       gKernelArgs.frame_buffer.physical_buffer.start = 
(addr_t)gFrameBufferBase;
+#endif
+
+       dprintf("video mode: %ux%ux%u\n", gKernelArgs.frame_buffer.width,
+               gKernelArgs.frame_buffer.height, 
gKernelArgs.frame_buffer.depth);
+
+       gKernelArgs.frame_buffer.enabled = true;
+       return B_OK;
 }
 
 
 status_t
 arch_set_video_mode(int width, int height, int depth)
 {
-       return B_ERROR;
+       return B_OK;
 }
 
 


Other related posts:

  • » [haiku-commits] r37999 - haiku/trunk/src/system/boot/arch/arm - revol