On 21 March 2013 18:25, Anthony Liguori <aligu...@us.ibm.com> wrote: > Gerd Hoffmann <kra...@redhat.com> writes: >> I think the most sensible way to handle this is to implement the output >> routing device, make it own the (single) QemuConsole, and depending on >> the router state the one or the other display device is allowed to >> render to the QemuConsole. > > Where does the switching happen in hardware? Is this two devices with a > DVI port with a switch on it to have a single output port or it is > something more sophisticated where there are two memory regions and a > register is used to select which one is written out?
The motherboard has a DVI multiplexer, which selects between the two video+audio output streams (actually it selects between three sources but we don't model the second daughterboard at all). I think these streams are not actually DVI but they are certainly video with pixel clock and S/PDIF audio already. There's a config register in the motherboard which selects which source should go out to the DVI connector. Conceptually I think it should look like this: /-----\ [ PL111 ] ===(video)====> | | | MUX | ===(video)===> [display] [ PL111 ] ===(video)====> | | \-----/ ^ [arm_sysregs]---(qemu_irq)---/ (where [] means a device and () a kind of connection.) If we supported routing of audio output we could in theory run the audio through the mux in the same way. -- PMM