PCI의 특징은 무엇입니까?

PCI의 특징은 무엇입니까?

Linux 커널에 대해 읽는 동안 PCI 문제에 대해 많이 들었지만 PCI 문제를 설명하거나 정의한 웹 사이트는 없었습니다. PCI의 특징은 무엇입니까?

답변1

"특이사항"은 예상된 작동과 일치하지 않는 것으로 간주되는 장치 속성입니다.

이것은 예이다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 */
}

장치가 허위 오류를 보고하기 때문에 이는 "특이한 현상"입니다. 장치가 실행 중일 때 쿼크는 커널의 다른 부분이 다르게 동작하도록 만드는 특정 속성을 설정합니다(아마도 허위 오류를 무시하거나 알려진 문제를 해결함으로써).

그러나 Linux 커널의 모든 단점이 사실은 아닙니다. 영향을 받는 기능을 단순히 비활성화하는 대신 일부 사람들은 다음과 같이 문제를 해결하려고 시도합니다.

/*
 * 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");
        }
}

관련 정보