[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[rofug] Re: Agp problem on motherboards with Intel chipsets ? Ati Radeon DRM problem Related.
Referitor la problema de mai sus am luat la puricat si
codul pentru agp din
Linux ,NetBSD si OpenBSD pentru chipseturi Intel.
Am constatat ca NetBSD si OpenBSD folosesc codul vechi
in agp_intel_flush_tlb(device_t dev) adica cel folosit
in FreeBSD < 4.6.2-p13.
Linux foloseste un cod asemanator cu cel din FreeBSD >
4.7.
Se pare ca problema este chiar din calculul valorii cu
care se apeleaza prima oara
pci_write_config.
In Linux la primul apel se transmite valoarea val &
~(1 << 7).
In FreeBSD la primul apel se transmite valoarea val &
~(1 << 8) .
De fapt daca mi--am dat seama bine asta e adresa
locatiei de memorie unde se transmite valoarea 0xb0
corespunzatoare variabilei AGP_INTEL_AGPCTRL.
Singura modificare care trebuie facuta si merge fara
probleme este inlocuirea cifrei 8 cu 7 .
Initial aveam in /sys/pci/agp_intel.c
agp_intel_flush_tlb(device_t dev)
{
u_int32_t val;
val = pci_read_config(dev, AGP_INTEL_AGPCTRL, 4);
pci_write_config(dev, AGP_INTEL_AGPCTRL, val & ~(1 <<
8), 4);
pci_write_config(dev, AGP_INTEL_AGPCTRL, val , 4);
}
Dupa modificare avem in /sys/pci/agp_intel.c
agp_intel_flush_tlb(device_t dev)
{
u_int32_t val;
val = pci_read_config(dev, AGP_INTEL_AGPCTRL, 4);
pci_write_config(dev, AGP_INTEL_AGPCTRL, val & ~(1 <<
7), 4);
pci_write_config(dev, AGP_INTEL_AGPCTRL, val , 4);
}.
Se pare ca asta ar fi singura problema si ca ar fi
vorba de o greseala de tastare.
Problema e intalnita la orice versiune de kernel >
4.6.2-p13 deci inclusiv la 5.0 si 5.1.
Mege bine si codul adaptat de pe Linux respectiv
agp_intel_flush_tlb(device_t dev)
{
u_int32_t val;
val = pci_read_config(dev, AGP_INTEL_AGPCTRL, 4);
pci_write_config(dev, AGP_INTEL_AGPCTRL, val & ~(1 <<
7), 4);
val = pci_read_config(dev, AGP_INTEL_AGPCTRL, 4);
pci_write_config(dev, AGP_INTEL_AGPCTRL, val | (1 <<
7), 4);
}
--- Adrian Penisoara <ady@rofug.ro> wrote:
>
> Hi,
>
> Ar fi minuntat daca ai posta un PR (Problem
> Report) la proiectul
> FreeBSD.
>
> Detalii despre procedura gasesti aici:
>
>
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/problem-reports/article.html
>
> Succes!
Multumesc
Dupa ce voi citi procedura de trimitere voi incerca sa
trimit un PR.
Toate cele bune !
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
__________________________________________________________
Send 'unsubscribe rofug' to listar@rofug.ro to unsubscribe