I use the qemu-2.7 and seabios-1.10.1 to start the windows 7 guest. And 
the xhci controller is passthroughed to 
the guest. When the safe mode interface of the windows 7 appears, keyboard 
sometimes doesn't work and I can 
not choose any mode. 
    I have referred to seabios code about xhci configuration and find that 
after initializing USB keyboard, the timer
ISR will check usb event periodically. Normally, the "xhci_process_events" 
function can process the keyboard events,
but now TRB_C bit of xhci controller has been unchanged and 
"xhci_process_events" function derectly return. So
keyboard didn't work. I want to know why  TRB_C bit of xhci controller is 
always unchanged. Hope somebody can 
help me.
    Sorry for my poor English.


static void xhci_process_events(struct usb_xhci_s *xhci)
{
    struct xhci_ring *evts = xhci->evts;


    for (;;) {
        /* check for event */
        u32 nidx = evts->nidx;
        u32 cs = evts->cs;
        struct xhci_trb *etrb = evts->ring + nidx;
        u32 control = etrb->control;
        if ((control & TRB_C) != (cs ? 1 : 0))
            return;//stop here
....
....}

_______________________________________________
SeaBIOS mailing list
[email protected]
https://www.coreboot.org/mailman/listinfo/seabios

Reply via email to