Alguém poderia explicar a saída lspci -vv?

6

Eu tenho a seguinte saída da execução de lspci -vv -s 00:00 no meu computador de placa única que executa o Linux.

07:05.0 RAID bus controller: Adaptec AAC-RAID (Rocket) (rev 03)
Subsystem: Adaptec ASR-2230S + ASR-2230SLP PCI-X (Lancer)
Control: I/O- Mem+ BusMaster+ SpecCycle+ MemWINV+ VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR-
Latency: 64 (250ns min, 250ns max), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 74
Region 0: Memory at f7a00000 (64-bit, non-prefetchable) [size=2M]
Region 2: Memory at f79ff000 (64-bit, non-prefetchable)
[Remaining output truncated]

O exemplo acima é apenas uma saída de exemplo e não exatamente o que estou obtendo, mas contém os itens de interesse.

Eu entendo a maior parte da saída do comando lspci, mas gostaria que alguém me explicasse as linhas que começam com Region ... Que tipo de memória estou olhando aqui especificado por a linha de região? Como posso acessá-lo? Com isso solicitado, estou tentando realizar a comunicação entre dois computadores de placa única conectados ao barramento PCI. Eu deveria poder falar diretamente. Tudo o que existe é um árbitro de PCI rodando o barramento. Isso é o que eu tenho feito até agora ...

Eu criei um módulo do kernel Linux para o tráfego PCI de saída. Basicamente, ele mapeia todo o caminho do userspace (com um aplicativo de espaço do usuário) usando a implementação mmap do driver. Eu escrevo para o local retornado pelo mmap e eu realmente vejo o tráfego com um analisador de ônibus! Agora, no outro computador de placa única, tento ler seu recurso sysfs para o dispositivo PCI, mas só vejo todos os FFs e nenhuma alteração.

Qualquer conselho ou explicação sobre como todo esse mapeamento de memória ocorre, envolvendo PCI, seria muito apreciado.

    
por penguin4hire 05.04.2013 / 22:51

1 resposta

1

lspci mostra as informações sobre seus dispositivos PCI (dependendo das opções), você pode verificar a página de manual para mais informações.

Com relação ao cabeçalho REGION na saída, esses detalhes de linhas onde são alocados os registros usados para este componente. Está relacionado com o mapeamento de memória e como a memória é usada para cada componente.

Region 0: Memory at f7a00000 (64-bit, non-prefetchable) [size=2M]
Region 2: Memory at f79ff000 (64-bit, non-prefetchable)

Nestas linhas são especificados os endereços de registro utilizados, o tamanho e o tamanho do endereço (64 bits para apontar um registrador).

Procure outras informações sobre arquitetura de computadores se quiser aprofundar o modo como esses endereços são usados.

Espero que ajude!

    
por 12.04.2013 / 09:15