[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-i386/46808: 6.0_BETA2 install crashes on VIA VT6202 detection
On Aug 25, 11:21pm, jc.lynx%laposte.net@localhost ("jc.lynx") wrote:
-- Subject: Re: port-i386/46808: 6.0_BETA2 install crashes on VIA VT6202 dete
| OK. I've installed NetBSD on another machine and done the following alterat=
| ions to ehci_pci.c
| Replaced :
| const u_int maxncomp =3D EHCI_HCS_N_CC(EREAD4(&sc->sc, EHCI_HCSPARAMS));
| with :
| const u_int vovo =3D EREAD4(&sc->sc, EHCI_HCSPARAMS);
| const u_int maxncomp =3D EHCI_HCS_N_CC(vovo);
| printf("maxncomp =3D %u\n", maxncomp);
| printf("EREAD4(&sc->sc, EHCI_HCSPARAMS) =3D %x, vovo);
| I hope I got the types right.
| Anyway, I burned and booted boot.iso and got this :
| maxncomp =3D 15
| EREAD4(&sc->sc, EHCI_HCSPARAMS) =3D ffffffff
| So, yeah, EHCI_HCS_N_CC(ffffffff), i.e. (ffffffff >> 12) & 0xf is 15, indee=
| d greater than EHCI_COMPANION_MAX which is 8 ; but I guess that this ffffff=
| is not the data we were looking for anyway.
| I could not find code related to "special" VT6202 handling in other BSD's c=
| ode, except an unrelated issue with EHCI polling frequency.
| I suppose we now have to dig into how sc was initialised, or whether EREAD4=
| (&sc->sc, EHCI_HCS_PARAMS) is the way to get what we were looking for on th=
| is particular device.
Thsat it a good way to debug it, but you can just try to clamp it to
EHCI_COMPANION_MAX after you print a warning and see if it gets you
further. My guess is that something else is wrong and the device is
not mapped or initialized properly. Perhaps there is something in
the bios you can change?
Main Index |
Thread Index |