카테고리 보관물: Unix

Unix

PCI 특징은 무엇입니까? 대해 많이 들었지만 PCI 쿼크를 설명하거나 정의하는

Linux 커널에 대해 읽을 때 PCI 쿼크에 대해 많이 들었지만 PCI 쿼크를 설명하거나 정의하는 웹 사이트는 없습니다. PCI 단점은 무엇입니까?



답변

“Quirks”는 예상 작동과 호환되지 않는 것으로 간주되는 장치의 속성입니다.

예를 들면 다음과 같습니다 quirks.c.

/* The Mellanox Tavor device gives false positive parity errors
 * Mark this device with a broken_parity_status, to allow
 * PCI scanning code to "skip" this now blacklisted device.
 */
static void quirk_mellanox_tavor(struct pci_dev *dev)
{
        dev->broken_parity_status = 1;  /* This device gives false positives */
}

장치가 잘못된 오류를보고 할 때 이것은 “질투”입니다. 이 장치가 작동 할 때, 쿼크는 커널의 다른 부분을 다르게 행동하게하는 특정 속성을 설정합니다 (아마도 가짜 오류를 무시하거나 알려진 문제를 해결함으로써).

리눅스 커널의 모든 단점이 이렇지는 않다. 영향을받는 기능을 비활성화하는 대신 일부 기능은 다음과 같이 해결하려고합니다.

/*
 * Some CS5536 BIOSes (for example, the Soekris NET5501 board w/ comBIOS
 * ver. 1.33  20070103) don't set the correct ISA PCI region header info.
 * BAR0 should be 8 bytes; instead, it may be set to something like 8k
 * (which conflicts w/ BAR1's memory range).
 */
static void quirk_cs5536_vsa(struct pci_dev *dev)
{
        if (pci_resource_len(dev, 0) != 8) {
                struct resource *res = &dev->resource[0];
                res->end = res->start + 8 - 1;
                dev_info(&dev->dev, "CS5536 ISA bridge bug detected "
                                "(incorrect header); workaround applied.\n");
        }
}


답변