[Xorg] The big multiconsole nasty

Jesse Barnes jbarnes at engr.sgi.com
Mon Jul 12 06:51:41 PDT 2004


On Monday, July 12, 2004 5:30 am, Egbert Eich wrote:
> Jesse Barnes writes:
>  > On Tuesday, July 6, 2004 9:36 am, Jon Smirl wrote:
>  > > --- John Dennis <jdennis at redhat.com> wrote:
>  > > > bus topology and that VGA routing is correct. Unlike the current
>  > >
>  > > You can't make the assumptions about VGA routing. When secondary video
>  > > cards are reset by running their ROM, at the very least they enable
>  > > their VGA support. Sometimes they remap the bridges too.
>  > >
>  > > We need kernel support for:
>  > > 1) disabling all VGA devices
>  > > 2) setting one VGA device active and get the bus routed to it
>  >
>  > This is possible, but also points out a deficiency in the current X
>  > server's idea of I/O ports.  I spoke with John Dennis about this a few
>  > weeks ago, but it seems to me that we should either:
>  >
>  >   o make the in/out routines take full pointers for the port address
>  > value
>
> This is already done. All addresses in the code are already constructed
> by using  base+offset.

In the arch specific in/out routines you mean?  I see lots of lines like 
inb(0x3c8) in various drivers and other code...

>
>  >     - or -
>  >   o pass a PCI tag to them so that the platform code can figure out
>  > where to route the I/O
>
> I also had a similar idea years ago. However I dropped it again:
> How about the latencies introduced when each IO operation has to
> verify that it is routed correctly?

in/out is pretty slow already, and is only used at startup time, afaict.  Most 
code just does memory reads/writes to register space doesn't it?

>
>  > As it stands, the X server's platform code has to assume one, global,
>  > I/O port base address...
>
> Not true any more. Take a look at the AXP and PPC code. Possibly also the
> IA64 code.

Yeah, I'm looking at the ia64 stuff, it's still missing the necessary support.  
It looks like ppc is still limited to doing legacy I/O (like the above inb) 
to one bus.

> On these platforms PIO is 'redirected' to MMIO and each bus has its
> distinct range in the MMIO address space.

Right, I just wanted to make that more explicit.

Thanks,
Jesse




More information about the xorg mailing list