From mboxrd@z Thu Jan 1 00:00:00 1970 From: "qiang.wang" Subject: about framebuffer support in xen domain 0 Date: Thu, 08 Mar 2007 16:09:49 +0800 Message-ID: <1173341389.6491.15.camel@localhost.localdomain> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1560797541==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Mime-version: 1.0 Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --===============1560797541== Content-Type: multipart/alternative; boundary="=-TvZEQjF55LGcg4pM18lG" --=-TvZEQjF55LGcg4pM18lG Content-Type: text/plain Content-Transfer-Encoding: 7bit Hi, list, I have a problem after moving the bootsplash patch into the domain 0 kernel. It doesn't work. After digging the source code, I found that the kernel data "struct screen_info screen_info" is set to a specific value in arch/i386/kernel/setup-xen.c. And the info->video_type is XEN_VGATYPE_TEXT_MODE_3, so it doesn't support framebuffer in domain 0 and the bootsplash either. void __init setup_arch(char **cmdline_p) { ... if (is_initial_xendomain()) { /* This is drawn from a dump from vgacon:startup in * standard Linux. */ screen_info.orig_video_mode = 3; screen_info.orig_video_isVGA = 1; screen_info.orig_video_lines = 25; screen_info.orig_video_cols = 80; screen_info.orig_video_ega_bx = 3; screen_info.orig_video_points = 16; screen_info.orig_y = screen_info.orig_video_lines - 1; if (xen_start_info->console.dom0.info_size >= sizeof(struct dom0_vga_console_info)) { //const struct dom0_vga_console_info *info = struct dom0_vga_console_info *info = (struct dom0_vga_console_info *)( (char *)xen_start_info + xen_start_info- >console.dom0.info_off); // wangqiang //info->video_type = XEN_VGATYPE_VESA_LFB; dom0_init_screen_info(info); } xen_start_info->console.domU.mfn = 0; xen_start_info->console.domU.evtchn = 0; } else screen_info.orig_video_isVGA = 0; ... } it seems that the initial dom0_vga_console_info is set by fill_console_start_info() in xen/drivers/video/vga.c My question is that is there a particular reason to assign the dom0_vga_console_info a specific value? --=-TvZEQjF55LGcg4pM18lG Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 7bit Hi, list,
I have a problem after moving the bootsplash patch into the domain 0 kernel. It doesn't work.
After digging the source code, I found that the kernel data "struct screen_info screen_info" is set to a specific value in arch/i386/kernel/setup-xen.c. And the info->video_type is XEN_VGATYPE_TEXT_MODE_3, so it doesn't support framebuffer in domain 0 and the bootsplash either.

void __init setup_arch(char **cmdline_p)
{
...

if (is_initial_xendomain()) {
                /* This is drawn from a dump from vgacon:startup in
                 * standard Linux. */
                screen_info.orig_video_mode = 3;
                screen_info.orig_video_isVGA = 1;
                screen_info.orig_video_lines = 25;
                screen_info.orig_video_cols = 80;
                screen_info.orig_video_ega_bx = 3;
                screen_info.orig_video_points = 16;
                screen_info.orig_y = screen_info.orig_video_lines - 1;
                if (xen_start_info->console.dom0.info_size >=
                    sizeof(struct dom0_vga_console_info)) {
                        //const struct dom0_vga_console_info *info =
                        struct dom0_vga_console_info *info =
                                (struct dom0_vga_console_info *)(
                                        (char *)xen_start_info +
                                        xen_start_info->console.dom0.info_off);
                        // wangqiang
                        //info->video_type = XEN_VGATYPE_VESA_LFB;
                        dom0_init_screen_info(info);
                }
                xen_start_info->console.domU.mfn = 0;
                xen_start_info->console.domU.evtchn = 0;
        } else
                screen_info.orig_video_isVGA = 0;
...
}


it seems that the initial dom0_vga_console_info is set by fill_console_start_info() in xen/drivers/video/vga.c
My question is that is there a particular reason to assign the dom0_vga_console_info a specific value? --=-TvZEQjF55LGcg4pM18lG-- --===============1560797541== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --===============1560797541==--