NetBSD-Bugs archive

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

Re: kern/46828 6.0_BETA2 and 6.0_RC1 won't start on DL320/G5p



The following reply was made to PR kern/46828; it has been noted by GNATS.

From: Ryo ONODERA <ryo_on%yk.rim.or.jp@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: kern/46828 6.0_BETA2 and 6.0_RC1 won't start on DL320/G5p
Date: Sat, 22 Sep 2012 07:21:42 +0900 (JST)

 Hi,
 
 # Sorry for sending with wrong subject, I will send again.
 
 NetBSD/amd64 6.99.11 on HP Proliant ML110 G7 has similar problem.
 It seems reverting rev 1.53 of sys/dev/pci/ehci_pci.c solves the problem.
 
 Try attached patch.
 
 Thank you.
 
 Index: ehci_pci.c
 ===================================================================
 RCS file: /cvsroot/src/sys/dev/pci/ehci_pci.c,v
 retrieving revision 1.56
 diff -u -r1.56 ehci_pci.c
 --- ehci_pci.c 20 Jul 2012 01:26:19 -0000      1.56
 +++ ehci_pci.c 21 Sep 2012 22:14:05 -0000
 @@ -393,18 +393,16 @@
                if (EHCI_CAP_GET_ID(cap) != EHCI_CAP_ID_LEGACY)
                        goto next;
                legsup = pci_conf_read(pc, tag, addr + PCI_EHCI_USBLEGSUP);
 +              /* Ask BIOS to give up ownership */
 +              pci_conf_write(pc, tag, addr + PCI_EHCI_USBLEGSUP,
 +                  legsup | EHCI_LEG_HC_OS_OWNED);
                if (legsup & EHCI_LEG_HC_BIOS_OWNED) {
 -                      /* Ask BIOS to give up ownership */
 -                      legsup &= ~EHCI_LEG_HC_BIOS_OWNED;
 -                      legsup |= EHCI_LEG_HC_OS_OWNED;
 -                      pci_conf_write(pc, tag, addr + PCI_EHCI_USBLEGSUP,
 -                          legsup);
                        for (ms = 0; ms < EHCI_MAX_BIOS_WAIT; ms++) {
                                legsup = pci_conf_read(pc, tag,
                                    addr + PCI_EHCI_USBLEGSUP);
                                if (!(legsup & EHCI_LEG_HC_BIOS_OWNED))
                                        break;
 -                              delay(10000);
 +                              delay(1000);
                        }
                        if (ms == EHCI_MAX_BIOS_WAIT) {
                                aprint_normal("%s: BIOS refuses to give up "
 @@ -417,7 +415,9 @@
                }
  
                /* Disable SMIs */
 -              pci_conf_write(pc, tag, addr + PCI_EHCI_USBLEGCTLSTS, 0);
 +              pci_conf_write(pc, tag, addr + PCI_EHCI_USBLEGCTLSTS,
 +                  EHCI_LEG_EXT_SMI_BAR | EHCI_LEG_EXT_SMI_PCICMD |
 +                  EHCI_LEG_EXT_SMI_OS_CHANGE);
  
  next:
                if (--maxcap < 0) {
 
 --
 Ryo ONODERA // ryo_on%yk.rim.or.jp@localhost
 PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3
 
 
 
 


Home | Main Index | Thread Index | Old Index