NetBSD Problem Report #46574

From www@NetBSD.org  Sun Jun 10 11:05:36 2012
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
	by www.NetBSD.org (Postfix) with ESMTP id 4F88C63B89C
	for <gnats-bugs@gnats.NetBSD.org>; Sun, 10 Jun 2012 11:05:36 +0000 (UTC)
Message-Id: <20120610110535.1E3D463B882@www.NetBSD.org>
Date: Sun, 10 Jun 2012 11:05:35 +0000 (UTC)
From: nathanialsloss@yahoo.com.au
Reply-To: nathanialsloss@yahoo.com.au
To: gnats-bugs@NetBSD.org
Subject: wsfb/genfb: single user boot sets the wrong colour palette if SPLASHSCREEN
X-Send-Pr-Version: www-1.0

>Number:         46574
>Category:       kern
>Synopsis:       wsfb/genfb: single user boot sets the wrong colour palette if SPLASHSCREEN
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jun 10 11:10:00 +0000 2012
>Last-Modified:  Sun Jun 10 11:25:01 +0000 2012
>Originator:     Nat Sloss
>Release:        NetBSD Current 6.99.7
>Organization:
>Environment:
NetBSD beast 6.99.7 NetBSD 6.99.7 (LOCKDEBUG) #81: Sun Jun 10 19:35:53 EST 2012  build@beast:/usr/src/sys/arch/i386/compile/obj/LOCKDEBUG i386

>Description:
If you're using a kernel with the SPLASHSCREEN option and you boot with an 8 bit colour depth vesa screen and single user the kernel messages change to blue when genfb attaches.

This is because wsfb/genfb.c sets the colour palette if there is a splashscreen or not (This is only relevant at 8 bit colour depth).

I tried testing if not DISABLESPLASH before restoring the palette in genfb.c to no avail as other parts of the code must be using the colour palette settings.
>How-To-Repeat:
On a kernel compiled with the SPLASHSCREEN option type the following at the boot prompt:

vesa 640x480x8
boot -s

Then you will notice about half way through the booting process the kernel messages change to blue (as soon as genfb attaches).
>Fix:
Just one of many solutions is to initialise the colour palette and redraw the screen if DISABLESPLASH is set:

Index: sys/dev/wsfb/genfb.c
===================================================================
RCS file: /cvsroot/src/sys/dev/wsfb/genfb.c,v
retrieving revision 1.48
diff -u -r1.48 genfb.c
--- sys/dev/wsfb/genfb.c        12 Apr 2012 22:36:15 -0000      1.48
+++ sys/dev/wsfb/genfb.c        10 Jun 2012 10:45:37 -0000
@@ -314,6 +314,9 @@
                        genfb_init_palette(sc);
                        vcons_replay_msgbuf(&sc->sc_console_screen);
                }
+       } else {
+               genfb_init_palette(sc);
+               vcons_replay_msgbuf(&sc->sc_console_screen);
        }
 #else
        genfb_init_palette(sc);


Note: This patch is my own work which I submit under the NetBSD license.

Regards,

Nat.

>Audit-Trail:
From: Nat Sloss <nathanialsloss@yahoo.com.au>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/46574: wsfb/genfb: single user boot sets the wrong colour palette if SPLASHSCREEN
Date: Sun, 10 Jun 2012 21:16:40 +1000

 Hi.

 I forgot to ask could NetBSD 6 be pulled up?

 Regards,

 Nat.

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.