Ignore this one one... will rework it --- Christian Gmeiner, MSc
2012/8/31 Christian Gmeiner <[email protected]>: > We need to set the DC register visibility before we can call > stdvga_set_mode(). > > Signed-off-by: Christian Gmeiner <[email protected]> > --- > vgasrc/geodevga.c | 41 +++++++++++++++++++++++++++++++++++++++++ > vgasrc/geodevga.h | 1 + > 2 files changed, 42 insertions(+) > > diff --git a/vgasrc/geodevga.c b/vgasrc/geodevga.c > index bff856a..dab2b2a 100644 > --- a/vgasrc/geodevga.c > +++ b/vgasrc/geodevga.c > @@ -170,6 +170,47 @@ static void dc_unmap(void) > dc_map(0); > } > > +/**************************************************************** > + * Mode setting > + ****************************************************************/ > + > +int geodevga_set_mode(struct vgamode_s *vmode_g, int flags) > +{ > + /* we need set the DC register visibility within the standard > + * VGA memory space (0xA0000 - 0xBffff). > + * > + * bit: > + * 7:3 RSVD > + * 2:1 VG_RG_MAP > + * 00: Disabled > + * 01: 0xA0000 > + * 10: 0xB0000 > + * 11: 0xB8000 > + * 0 PACK_CH4 > + */ > + > + u8 reg; > + > + switch (vmode_g->sstart) { > + case SEG_GRAPH: > + reg = 0x02; > + break; > + case SEG_MTEXT: > + reg = 0x04; > + break; > + case SEG_CTEXT: > + reg = 0x06; > + break; > + default: > + reg = 0x00; > + break; > + } > + > + stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_MODE_CONTROL, reg); > + > + return stdvga_set_mode(vmode_g, flags); > +} > + > > /**************************************************************** > * Init Functions > diff --git a/vgasrc/geodevga.h b/vgasrc/geodevga.h > index fd7ce43..86f5d48 100644 > --- a/vgasrc/geodevga.h > +++ b/vgasrc/geodevga.h > @@ -71,5 +71,6 @@ > #define DC_CFG_MSK 0xf000a6 > > int geodevga_init(); > +int geodevga_set_mode(struct vgamode_s *vmode_g, int flags); > > #endif > -- > 1.7.11.rc2.5.g68f532f > _______________________________________________ SeaBIOS mailing list [email protected] http://www.seabios.org/mailman/listinfo/seabios
