[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XenPPC] Re: [Xen-devel] fix vga.c compilation



On Wed, 2006-08-16 at 16:40 +0100, Keir Fraser wrote:
> 
> On 16/8/06 4:35 pm, "Hollis Blanchard" <hollisb@xxxxxxxxxx> wrote:
> 
> > On Wed, 2006-08-16 at 11:49 +0100, Keir Fraser wrote:
> >> @@ -159,12 +160,8 @@
> >>   * into a single 16-bit quantity */
> >>  #define VGA_OUT16VAL(v, r)       (((v) << 8) | (r))
> >>  
> >> -#if defined(__i386__) || defined(__x86_64__)
> >> -# define vgabase 0
> >> -# define VGA_OUTW_WRITE
> >> -# define vga_readb(x) (*(x))
> >> -# define vga_writeb(x,y) (*(y) = (x))
> >> -#endif
> >> +#define vgabase 0         /* use in/out port-access macros  */
> >> +#define VGA_OUTW_WRITE    /* can use outw instead of 2xoutb */
> > 
> > When would you redefine vgabase?
> 
> Right there, with ifdef's, when an arch comes along that requires it.

(By "when" I meant "under what conditions", not "where in the code".)

OK, I was getting confused between readb/writeb and inb/outb. PowerPC
already applies its own offset to inb/outb accesses, but that doesn't
include memory accesses via readb/writeb. So we will need a 'vgabase'.

However, it will need to be a variable, not a #define, since our
physical memory map depends on northbridge configuration. When we do add
support, wouldn't asm/vga.h be a better place to do that than ifdefs in
vga.c?

> >> +const struct font_desc font_vga_8x8, font_vga_8x14, font_vga_8x16;
> > 
> > I think there could be a cleaner separation between console.c and vga.c,
> > and that would avoid needing to redefine these symbols. For example,
> > right now cls(), init_vga(), and others still live in console.c, most of
> > them manually testing vgacon_enabled.
> > 
> > What would be better is a system where console drivers (i.e. serial and
> > vga) register themselves at boot time, so console.c putchar() becomes:
> 
> Well, that'd be more important if it were likely that the powerpc dummy
> versions were going to stick around. Since they're not, I don't think we
> need to over-engineer a solution looking for a problem.

serial.c is already designed this way, and currently we have exactly one
serial backend driver in the tree. I don't think it's over-engineering;
it's a well-understood model and easy to follow in code, even via
cscope.

Also, I should add that VGA is a very low priority for PowerPC. Only one
of our supported platforms has video in the first place, and since it's
a blade, network-accessible serial console is far more useful than video
anyways. So the dummy versions may live longer than you're thinking...

-- 
Hollis Blanchard
IBM Linux Technology Center


_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.