All of lore.kernel.org
 help / color / mirror / Atom feed
* Xbox vesa-like framebuffer
@ 2007-12-31 15:23 Robert Millan
  2007-12-31 20:04 ` Vesa Jääskeläinen
  0 siblings, 1 reply; 2+ messages in thread
From: Robert Millan @ 2007-12-31 15:23 UTC (permalink / raw)
  To: grub-devel


It seems the Xbox (hacked) firmware, Cromwell, sets up a vesa-like framebuffer
with predefined 640x480x32 RGBX settings at addr *(0xfd600800) [1]

I just gave a quick look at vbe.c to see how hard would it be to adapt it to
use default settings rather than BIOS calls.  Can someone provide a bit of
advice on what those settings would be?  In particular, I wonder about:

  `mode' (as returned by grub_vbe_get_video_mode_info())
  `active_mode_info.memory_model' (and in case of GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL,
  do we have to setup vga palette?)
  `framebuffer.bytes_per_scan_line'
  `framebuffer.bytes_per_pixel'  --> 4, right?

Anything else I could have missed ?  Also, is there an easy way to get debugging
output printed somewhere (before we have to care about font stuff) in the form
of raw pixels ?  This thing doesn't seem to have a serial port or any other
simple debugging interface.

[1] from http://www.xbox-linux.org/wiki/Porting_an_Operating_System_to_the_Xbox_HOWTO#Video_Driver

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Xbox vesa-like framebuffer
  2007-12-31 15:23 Xbox vesa-like framebuffer Robert Millan
@ 2007-12-31 20:04 ` Vesa Jääskeläinen
  0 siblings, 0 replies; 2+ messages in thread
From: Vesa Jääskeläinen @ 2007-12-31 20:04 UTC (permalink / raw)
  To: The development of GRUB 2

Robert Millan wrote:
> It seems the Xbox (hacked) firmware, Cromwell, sets up a vesa-like framebuffer
> with predefined 640x480x32 RGBX settings at addr *(0xfd600800) [1]
> 
> I just gave a quick look at vbe.c to see how hard would it be to adapt it to
> use default settings rather than BIOS calls.  Can someone provide a bit of
> advice on what those settings would be?  In particular, I wonder about:
> 
>   `mode' (as returned by grub_vbe_get_video_mode_info())
>   `active_mode_info.memory_model' (and in case of GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL,
>   do we have to setup vga palette?)
>   `framebuffer.bytes_per_scan_line'
>   `framebuffer.bytes_per_pixel'  --> 4, right?
> 
> Anything else I could have missed ?  Also, is there an easy way to get debugging
> output printed somewhere (before we have to care about font stuff) in the form
> of raw pixels ?  This thing doesn't seem to have a serial port or any other
> simple debugging interface.
> 
> [1] from http://www.xbox-linux.org/wiki/Porting_an_Operating_System_to_the_Xbox_HOWTO#Video_Driver
> 

If you are just making a new video driver just use vbe*.c as advice and
get specs from VideoSubsystem section on wiki :). You can most likely
re-use software blitter code from vbe*.c codes. Most of the vbe specific
information comes from VBE 3.0 specification.

About grub_video_get_info:
http://grub.enbug.org/VideoSubsystem#head-eecc170736caecf422b56260e1bacc5e5a7fb12a

Basicly it just describes dimensions of the screen and color settings.

bytes_per_pixel means how many bytes one pixel takes. Eg. how many times
I have to multiply X to get correct X coordinate on screen.
bytes_per_scan_line is same for Y coordinate. If you have larger
scanline than visual width then this must match that. Eg. if you have
display width of 1024 pixels and scanline width of 2048 pixels then you
must multiply Y coordinate with 2048 pixels (* bytes_per_pixel).

If you need some more info just ping me on IRC or on this list.



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-12-31 20:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-31 15:23 Xbox vesa-like framebuffer Robert Millan
2007-12-31 20:04 ` Vesa Jääskeläinen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.