VGA console endian bug
Olaf Hering
olh at suse.de
Sat Aug 11 20:14:36 EST 2001
On Sat, Aug 11, Geert Uytterhoeven wrote:
> + for(i = 0; i < sizeof(welcometext); i++)
> + welcomestring[i] = 0x0700 | welcometext[i];
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> + fbcon_putcs( conp, welcomestring, sizeof(welcometext), 0, 0 );
>
> That's not correct, you _must_ use scr_{read,write}w() to access screen
> buffers. fbcon_putcs() expects a pointer to a shadow screen buffer.
>
> Please try
>
> scr_writew(0x0700 | welcometext[i], &welcomestring[i]);
>
> instead.
>
> Your code works on ia32 because ia32 and VGA are both little endian.
> It works on SPARC because SPARC and fbdev on SPARC are both big endian.
> I guess it fails on a real VGA textconsole on SPARC too (iff SPARC would
> support VGA text mode).
Well, that fixes "the last known problem".
But it still leaves the question whats really wrong with the vga console :)
Gruss Olaf
--
$ man clone
BUGS
Main feature not yet implemented...
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list