[SeaBIOS] [PATCH 3/3]
Kevin O'Connor
kevin at koconnor.net
Sat Jan 7 02:41:34 CET 2012
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();
-Kevin
More information about the SeaBIOS
mailing list