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; }