[SeaBIOS] [PATCH 3/3]

Nils njacobs8 at adsltotaal.nl
Sat Jan 7 11:24:44 CET 2012


Op vrijdag 06-01-2012 om 20:41 uur [tijdzone -0500], schreef Kevin
O'Connor:
> On Sat, Jan 07, 2012 at 12:28:55AM +0100, Nils wrote:
> > Add the GX2 functionality.
> > Improve Kconfig VGA options.
> > Conditionally build VGA bios rom if selected in Kconfig. 
> 
> Thanks.
> 
> I'd like to see Kconfig select whether or not the vgabios is built.
> However, that should really be in a patch separate from the addition
> of GX2 support.
> 
> Also, I'd prefer to avoid #ifdefs where possible.
> 
> The first two patches look good to me.
> 
> [...]
> > +ifneq ($(CONFIG_NO_VGABIOS),y)
> > +all: $(OUT) $(OUT)bios.bin $(OUT)vgabios.bin
> > +else
> >  all: $(OUT) $(OUT)bios.bin
> > +endif
> 
> all-y: $(OUT) $(OUT)bios.bin
> all-$(CONFIG_BUILD_VGABIOS) += $(OUT)vgabios.bin
> 
> [...]
> >  SRCVGA=src/output.c src/util.c vgasrc/vgabios.c vgasrc/vgafb.c \
> >      vgasrc/vgatables.c vgasrc/vgafonts.c vgasrc/vbe.c \
> > -    vgasrc/stdvga.c vgasrc/clext.c vgasrc/bochsvga.c vgasrc/geodevga.c
> > +    vgasrc/stdvga.c vgasrc/clext.c vgasrc/bochsvga.c
> > +
> > +ifeq ($(CONFIG_VGA_GEODEGX2),y)
> > +SRCVGA +=  vgasrc/geodevga.c
> > +endif
> > +ifeq ($(CONFIG_VGA_GEODELX),y)
> > +SRCVGA +=  vgasrc/geodevga.c
> > +endif
> 
> Lets just build vgasrc/geodevga.c unconditionally - the
> compiler/linker will strip it out if it isn't configured.
> 
> [...]
> > --- vgasrc/geodevga.c
> > +++ vgasrc/geodevga.c
> > @@ -87,7 +87,12 @@
> >      int ret=0;
> >      union u64_u32_u val;
> >  
> > +#if (CONFIG_VGA_GEODEGX2)
> > +    val=geode_msrRead(GLIU0_P2D_BM_4);
> > +#endif
> > +#if (CONFIG_VGA_GEODELX)
> >      val=geode_msrRead(MSR_GLIU0_BASE4);
> > +#endif
> 
>        if (CONFIG_VGA_GEODEGX2)
>            val=geode_msrRead(GLIU0_P2D_BM_4);
>        else
>            val=geode_msrRead(MSR_GLIU0_BASE4);
> 
> [...]
> > +#if (CONFIG_VGA_GEODEGX2)
> > +    #define VP_MSR_CONFIG               0xc0002001  /* GX2 */
> > +#endif
> > +#if (CONFIG_VGA_GEODELX)
> > +    #define VP_MSR_CONFIG               0x48002001  /* LX */
> > +#endif
> 
> #define VP_MSR_CONFIG_GX2               0xc0002001  /* GX2 */
> #define VP_MSR_CONFIG_LX                0x48002001  /* LX */
> 
> and update the code to use an if statement?
> 
> [...]
> > --- vgasrc/vgahw.h
> > +++ vgasrc/vgahw.h
> > @@ -22,6 +22,8 @@
> >          return clext_init();
> >      if (CONFIG_VGA_BOCHS)
> >          return bochsvga_init();
> > +    if (CONFIG_VGA_GEODEGX2)
> > +        return geodevga_init();
> >      if (CONFIG_VGA_GEODELX)
> >          return geodevga_init();
> 
>        if (CONFIG_VGA_GEODELX || CONFIG_VGA_GEODEGX2)
>            return geodevga_init();

I'm fine with your changes.
You should test the unconditional compilation of vgasrc/geodevga.c when
cirrus or bochs are selected i got a error in that case.

If you make the patches i gladly test them.

Thanks, Nils.





More information about the SeaBIOS mailing list